@charset "UTF-8";
@import url("old_style.css");

:root {
	
	/* color */
	--main-color: #2E80C9;
	--main-bg-color: #F0F7FD;
	--main-flame-color: #CDE4FB;
	--emphasis-color: #174683; /* より濃いメインカラーを使用する場合 */
	--emphasis-txt-color: #27456b; /* 差別化したテキストカラーを使用する場合 */
	--link-color: #0f6cc1;
	--header-category-color: #807448;
	--tab-flame-color: #C1B791;
	--tab-bg-color: #EBE7DB;
	--tab-box-bg-color: #F6F4EF;
	--tab-txt-color: #6D633D;
	--balloon-color: #4a99e0;
	
	/* margin */
	--mgn-large: min(10%, 4rem);
	--mgn-middle: min(8%, 3rem);
	--mgn-small: min(5%, 2rem);
	--mgn-xsmall: min(3%, 1rem);

	/* width */
	--contents-width: min(94%, 1200px);

}


/* =====================================================
   animation
===================================================== */
@keyframes fadeIn {

	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}

}


/* ================================================
   BASE
================================================ */
html {
	padding: 0;
	margin: 0;
	font-size: 16px;
	font-family: "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", MS PGothic, Montserrat, "M PLUS 1p", sans-serif;
	font-weight: 400;
	background: var(--main-color);
	scroll-behavior: smooth;
	font-feature-settings: 'palt' on;
}

body {
	padding: 0;
	margin: 0;
	font-size: 1rem;
	line-height: 1.75;
	background: #fff;
	animation: fadeIn 0.8s 0.1s both;
	position: relative;
}

body.on {
	overflow: hidden;
	position: fixed;
}

img {
	vertical-align: top;
	max-width: 100%;
	height: auto;
}

a {
	text-decoration: none;
	color: #000;
	transition: all 0.3s;
}

a:hover img {
	transition: all 0.3s;
	filter: brightness(1.2);
}

p {
	line-height: 1.75;
}

h1, h2, h3, h4, h5, h6 {
	font-weight: 500;
}

strong {
	font-weight: bold;
}

br.pc {
	display: block;
}

br.sp {
	display: none;
}

.pc_none {
	display: none;
}

.sp_none {
	display: block;
}

input[type="checkbox"],
input[type="radio"] {
	margin: 0;
	vertical-align: middle;
	box-sizing: border-box;
	outline: none;
}

img.aff {
	width: 1px !important;
	height: 1px !important;
}

figure {
	padding: 0;
	margin: 0;
}

figcation p:last-of-type {
	margin-bottom: 0;
}


/* ================================================
   .searchform
================================================ */
.searchform {
  padding: 0;
	margin-bottom: 1.5rem;
	display: flex;
	justify-content: center;
	align-items: center;
}

.screen-reader-text {
	display: none;
}

.searchform input[type="text"] {
  background-color: #F2F8FE;
  color: #333;
  outline: none;
  font-size: 0.875rem;
  line-height: 2rem;
  padding: 0 0.7rem;
  border: 1px solid #b0d2f7;
  box-sizing: border-box;
  align-items: center;
  width: calc(100% - 2rem - 1px);
}

.searchform button[type="submit"] {
	background: center url(../images/ico_nav_search_w.png) no-repeat #0d6dc3;
	color: #fff;
	outline: none;
	border: none;
	line-height: 2rem;
	padding: 1px;
	box-sizing: border-box;
	width: 2rem;
	align-items: center;
	cursor: pointer;
}

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

	.searchform {
		margin-bottom: var(--mgn-small);
	}

	.all_map + .searchform {
		width: var(--contents-width);
		margin: var(--mgn-middle) auto 0 auto;
	}

}


/* ================================================
   header
================================================ */
header {
	width: 100%;
	padding: 0;
	box-sizing: border-box;
	color: #fff;
	background:center bottom / auto repeat-x url(../images/contents_wave.png), center 1rem / 2500px no-repeat url(../images/main_bg.jpg);
}

header.size_s {
	padding-bottom: 2rem;
	background-position:center bottom, center 8%;
}

/* header_nav -- */
.header_nav {
	margin: 0 auto;
	box-sizing: border-box;
	top: 0;
	width: 100%;
	position: relative;
	z-index: 100;
	background: #000;
}

.header_nav section {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	width: min(90%, 1280px);
	margin: 0 auto;
}

.header_nav h1 {
	padding: 0;
	margin: 0;
	font-size: min(4vw, 1.25rem);
	color: #fff;
}

.header_nav h1 small {
	margin-left: 1rem;
	font-size: 0.8175rem;
}

.header_nav nav {
	padding: 0;
	margin: 0;
	font-size: min(3.7vw, 0.875rem);
	font-family: 'M PLUS Rounded 1c', sans-serif;
	flex: 1;
	line-height: 2.5;
}

.header_nav nav a {
	color: #fff;
	min-height: 100%;
	display: block;
}

.header_nav nav ul {
	padding: 0;
	margin: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: right;
	gap: 0 3%;
}

.header_nav nav ul li {
	padding: 0;
	margin: 0;
}

.header_nav nav ul li ul {
	display: block;
}

.header_nav nav ul li:hover a {
	color: #729dd4;
}

.header_nav nav ul li.cd strong {
	position: relative;
}

.header_nav nav ul li.cd strong img {
	filter: brightness(100);
	width: 1rem;
	height: 1rem;
	vertical-align: middle;
	margin-right: 0.5rem;
}

.header_nav nav ul li a strong img {
	filter: none;
}

/* --/ header_nav */
/* subnav -- */
#sp_nav, .sp_nav {
	display: none;
}

.subnav {
	display: block;
	width: 100%;
	position: absolute;
	overflow: hidden;
	left: 0;
	right: 0;
	background: var(--main-color);
	font-size: 0.875rem;
	padding: 3rem 0;
	height: auto;
	top: 2.25rem;
	transform: translate(0, -100%);
	transition: all 0.3s;
	opacity: 0;
}

.subnav.on {
	opacity: 1;
	display: block;
	transform: translate(0, 0);
}

.subnav_in {
	width: var(--contents-width);
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.subnav_link {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 3%;
	width: calc(100% - 220px - 3%);
	position: relative;
}

.subnav_link span {
	width: calc((100% / 5) - 2.5%);
	height: auto;
	margin-bottom: -1rem;
	max-height: 100vh;
	display: block;
	box-sizing: border-box;
	overflow: hidden;
	transition: 0.3s all;
}

.subnav_link span figure {
	padding: 0;
	margin: 0;
	width: 100%;
	box-sizing: border-box;
	border-width: min(0.3vw, 0.4rem);
	border-color: #fff;
	border-style: solid;
	border-radius: min(1vw, 0.3rem);
}

.subnav_link span figure img {
   aspect-ratio: 4 / 3;
    object-fit: cover;
}

.subnav_link span h3 {
	color: #fff;
	text-align: center;
	font-size: 0.875rem;
	line-height: 1.2;
	font-weight: 400;
	padding: 0.4rem 0 1rem;
	margin: 0;
	position: relative;
}

.subnav_link span h3::before {
	content: '';
	display: inline-block;
	vertical-align: middle;
	width: 1.2rem;
	height: 1.2rem;
	margin-right: 0.3rem;
	top: 2rem;
}

.subnav_link span.cat01 h3::before {
	background: no-repeat center center / contain url(../images/ico_genre_eat.png);
}

.subnav_link span.cat02 h3::before {
	background: no-repeat center center / contain url(../images/ico_genre_play.png);
}

.subnav_link span.cat03 h3::before {
	background: no-repeat center center / contain url(../images/ico_genre_shopping.png);
}

.subnav_link span.cat04 h3::before {
	background: no-repeat center center / contain url(../images/ico_genre_stay.png);
}

.subnav_link span.cat05 h3::before {
	background: no-repeat center center / contain url(../images/ico_genre_learn.png);
}

.subnav_link span.cat06 h3::before {
	background: no-repeat center center / contain url(../images/ico_genre_feature.png);
}

.subnav_link span.cat07 h3::before {
	background: no-repeat center center / contain url(../images/ico_genre_event.png);
}

.subnav_link span.cat08 h3::before {
	background: no-repeat center center / contain url(../images/ico_genre_parking.png);
}

.subnav_link span.cat09 h3::before {
	background: no-repeat center center / contain url(../images/ico_genre_blog.png);
}

.subnav_link span .subnav_on {
	display: block;
	width: 100%;
	height: auto;
	max-height: 0;
	box-sizing: border-box;
	position: absolute;
	overflow: hidden;
	background: var(--balloon-color);
	border-radius: 1rem;
	z-index: 99;
	color: #fff;
	left: 0;
	padding: 0 0.5rem;
	margin-top: 0;
}

.subnav_link span.on:hover .subnav_on {
	display: block;
	max-height: 100vh;
	animation: fadeIn 0.5s;
	z-index: 100;
}

.subnav_link span .subnav_on ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 3rem;
}

.subnav_link span .subnav_on ul li {
	padding: 0;
	margin: 0;
}

.subnav_link span .subnav_on ul li a {
	color: #fff;
	position: relative;
}

.subnav_link span a {
	position: relative;
	display: block;
	overflow: hidden;
}

.subnav_link span.on {
	margin-bottom: 1rem;
}

.subnav_link span.on:hover a h3::after {
	content: '';
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 1rem 1.3rem 1rem;
	border-color: transparent transparent var(--balloon-color) transparent;
	position: absolute;
	left: 50%;
	bottom: -0.5rem;
	transform: translate(-50%, 0);
	animation: fadeIn 0.5s;
}

.subnav_page {
	width: 220px;
	padding-left: 3%;
	border-left: 1px solid #ffffff50;
	box-sizing: border-box;
}

.subnav_page span {
	display: block;
	padding: 0;
	margin-bottom: 0.3rem;
}

.subnav_page ul {
	padding: 0;
	margin: 0;
	list-style: none;
}

.subnav_page a {
	color: #fff;
}

.subnav_page .subnav_sns {
	display: block;
	padding: 1.5rem 0 0;
}

.subnav_page .subnav_sns ul {
	padding: 0;
	margin: 0;
	list-style: none;
	display: flex;
	gap: 5%;
	justify-content: left;
}

.subnav_page .subnav_sns ul li {
	margin: 0;
}

.subnav_page .subnav_sns ul li a {
	background: var(--emphasis-color);
	width: 2rem;
	height: 2rem;
	display: block;
	border-radius: 0.5rem;
	box-sizing: border-box;
	padding: 5%;
}

.subnav_page .subnav_sns ul li a img {
	filter: brightness(100);
}

/* --/ subnav */
/* header_title -- */
.header_title {
	width: var(--contents-width);
	margin: 0 auto;
	padding-bottom: 1rem;
}

.header_title h1 {
	padding: 1rem 0 1rem min(19vw, 9.5rem);
	margin: 3vw 0 4vw;
	width: min(70%, 500px);
	display: flex;
	align-items: center;
	position: relative;
}

.header_title h1 span {
	display: none;
	color: #2b436d;
	min-width: 100%;
}

.header_title h1 img {
	width: min(50vw, 45rem);
}

.header_title h1::before {
	content: '';
	display: block;
	width: min(14vw, 9rem);
	height: min(9vw, 8rem);
	background: no-repeat center center url(../images/main_mark.png);
	background-size: contain;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translate(0, -50%);
}

/* --/ header_title */
.header_sns {
	display: none;
}


/* ================================================
   footer
================================================ */
footer {
	background: repeat-x top center url(../images/footer_wave.png) #daedff;
	margin: 3rem 0 0;
	padding: 3rem 0 0;
	display: flex;
	flex-wrap: wrap;
	position: relative;
}

footer small.copy {
	background: var(--main-color);
	width: 100%;
	text-align: center;
	display: block;
	margin-top: 3rem;
	padding: 0.5rem 0;
	color: #daedff;
	font-size: 0.875rem;
	position: relative;
	z-index: 1;
}

footer article {
	width: var(--contents-width);
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	position: relative;
}


footer article a {
	color: var(--link-color);
}

footer article b {
	width: 100%;
	text-align: left;
	display: block;
}

footer article b a {
	margin: 0 0 0.5rem;
	box-sizing: border-box;
	display: flex;
	font-size: 0.875rem;
	font-weight: 400;
}

footer article b a::before {
	content: '';
	background: no-repeat center center url(../images/ico_arrow_01.png);
	width: 0.875rem;
	height: 1.5rem;
	margin-right: 0.2rem;
}

/* footer section -- */
footer section {
	display: flex;
	width: calc(96% - 300px);
	border-bottom: 1px solid var(--main-color);
	padding: 0.2rem 0;
}

footer section:nth-of-type(1) {
	border-top: 1px solid var(--main-color);
}

footer h4 {
	width: 7.5rem;
	height: calc(100% - 1rem);
	background: #c7e4ff;
	border-radius: 0.5rem;
	padding: 0.3rem 0;
	margin: 0.5rem 1rem 0.5rem 0;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.875rem;
	font-weight: 400;
}

footer h4::before {
	content: '';
	width: 1.2rem;
	height: 1.2rem;
	border-radius: 10rem;
	margin-right: 0.5rem;
}

footer .sub_nav h4::before {
	background: no-repeat center center / contain url(../images/ico_nav_search.png);
}

footer .sub_link.contents_link h4::before {
	background: no-repeat center center / contain url(../images/ico_nav_contents.png);
}

footer .sub_link.info h4::before {
	background: no-repeat center center / contain url(../images/ico_nav_info.png);
}

footer .sub_nav,
footer .sub_link {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

footer .sub_nav ul {
	padding: 0;
	margin: 0;
	list-style: none;
	flex: 1;
}

footer .sub_nav ul li {
	display: flex;
	flex-wrap: wrap;
	padding: 0.5rem 0;
	margin: 0;
}

footer .sub_nav ul li:not(:first-child) {
	border-top: 1px dashed #90afdd;
}

footer .sub_nav ol li {
	border-top: none !important;
}

footer .sub_nav ol {
	padding: 0;
	margin: 0;
	width: calc(100% - 5rem);
	display: flex;
	flex-wrap: wrap;
	float: right;
	list-style: disc;
	font-size: 0.875rem;
}

footer .sub_nav ol li {
	display: inline-block;
	border: none;
	position: relative;
	padding: 0 0 0 0.5rem;
	margin-left: 1rem;
}

footer .sub_nav ol li::before {
	content: '';
	width: 0.3rem;
	height: 0.3rem;
	border-radius: 10rem;
	display: block;
	top: 50%;
	left: 0;
	transform: translate(0, -50%);
	background: var(--link-color);
	position: absolute;
}

footer strong {
	display: inline-block;
	min-width: 4rem;
	font-size: 0.875rem;
	font-weight: 400;
}

footer strong::before {
	content: '';
	background: no-repeat center center url(../images/ico_arrow_01.png);
	width: 1rem;
	font-size: 0.875rem;
	height: 0.5rem;
	display: inline-block;
}

footer .sub_link {
	align-items: center;
}

footer .sub_link ul {
	padding: 0;
	margin: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 3%;
	width: calc(100% - 10rem);
}

footer .sub_link ul li {
	padding: 0;
	margin: 0;
}

footer .sub_link ul li a {
	display: inline-block;
	min-width: 4rem;
	font-size: 0.875rem;
	font-weight: 400;
}

footer .sub_link ul li a::before {
	content: '';
	background: no-repeat center center url(../images/ico_arrow_01.png);
	width: 1rem;
	font-size: 0.875rem;
	height: 0.5rem;
	display: inline-block;
}
/* --/ footer section  */

/* footer sns -- */
footer .footer_sns {
	position: absolute;
	top: 0;
	left: calc(50% + 300px);
	width: 300px;
	display: flex;
	flex-wrap: wrap;
}

footer .footer_sns::before {
	content: '';
	display: block;
	background: no-repeat center top / contain url(../images/footer_logo.png);
	width: 300px;
	aspect-ratio: 1 / 1.2;
	position: relative;
	right: 0;
	top: -1rem;
}

footer .footer_sns ul {
	padding: 0;
	margin: 2rem auto;
	list-style: none;
	display: flex;
	justify-content: center;
	gap: 14%;
}

footer .footer_sns li {
	padding: 0;
	margin: 0;
}

footer .footer_sns ul li a {
	display: block;
	width: 40px;
	height: 40px;
	padding: 0.2rem;
	background: var(--link-color);
	border-radius: 0.5rem;
	box-sizing: border-box;
}

footer .footer_sns ul li a img {
    filter: brightness(100);
}
/* --/ footer sns  */

/* page top button -- */
.pagetop {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 100;
}

.pagetop a {
	position: absolute;
	width: 3rem;
	height: 3rem;
	right: 0;
	bottom: 0.4rem;
	background: #00000099;
	display: block;
	box-sizing: border-box;
	border-radius: 0.5rem;
}

.pagetop a:hover {
	opacity: 0.7;
}

.pagetop a::before {
	content: '';
	border-left: 2px solid #fff;
	border-top: 2px solid #fff;
	display: block;
	width: 1rem;
	height: 1rem;
	position: absolute;
	transform: rotate(45deg);
	top: calc(50% - 0.3rem);
	left: calc(50% - 0.6rem);
}


/* ================================================
   main
================================================ */
main {
	display: flex;
	width: var(--contents-width);
	margin: 0 auto;
	justify-content: space-between;
	padding: var(--mgn-large) 0 0 0;
}

header + main {
	padding-top: var(--mgn-xsmall);
}

main article {
	width: calc(100% - 300px - 4%);
}

main aside {
	width: 300px;
}

main aside .widget_text + .widget_text {
	margin-top: 1rem;
}

main aside h2.widgettitle {
	font-size: 1rem;
	text-align: center;
	margin-top: 1.5rem;
	margin-bottom: 0.5rem;
}

main aside img {
	width: 100% !important;
}

main aside .add a {
	margin-bottom: 1rem;
	display: block;
}

.frontpage + main aside .archive {
	display: none;
}

main a {
	color: var(--link-color);
}

.contents {
	width: 100%;
	margin-top: var(--mgn-middle);
}

.contents > p:first-child {
	margin-top: 0;
}


/* .news
================================================ */
.news {
	margin-top: var(--mgn-middle);
}

.news h2 {
	font-family: 'M PLUS Rounded 1c', sans-serif;
	border-bottom: 0.3rem solid #09539a;
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	line-height: 100%;
	padding: 0 0 0.5rem 0;
	margin: 0;
}

.news small {
	font-size: 0.6875rem;
	color: #09539a;
	line-height: 100%;
}

.news ul {
	padding: 0;
	margin: 0;
	list-style: none;
}

.news.whatsnew ul {
	margin-bottom: var(--mgn-middle);
}

.news ul li {
	padding: 1rem 0;
	margin: 0;
	overflow: hidden;
	border-bottom: 1px dashed #cccccc;
	line-height: 1;
}

.news ul li a {
	display: flex;
	align-items: center;
}

.news ul li figure {
	width: 130px;
	height: auto;
	padding: 0;
	margin: 0 0.5rem 0 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
  text-indent: -99999px;
  background-repeat: no-repeat;
  background-position: center center;
	background-size: cover;
	border: 1px solid #DEDEDE;
	box-sizing: border-box;
}

.news ul li div {
	width: calc(100% - 0.5rem - 130px);
}

.news ul li span {
	padding: 0.3rem 0 0.2rem;
	margin: 0 0.5rem 0 0;
	background: #ccc;
	font-size: 0.6875rem;
	display: inline-block;
	box-sizing: border-box;
	min-width: 6rem;
	text-align: center;
	color: #fff;
}

.news ul li time {
	font-size: 0.875rem;
	display: inline-block;
}

.news ul li h3 {
	font-size: 1rem;
	line-height: 1.5;
	padding: 0;
	margin: 0.5rem 0;
}

.news ul li a:hover p {
	color: #334f82;
}

.news b {
	display: block;
	text-align: right;
	margin: -1px 0 0;
}

.news b a {
	background: var(--emphasis-color);
	color: #fff;
	font-size: 0.875rem;
	line-height: 1;
	font-weight: 400;
	padding: 0.3rem 0.6rem;
}

.news b a::after {
	content: '';
	margin: 0 0 0 0.3rem;
	background: url(../images/ico_arrow_02.png) no-repeat center center;
	display: inline-block;
	width: 1rem;
	height: 0.75rem;
}



/* ================================================
   reCAPCHA
================================================ */
.rcTxt {
	font-size: 0.75rem;
	text-align: center;
}
.grecaptcha-badge {
	visibility: hidden;
}

@media screen and (max-width: 640px) {
	.rcTxt {
		text-align: left;
	}
}



/* ================================================
   ================================================
   RESPONSIVE
   ================================================
================================================ */

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

	footer section {
		width: min(72%, calc(100% - min(25%, 300px)));
	}

	footer .footer_sns {
		right: 4%;
		left: auto;
		width: min(25%, 300px);
	}

	/* page top button -- */

	.pagetop {
		left: auto;
		right: 3%;
	}

}

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

	.header_nav nav ul {
		gap: 0 2%;
	}

	main article {
		width: min(72%, calc(100% - min(25%, 300px)));
	}

	main aside {
		width: min(25%, 300px);
	}
	
}

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

	header.size_s {
		background-position:center bottom, center 4rem;
	}

	.header_nav section {
		display: block;
		text-align: center;
		width: 100%;
	}

	.header_nav h1 {
		padding: 0 5%;
	}

	.header_nav nav {
		border-top: 1px solid #ffffff50;
		padding-top: 0.2rem;
	}

	.header_nav nav ul {
		justify-content: center;
	}

	.subnav {
		top: 4.2rem;
	}

	.subnav_link span.on {
		margin-bottom: 0.5rem;
	}
	
}

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

	header {
		background:center bottom / auto repeat-x url(../images/contents_wave.png), center 0rem / auto auto no-repeat url(../images/main_bg.jpg);
	}

	.header_title {
		padding-bottom: var(--mgn-small);
	}

	.header_title h1 {
		padding: 1rem 0 1rem 15vw;
	}

	.subnav {
		top: 4.2rem;
		padding: 4vw 0 3vw;
	}

	.subnav_in {
		display: block;
	}

	.subnav_link {
		width: 100%;
	}

	.subnav_page {
		width: 100%;
		border: none;
		padding: 2vw 0;
		display: flex;
		flex-wrap: wrap;
		gap: 4%;
		justify-content: center;
		border-top: 1px solid #ffffff50;
		margin-top: 4vw;
	}

	.subnav_page .subnav_sns {
		min-width: 100%;
	}

	.subnav_page .subnav_sns ul {
		justify-content: center;
	}

	footer::before {
		content: '';
		width: 30vw;
		height: 30vw;
		right: 0;
		bottom: 1rem;
		background: no-repeat center bottom / contain url(../images/footer_mark.png);
		position: absolute;
	}

	footer article b {
		width: 82%;
	}

	/* footer section -- */
	footer section {
		width: 100%;
		border: none;
	}

	footer section:nth-of-type(1) {
		border-top: none;
	}

	footer h4 {
		width: 100%;
		height: auto;
		margin: 0;
		padding: 0.5rem 0.2rem 0;
		justify-content: left;
		background: none;
		border-top: 1px dashed #90afdd;
	}

	footer .sub_nav ul li {
		border: none !important;
	}

	/* footer sns -- */
	footer .footer_sns {
		position: relative;
		right: auto;
		width: var(--contents-width);
		margin: 0 auto;
	}

	footer .footer_sns::before {
		display: none;
	}

	footer .footer_sns ul {
		justify-content: flex-start;
		margin: var(--mgn-xsmall) 0 0 0;
	}
	/*}

	@media screen and (max-width: 768px) {*/
	main {
		display: block;
	}

	main article {
		width: 100%;
	}

	main aside {
		width: 100%;
		padding-top: var(--mgn-middle);
	}

	main article#entry_list + aside {
		padding-top: var(--mgn-xsmall);
	}

	main aside .add {
		display: block;
		text-align: center;
	}

	main aside .archive ul {
		display: flex;
		flex-wrap: wrap;
	}

	main aside .archive ul li {
		min-width: calc(100% / 3);
	}

}

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

	@keyframes sp_nav_on {
		0% { bottom: 3rem; }
		10% { bottom: -3rem; }
		10% { bottom: 0; }
	}

	header {
		border: none;
		background: none;
	}

	header::before {
		display: none;
	}

	.header_nav {
		display: none;
	}

	.header_sns {
		width: 28vw;
		display: block;
		padding: 0 2vw 0 0;
		position: relative;
		z-index: 91;
	}

	.header_sns ul {
		display: flex;
		justify-content: right;
		gap: 2%;
		list-style: none;
		padding: 0;
		margin: 0;
	}

	.header_sns ul li img {
		width: 3rem;
	}

	.header_title {
		width: 100%;
		padding: 0;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
	}

	.header_title {
		position: relative;
	}

	.header_title::before {
		content: '';
		width: 100%;
		height: auto;
		aspect-ratio: 64 / 13;
		padding: 0;
		box-sizing: border-box;
		background: no-repeat left top / 100% url(../images/contents_wave_sp.png);
		z-index: 91;
		position: absolute;
		top: 0;
	}

	.header_title a {
		flex: 1;
	}

	.header_title h1 {
		position: relative;
		z-index: 91;
		top: 0;
		display: block;
		line-height: 1;
		margin: 0.3vw 0 0.2vw 2%;
		padding-top: 3vw;
		padding-bottom: 3vw;
		padding-right: 0;
		width: calc(50vw - 4%);
	}

	.header_title h1::before {
		float: left;
	}

	.header_title h1 span {
		display: block;
		font-weight: 400;
		margin-bottom: 1vw;
		font-size: min(2.6vw, 1rem);
		letter-spacing: -0.02rem;
	}

	.header_title h1 img {
		width: 100%;
	}

	.subnav {
		opacity: 1;
		top: auto;
		bottom: 0;
		padding: 0;
		height: auto;
		position: fixed;
		display: block;
		width: 100%;
		box-sizing: border-box;
		z-index: 99;
		transform: translate(0, 0);
	}

	.subnav figure {
		display: none;
	}

	.subnav_link {
		display: block;
		width: calc(100% - 3rem);
		height: 3rem;
		white-space: nowrap;
		overflow-x: scroll;
		overflow-y: hidden;
	}

	.subnav_in {
		width: 100%;
		height: 3rem;
		transition: all 0.3s;
	}

	.subnav_in span {
		padding: 0.35rem 3%;
		display: inline-block;
		width: auto;
	}

	.subnav_in span h3::before {
		display: none !important;
	}

	.subnav_page {
		display: none;
	}

	.subnav_page ul {
		padding: 1rem 5%;
		margin: 0;
		list-style: none;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 5%;
	}

	.subnav_page ul li {
		padding: 0;
		margin: 0;
	}

	.subnav_page a {
		position: relative;
		color: #FFFFFF;
		padding-right: 1.5rem;
	}

	.subnav_page a::after {
		content: '';
		border: 2px solid #FFFFFF;
		border-bottom: none;
		border-left: none;
		width: 0.3rem;
		height: 0.3rem;
		display: inline-block;
		right: 1rem;
		top: 50%;
		transform: rotate(45deg) translate(0, -50%);
		position: absolute;
	}

	.subnav_page .subnav_sns ul li {
		width: auto;
	}
	.subnav_page .subnav_sns ul li a {
		width: 2.2rem;
		height: 2.2rem;
		background: var(--emphasis-color);
	}

	.subnav_page .subnav_sns a::after {
		display: none;
	}

	.subnav .sp_nav {
		display: block;
		position: fixed;
		right: 0;
		bottom: 0;
		width: 3rem;
		height: 3rem;
		border: none;
		outline: none;
		background: #174683;
		z-index: 100;
	}

	.subnav input#sp_nav {
		display: none;
	}

	.subnav label {
		position: relative;
	}

	.subnav label::before {
		content: '';
		border-top: 2px solid #fff;
		border-bottom: 2px solid #fff;
		width: 1.5rem;
		height: 0.7rem;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		transition: all 0.3s;
	}

	.subnav label::after {
		content: '';
		width: 1.5rem;
		height: 2px;
		background: #fff;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		transition: all 0.3s;
	}

	/* subnav toggle on -- */
	.subnav .bgg {
		width: 100%;
		background: var(--main-color);
		opacity: 0.85;
		position: fixed;
		bottom: 0;
		height: 3rem;
		z-index: 91;
	}

	.subnav input#sp_nav:checked + label::before {
		transform: rotate(45deg) translate(0,0);
		border-bottom: none;
		height: 2px;
		left: 0.75rem;
		top: 1.4rem;
	}

	.subnav input#sp_nav:checked + label::after {
		transform: rotate(135deg) translate(0,0);
		left: 0.75rem;
		top: 1.4rem;
	}

	.subnav input#sp_nav:checked ~ .subnav_in {
		height: 100vh;
		background: var(--main-color);
		z-index: 90;
		overflow: auto;
		position: relative;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_page .subnav_sns {
		padding-bottom: 2rem;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link {
		white-space: normal;
		overflow: hidden;
		height: auto;
		width: 100%;
		padding-bottom: 0;
		position: relative !important;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span {
		display: block;
		border-top: 1px solid#6d9edb;
		padding: 0;
		margin: 0;
		max-height: 1000vh;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span a {
		padding: 0.8rem 4%;
		display: block;
		box-sizing: border-box;
		width: 100%;
		transition: all 0s !important;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span h3 {
		color: #FFFFFF;
		padding: 0;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span.on h3::after {
		display: none;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span a::after {
		content: '';
		border: 2px solid #FFFFFF;
		border-bottom: none;
		border-left: none;
		width: 0.3rem;
		height: 0.3rem;
		display: inline-block;
		right: 1rem;
		top: calc(50%);
		transform: rotate(45deg) translate(0, -50%);
		position: absolute;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span.on a::after {
		transform: rotate(135deg) translate(-0.3rem, calc(-50% + 0.3rem));
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span.on a::after {
		transform: rotate(-45deg) translate(0.3rem, calc(-50% + 0.3rem));
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span.on .subnav_on.on {
		position: relative;
		margin: 0 3% 3%;
		padding: 0;
		border-radius: 0;
		box-sizing: border-box;
		width: 94%;
		max-height: 1000vh;
		z-index: 10;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span.on .subnav_on.on ul {
		display: block;
		list-style: none;
		padding: 0;
		margin: 0;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span.on .subnav_on.on ul li:not(:first-child) {
		border-top: 1px solid #7EB6E8;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span.on .subnav_on.on ul li a {
		padding: 0.5em;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_link span.on .subnav_on.on ul li a::after {
		content: '';
		border: 2px solid #fff;
		border-bottom: none;
		border-left: none;
		width: 0.3rem;
		height: 0.3rem;
		display: inline-block;
		right: 5%;
		left: auto;
		top: 50%;
		transform: rotate(45deg) translate(0, -50%);
		position: absolute;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_page {
		display: flex;
		flex-wrap: wrap;
		gap: 0;
		padding-top: 0;
		padding-bottom: 3rem;
		margin-top: 0;
		border-top: 1px solid #6d9edb;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_page span {
		width: 50%;
		padding: 0;
		margin: 0;
		box-sizing: border-box;
		display: inline-block;
		position: relative;
		text-align: left;
		font-size: 0.75rem;
		border-bottom: 1px solid #6d9edb;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_page span:nth-of-type(odd) {
		border-right: 1px solid #6d9edb;
	}

	.subnav input#sp_nav:checked ~ .subnav_in .subnav_page span a {
		color: #174683;
		padding: 0.5rem 4%;
		display: block;
		box-sizing: border-box;
		width: 100%;
	}

	/* --/ subnav toggle on */
	footer {
		margin-bottom: 3rem;
	}

	footer::before {
		width: 45vw;
		height: 45vw;
		bottom: -1rem;
	}

	footer strong {
		min-width: auto;
	}

	footer .sub_nav ul,
	footer .sub_link ul{
		display: flex;
		flex-wrap: wrap;
		padding: 0.3rem 0;
		gap: 3%;
	}

	footer .sub_nav ol {
		display: none;
	}

	footer .sub_nav ul li,
	footer .sub_link ul li {
		padding: 0;
	}

	footer .sub_nav ul li a,
	footer .sub_link ul li a {
		font-size: 0.8rem;
	}

	footer small.copy {
		background: none;
		color: #4779b8;
		font-size: 0.75rem;
		margin-top: 2rem;
	}

	.pagetop {
		bottom: 60px;
	}

	.news ul li figure {
		width: max(20.31vw, 100px);
	}

	.news ul li div {
		width: calc(100% - 0.5rem - max(20.31vw, 100px));
	}

	header + main {
		padding-top: var(--mgn-middle);
	}
	
}

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

	main aside section h4 {
		font-size: 1rem;
	}

	main aside .archive ul li {
		min-width: calc(100% / 2);
	}

}


/* ================================================
   404 error
================================================ */
#error h2 {
	font-weight: normal;
}

.errorImg {}





