@charset "utf-8";


/* base
-------------------------------------------------- */
html {
	--planBlue       : #0072ce;
	--lightBlue      : #58cae7;
	--yellow         : #ffd500;
	--orange         : #ed632f;
	--purple         : #9900ff;
	--magenta        : #dc0080;
	--green          : #8ac208;
	--darkBlue       : #243c4b;
	--red            : #d40d15;
	--white          : #ffffff;
	--black          : #000000;
	--lightGray      : #d9d9d6;
	--textBlack      : #1b1b1b;
	--textGray       : #676767;
	--borderGray     : #676767;
	--borderLightGray: #d9d9d6;
	--bgLightGray    : #f2f2f1;
	--bgLightBlue    : #def4fa;
	--bgYellow       : #fff7cc;
	--bgMagenta      : #fcebf5;
	font-size: 62.5%;
}

@font-face {
  font-family: Meiryo-low-height;
  src: local(Meiryo), local('メイリオ');
  ascent-override: 90%;
  descent-override: 10%;
}

body {
	background-color: var(--white);
	color: var(--textBlack);
	font-size: 1.6rem;
	font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", Meiryo-low-height, "メイリオ", "Meiryo", sans-serif;
	font-weight: 300;
	letter-spacing: .04em;
	line-height: 1.5;
	line-break: strict;
	position: relative;
	word-break: break-all;
}

h1 {
	font-size: 3.8rem;
	line-height: 1.35;
}

h2 {
	font-size: 3.2rem;
	line-height: 1.5;
	margin: 88px 0 32px;
}

h3 {
	font-size: 2.4rem;
	line-height: 1.5;
	margin: 58px 0 26px;
}

h4 {
	font-size: 2.0rem;
	line-height: 1.5;
	margin: 51px 0 19px;
}

h5 {
	font-size: 1.8rem;
	line-height: 1.5;
	margin: 43px 0 19px;
}

h6 {
	font-size: 1.6rem;
	line-height: 1.5;
	margin: 36px 0 10px;
}

#contentBody > h2:first-child,
section:first-child > h2:first-child,
section:first-child > h3:first-child {
	margin-top: 0;
}

p,
ol,
ul,
dl {
	line-height: 1.7;
	margin-bottom: .75em;
}

.lead {
	margin-bottom: 92px;
	font-size: 1.8rem;
	line-height: 2.0;
}

.lead p,
.lead ol,
.lead ul,
.lead dl {
	line-height: 2.0;
}

.caption,
.comment,
.note {
	color: var(--textGray);
	font-size: 1.4rem;
	line-height: 1.7;
	margin-top: 10px;
}


.font12,#contentBody h4.font12 {
	font-size: 1.2rem;
	line-height: 1.7;
}
.font14,#contentBody h4.font14 {
	font-size: 1.4rem;
	line-height: 1.7;
}
.font16,#contentBody h4.font16 {
	font-size: 1.6rem;
	line-height: 1.7;
}
.font18,#contentBody h4.font18 {
	font-size: 1.8rem;
	line-height: 1.7;
}
.font20,#contentBody h4.font20 {
	font-size: 2.0rem;
	line-height: 1.7;
}
.font22,#contentBody h4.font22 {
	font-size: 2.2rem;
	line-height: 1.7;
}
.font24,#contentBody h4.font24 {
	font-size: 2.4rem;
	line-height: 1.7;
}
.font26,#contentBody h4.font26 {
	font-size: 2.6rem;
	line-height: 1.7;
}
.font28,#contentBody h4.font28 {
	font-size: 2.8rem;
	line-height: 1.7;
}

@media screen and (max-width: 768px) {
	h1 {
		font-size: 2.8rem;
	}
	
	h2 {
		font-size: 2.4rem;
		margin: 58px 0 26px;
	}
	
	h3 {
		font-size: 2.0rem;
		margin: 51px 0 19px;
	}
	
	h4 {
		font-size: 1.8rem;
		margin: 43px 0 19px;
	}
	
	h5 {
		font-size: 1.7rem;
		margin: 28px 0 20px;
	}
	
	h6 {
		font-size: 1.6rem;
		margin: 28px 0 12px;
	}
	
	.lead {
		margin-bottom: 60px;
	}
	.sp-font12,#contentBody h4.sp-font12 {
		font-size: 1.2rem;
		line-height: 1.7;
	}
	.sp-font14,#contentBody h4.sp-font14 {
		font-size: 1.4rem;
		line-height: 1.7;
	}
	.sp-font16,#contentBody h4.sp-font16 {
		font-size: 1.6rem;
		line-height: 1.7;
	}
	.sp-font18,#contentBody h4.sp-font18 {
		font-size: 1.8rem;
		line-height: 1.7;
	}
	.sp-font20,#contentBody h4.sp-font20 {
		font-size: 2.0rem;
		line-height: 1.7;
	}
	.sp-font22,#contentBody h4.sp-font22 {
		font-size: 2.2rem;
		line-height: 1.7;
	}
	.sp-font24,#contentBody h4.sp-font24 {
		font-size: 2.4rem;
		line-height: 1.7;
	}
	.sp-font26,#contentBody h4.sp-font26 {
		font-size: 2.6rem;
		line-height: 1.7;
	}
	.sp-font28,#contentBody h4.sp-font28 {
		font-size: 2.8rem;
		line-height: 1.7;
	}
}

ol {
	list-style: decimal;
	padding-left: 2em;
}

ul.marker li {
	margin-bottom: .25em;
	padding-left: 1.5em;
	position: relative;
}

ul.marker li::before {
	content: '';
	position: absolute;
	top: .6625em;
	left: .3125em;
	width: .375em;
	height: .375em;
	border: .1875em solid var(--textBlack);
	border-radius: 50%;
	background-color: var(--textBlack);
}

ul.marker ul li::before {
	border: 1px solid var(--textBlack);
	background-color: transparent;
}

ul.marker ul ul li::before {
	top: .725em;
	left: .375em;
	width: .25em;
	height: .25em;
	border: .125em solid var(--textGray);
	background-color: var(--textGray);
}

ul.marker li + li {
	margin-top: .375em;
}

ul.marker ul,
ol ol {
	margin-top: .75em;
}

ul.comment li,
p.comment,
span.comment {
	margin-left: 1.375em;
	text-indent: -1.375em;
}

span.comment {
	display: block;
	margin-top: 4px;
}

.commentNum {
	list-style: none;
	padding-left: 0;
	margin-left: 2.375em;
	text-indent: -2.375em;
	counter-reset: num;
	font-size: 1.6rem;
}

.commentNum li {
	margin-bottom: .25em;
}

.commentNum li::before {
	counter-increment: num;
	content: '※' counter(num);
	margin-right: .55em;
}

@media screen and (max-width: 768px) {
	ul.caption li {
		margin-bottom: 12px;
	}
	
	ol > li {
		margin-bottom: .25em;
	}
	
	.commentNum li {
		margin-bottom: .5em;
	}
}

dd + dt {
	margin-top: 1em;
}

strong,
b {
	font-weight: 600;
}

strong strong {
	color: var(--red);
}

em {
	color: var(--red);
	font-style: normal;
}

em em {
	font-weight: 600;
}

a {
	color: var(--planBlue);
	text-decoration: underline;
	transition: all .2s ease-out;
}

a:visited {
	color: #2e2bb4;
}

a:hover,
a:active {
	color: #005ba5;
	text-decoration: none;
}

:focus-visible {
	outline: 2px solid var(--orange);
}

a[target="_blank"]:not(:has(img)) {
	padding-right: calc(16px + .25em);
	background-image: url(/shared/images/ico_newtab.svg);
	background-repeat: no-repeat;
	background-position-x: 100%;
	background-position-y: 50%;
}

a[href$=".pdf"]:not(:has(img)) {
	padding-right: calc(16px + .25em);
	background-image: url(/shared/images/ico_pdf.svg);
	background-repeat: no-repeat;
	background-position-x: 100%;
	background-position-y: 50%;
}

.btn a[target="_blank"]:not(:has(img)),
.btn a[href$=".pdf"]:not(:has(img)) {
	background-position-x: calc(100% - 16px);
	background-position-y: 50%;
}

.btnA a[target="_blank"]:not(:has(img)) {
	background-image: url(/shared/images/ico_newtab_w.svg);
}

.btnA a[href$=".pdf"]:not(:has(img)) {
	background-image: none;
}

img,
svg {
	max-width: 100%;
	height: auto;
}

img.newTab {
	margin: 0 .25em;
	width: 1em;
	vertical-align: middle;
}

.sns a {
	display: inline-block;
	position: relative;
}

.sns .newTab,
.line .newTab,
.lineInfo .newTab,
a[href$=".pdf"] .newTab,
a[target="_blank"] .newTab {
	position: absolute;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden;
}

@media (hover: hover) {
	a img,
	button img {
		transition: filter .2s ease-out;
	}
	
	a:hover img,
	button:hover img {
		filter: opacity(80%);
	}
}

table,
.tableWrap {
	margin: 64px 0;
}

.tableWrap table {
	margin: 0;
}

h2 + table,
h2 + .tableWrap,
h3 + table,
h3 + .tableWrap,
h4 + table,
h4 + .tableWrap,
h5 + table,
h5 + .tableWrap,
h6 + table,
h6 + .tableWrap {
	margin-top: 0;
}

p + table,
p + .tableWrap,
ul + table,
ul + .tableWrap,
ol + table,
ol + .tableWrap,
dl + table,
dl + .tableWrap {
	margin-top: 32px;
}

table {
	border: 1px solid var(--borderLightGray);
}

table th,
table td {
	padding: 16px 24px;
	border: 1px solid var(--borderLightGray);
}

table thead th {
	background-color: var(--bgLightBlue);
	text-align: center;
}

table tbody th {
	background-color: var(--bgLightGray);
}

table td > :first-child {
	margin-top: 0;
}

table td > :last-child {
	margin-bottom: 0;
}


@media screen and (max-width: 768px) {
	table {
		margin: 56px 0;
	}
	
	.tableWrap {
		margin: 56px -20px;
		padding: 0 20px;
		overflow-x: auto;
	}
	
	.tableWrap table {
		width: 748px;
	}
}

cite {
	font-style: normal;
}

@media screen and (min-width: 769px) {
	.sp {
		display: none !important;
	}
}

@media screen and (max-width: 768px) {
	.pc {
		display: none !important;
	}
}

.center {
	 text-align: center;
}

.srOnly {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
}

.new {
	position: absolute;
	top: 12px;
	left: -12px;
	z-index: 1;
	padding: 2px 10px;
	background-color: var(--red);
	color: var(--white);
	font-size: 1.4rem;
	font-weight: bold;
	text-transform: uppercase;
}

.new::before {
	content: '';
	position: absolute;
	top: 100%;
	left: 0;
	border-width: 3px 6px;
	border-color: #6a0a0b #6a0a0b transparent transparent;
}

[data-micromodal-trigger] .thumb {
	display: block;
	position: relative;
}

[data-micromodal-trigger] .thumb::after {
	content: '';
	position: absolute;
	bottom: 4px;
	right: 4px;
	width: 24px;
	height: 24px;
	background: url(/shared/images/ico_12.svg) no-repeat 0 0 / 100%;
}

hr {
	border-top-color: var(--borderLightGray);
}

.component hr {
	border-top-width: 2px;
}




/* layout
-------------------------------------------------- */
.inner {
	margin: 0 auto;
}

.innerA {
	max-width: 1200px;
}

.innerB {
	max-width: 960px;
}

.innerC {
	max-width: 980px;
}

@media screen and (max-width: 1240px) {
	.innerA {
		margin: 0 20px;
	}
}         

@media screen and (max-width: 1000px) {
	.innerB {
		margin: 0 20px;
	}
}

@media screen and (max-width: 1020px) {
	.innerC {
		margin: 0 20px;
	}
}


.withSidebar {
	display: flex;
	flex-direction: row-reverse;
	align-items: flex-start;
	column-gap: 5.33%;
}

.withSidebar #localNav,
.withSidebar #localNavMobile {
	width: 20.67%;
}

.withSidebar #contentBody {
	width: 74%;
}

@media screen and (max-width: 768px) {
	.withSidebar {
		display: block;
	}
	
	.withSidebar #localNav,
	.withSidebar #localNavMobile {
		display: none;
	}
	
	.withSidebar #contentBody {
		width: 100%;
	}
}



/* header
-------------------------------------------------- */
.skip {
	margin: 0;
}

.skip a {
	display: block;
	width: fit-content;
	height: 0;
	overflow: hidden;
	padding-left: 24px;
	background: url(/shared/images/ico_1.svg) no-repeat 0 50% / 16px;
	color: var(--textBlack);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: none;
}

.skip a:focus {
	margin: 12px 20px 0; 
	height: auto;
}

#commonHeader p,
#commonHeader ul {
	margin: 0;
	line-height: 1.5;
}

#commonHeader .headerNav1 a {
	color: var(--textBlack);
	text-decoration: none;
}

#commonHeader .headerNav1 a:hover,
#commonHeader .headerNav1 a:active {
	color: #005ba5;
	text-decoration: underline;
}

#commonHeader .inner {
	display: flex;
	justify-content: space-between;
}

#commonHeader .logo img {
	vertical-align: middle;
}

#searchBtn button {
	padding: 6px 8px 6px 32px;
	background: url(/shared/images/ico_search.svg) no-repeat 8px 50% / 16px;
}

body.searchOpen #searchBtn {
	background-color: var(--bgLightBlue);
}

body.searchOpen #searchBtn button {
	background-color: var(--bgLightBlue);
	background-image: url(/shared/images/ico_close.svg);
}

#siteSearch {
	position: absolute;
	top: 100%;
	right: -20px;
	z-index: 10;
	visibility: hidden;
}

body.searchOpen #siteSearch {
	visibility: visible;
	width: calc(257px + 3em);
	height: 85px;
	padding: 10px;
	border: 1px solid var(--bgLightBlue);
	background-color: var(--bgLightBlue);
	display: flex;
	align-items: center;
	justify-content: center;
}

#commonHeader .siteSearch form {
	width: 288px;
	border: 1px solid var(--borderLightGray);
	border-radius: 2em;
	position: relative;
}

#commonHeader .siteSearch .searchbox {
	padding: 14px 36px 14px 24px;
	border: 0;
	border-radius: 2em;
	flex: 1;
}

#commonHeader .siteSearch .searchbox::placeholder {
	font-size: 1.4rem;
}

#commonHeader .siteSearch .searchBtn {
	position: absolute;
	top: calc(50% - 14px);
	right: 12px;
	width: 28px;
	height: 28px;
	padding: 6px;
}

#commonHeader .btn {
	margin-top: 0;
}

#commonHeader .btn a {
	padding-left: 16px;
}

#commonHeader .btn a::before {
	width: 20px;
	height: 20px;
	right: 15px;
}

#commonHeader .request a {
	border-color: var(--planBlue);
	color: var(--planBlue);
}

@media screen and (min-width: 769px) {
	#commonHeader .inner {
		padding: 16px 20px 15px;
		border-bottom: 1px solid #fff;
	}
	
	#commonHeader .logo img {
		width: 184px;
	}
	
	#commonHeader .headerNav1,
	#commonHeader .headerNav1 ul,
	#commonHeader .headerNav2,
	#commonHeader .headerNav2 ul {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-end;
	}
	
	#commonHeader .headerNav1 {
		font-size: 1.4rem;
	}
	
	#commonHeader .visitor {
		margin-right: 16px;
		border-left: 1px solid #ecebeb;
	}
	
	#commonHeader .visitor li {
		padding: 7px 16px;
		border-right: 1px solid #ecebeb;
	}
	
	#commonHeader .visitor li a {
		display: inline-block;
	}
	
	#commonHeader .visitor li.mypage a {
		padding-left: 20px;
		background: url(/shared/images/ico_15.svg) no-repeat 0 50% / 16px 16px;
	}
	
	#commonHeader .visitor li.mypage.logedIn a {
		background-image: url(/shared/images/ico_16.svg);
		background-size: 14px 16px;
	}
	
	#commonHeader .search {
		display: flex;
		align-items: baseline;
		position: relative;
	}
	
	#commonHeader .sns {
		margin-right: 8px;
		margin-left: 32px;
		column-gap: 16px;
	}
	
	#commonHeader .sns li img {
		vertical-align: middle;
	}
	
	#commonHeader .headerNav2 ul {
		margin-top: 16px;
		column-gap: normal;	
	}
	
	#commonHeader .headerNav2 .linkA {
		margin-right: 24px;
	}
	
	#commonHeader .headerNav2 .btn {
		min-width: 186px;
	}
	
	#commonHeader .headerNav2 .btn:not(:last-child) {
		margin-right: 12px;
	}
}

@media screen and (max-width: 768px) {
	.skip {
		display: none;
	}
	
	#commonHeader.fix {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		background-color: #fff;
		z-index: 99;
	}
	
	#commonHeader .inner {
		padding: 0 9px 0 13px;
		align-items: center;
	}
	
	#commonHeader .logo img {
		width: 92px;
	}
	
	#commonHeader .headerNav {
		display: flex;
		justify-content: flex-end;
		align-items: center;
	}
	
	body.menuOpen #spDonate {
		display: none;
	}
		
	#commonHeader #spDonate a {
		padding: 7px 36px 8px 16px;
		font-size: 1.4rem;
	}
	
	#commonHeader #spDonate a::before {
		width: 16px;
		height: 16px;
		right: 10px;
	}
	
	#commonHeader + #spDonate {
		width: 100%;
		margin-top: 0;
		position: fixed;
		top: 62px;
		z-index: 20;
	}
	
	#commonHeader + #spDonate a {
		padding: 6px 32px;
		border-radius: 0;
	}
	
	#commonHeader + #spDonate a::before {
		right: 24px;
	}
	
	#commonHeader.scrolled + #spDonate {
		display: none;
	}
	
	#searchBtn,
	#menuBtn {
		margin: 7px 0;
		width: 48px;
		height: 48px;
		position: relative;
	}
	
	#searchBtn {
		margin: 0;
		padding: 7px 0;
		height: 62px;
	}

	#menuBtn {
		margin-left: 8px;
	}
	
	#searchBtn button,
	#menuBtn button {
		width: 100%;
		height: 100%;
		vertical-align: top;
		position: relative;
	}
	
	#searchBtn button span,
	#menuBtn button span {
		position: absolute;
		top: calc(100% - 16px);
		left: 50%;
		transform: translateX(-50%);
		color: var(--planBlue);
		font-size: 1.0rem;
		font-weight: 600;
		line-height: 1;
		text-transform: uppercase;
		white-space: nowrap;
	}
	
	#searchBtn button {
		padding: 0;
		background: url(/shared/images/ico_search_2.svg) no-repeat 50% 25% / 24px;
	}
	
	#searchBtn button span {
		letter-spacing: .25em;
	}
	
	body.searchOpen .search {
		margin: -7px 0;
		padding: 7px 0;
	}
	
	body.searchOpen #searchBtn button {
		background-size: 23px;
	}
	
	body.searchOpen #searchBtn button span {
		color: var(--textBlack);
		letter-spacing: inherit;
	}
	
	body.searchOpen #siteSearch {
		width: 100%;
		right: 0;
		height: auto;
		padding: 10px 20px;
	}
	
	body.menuOpen .headerNav .donate,
	body.menuOpen .search {
		display: none !important;
	}
	
	#commonHeader .siteSearch form {
		width: 100%;
		border: 1px solid var(--borderGray);
		border-radius: 8px;
		position: relative;
	}

	#commonHeader .siteSearch .searchbox {
		padding: 16px 48px 16px 16px;
		border: 0;
		border-radius: 8px;
		flex: 1;
		background-color: #fff;
	}
	
	#commonHeader .siteSearch .searchBtn {
		position: absolute;
		top: calc(50% - 19px);
		right: 8px;
		width: 36px;
		height: 36px;
		padding: 8px;
	}
	
	#menuBtn::after,
	#menuBtn button::before,
	#menuBtn button::after {
		content: '';
		position: absolute;
		width: 26px;
		left: 50%;
		transform: translateX(-50%);
		border-bottom: 2px solid var(--planBlue);
		cursor: pointer;
		/* transition: top .3s .3s, transform .3s; */
	}
	
	#menuBtn::after {
		top: calc(35% - 1px);
	}
	
	#menuBtn button::before {
		top: 15%;
	}
	
	#menuBtn button::after {
		top: calc(55% - 2px);
	}
	
	body.menuOpen #menuBtn::after {
		width: 0;
	}
	
	body.menuOpen #menuBtn button::before,
	body.menuOpen #menuBtn button::after {
		top: calc(30% - 1px);
		/* transition: top .3s, transform .3s .3s; */
	}
	
	body.menuOpen #menuBtn button::before {
		transform: translateX(-50%) rotate(45deg);
	}
	
	body.menuOpen #menuBtn button::after {
		transform: translateX(-50%) rotate(-45deg);
	}
	
}




/* global nav
-------------------------------------------------- */
#gNav a {
	display: block;
	color: var(--textBlack);
	font-weight: 600;
	text-decoration: none;
}

@media (hover: hover) {
	#gNav a:hover,
	#gNav a:active {
		color: #005ba5;
	}
}
	
@media screen and (min-width: 769px) {
	#gNav {
		border-bottom: 1px solid var(--bgLightBlue);
		background-color: var(--bgLightBlue);
	}
	
	#commonHeader.fixed #gNav {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		z-index: 99;
	}
	
	#gNav .majorNav {
		display: flex;
		justify-content: space-between;
		margin-bottom: -1px;
		position: relative;
	}
	
	#gNav .majorNav > li {
		flex: auto;
	}
	
	#gNav .majorNav > li:not(:last-child) {
		border-right: 1px solid #fff;
	}
	
	#gNav .majorNav > li:first-child {
		margin-left: 3%;
	}
	
	#commonHeader:not(.fixed) #gNav .majorNav > li:nth-last-child(2),
	#gNav .majorNav > li:last-child {
		margin-right: 3%;
	}
	
	#gNav .majorNav > li > a {
		padding: 14px;
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	
	#gNav .majorNav > li > a::after {
		content: '';
		display: inline-block;
		width: 16px;
		height: 16px;
		margin-left: 8px;
		background: url(/shared/images/ico_1.svg) no-repeat 0 50% / 100%;
		vertical-align: text-bottom;
		flex-shrink: 0;
	}
	
	#gNav .majorNav > li.parent > a::after {
		content: none;
	}
	
	#gNav .majorNav > li.parent > a::before {
		content: '';
		display: inline-block;
		width: 16px;
		height: 16px;
		margin-right: 8px;
		background: url(/shared/images/ico_4.svg) no-repeat 0 50% / 100%;
		transform: rotate(90deg);
		vertical-align: text-bottom;
		flex-shrink: 0;
	}
	
	#gNav .majorNav > li:hover > a,
	#gNav .majorNav > li.focus > a,
	#gNav .majorNav > li > a:active {
		background-color: var(--planBlue);
		color: var(--white);
	}
	
	#gNav .majorNav > li:hover > a::after,
	#gNav .majorNav > li.focus > a::after,
	#gNav .majorNav > li > a:active::after {
		background-image: url(/shared/images/ico_2.svg);
	}
	
	#gNav .majorNav > li:hover > a::before,
	#gNav .majorNav > li.focus > a::before,
	#gNav .majorNav > li > a:active::before {
		background-image: url(/shared/images/ico_5.svg);
	}
	
	#gNav .majorNav > li.donate {
		border-bottom: 1px solid var(--yellow);
		background-color: var(--yellow);
		display: none;
	}
	
	#commonHeader.fixed #gNav .majorNav > li.donate {
		display: block;
	}
	
	#gNav .majorNav > li.donate:hover > a,
	#gNav .majorNav > li.donate > a:active {
		background-color: #f2ca00;
		color: inherit;
	}
	
	#gNav .majorNav > li.donate a::after {
		content: '';
		display: inline-block;
		width: 20px;
		height: 20px;
		margin-left: 8px;
		background: url(/shared/images/ico_3.svg) no-repeat 0 50% / 100%;
	}
	
	#gNav .subNav {
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		border-radius: 0 0 16px 16px;
		background-color: var(--white);
		z-index: 50;
		display: flex !important;
		justify-content: space-between;
		padding: 0 3%;
		transform: scaleY(0);
		transform-origin: center top;
		transition: all .2s ease-out;
	}
	
	#gNav li.hasChild:hover .subNav,
	#gNav li.hasChild.focus .subNav {
		padding: 30px 3%;
		border: 1px solid var(--borderLightGray);
		border-top-color: var(--white);
		transform: scaleY(1);
	}
	
	#gNav .subNav .menuList {
		flex: 1;
		display: flex;
	}
	
	#gNav .subNav .menuList ul {
		display: block !important;
	}
	
	#gNav .subNav .menuList > ul {
		flex: 1;
		margin-right: 20px;
	}
	
	#gNav .subNav .menuList .hasChild ul {
		margin-top: -0.25em;
	}
	
	#gNav .subNav .menuList > ul.column {
		width: calc(50% - 40px);
	}
	
	#gNav .subNav .menuList > ul.column ul {
		columns: 2;
		column-gap: 40px;
	}
	
	#gNav .subNav .menuList .hasChild li:not(:last-child),
	#gNav .subNav .menuList .second li:not(:last-child) {
		border-bottom: 1px solid #ecebeb;
	}
	
	#gNav .subNav .menuList li a {
		padding-top: 8px;
		padding-bottom: 8px;
	}
	
	#gNav .subNav .menuList > ul > li > a {
		padding-left: 24px;
		background: url(/shared/images/ico_1.svg) no-repeat 0 50% / 16px;
	}
	
	#gNav .subNav .menuList .second li > a {
		padding-left: 0;
		background: none;
	}
	
	#gNav .subNav .menuList .hasChild ul,
	#gNav .subNav .menuList .second {
		margin-left: 24px;
	}
	
	#gNav .subNav .menuList .hasChild li a,
	#gNav .subNav .menuList .second li a {
		font-size: 1.4rem;
		font-weight: 300;
	}
	#gNav .subNav .menuList .hasChild li a span.small,
	#gNav .subNav .menuList .second li aspan.small {
	font-size: 1.1rem;
	}
	#gNav .subNav .menuList li a:hover,
	#gNav .subNav .menuList li a:active {
		text-decoration: underline;
	}
	
	#gNav .subNav .bnrList {
		width: 290px;
		padding-left: 20px;
		border-left: 1px solid #ecebeb;
	}
	
	#gNav .subNav .bnrList li {
		margin-bottom: 12px;
	}
	
	#gNav .subNav .bnrList li a {
		display: flex;
		min-height: 64px;
		padding: 17px 34px 17px 16px;
		align-items: center;
		border: 1px solid #fff;
		border-radius: 8px;
		background-repeat: no-repeat;
		background-position: 50% 50%;
		background-size: cover;
		color: var(--white);
		position: relative;
	}
	
	#gNav .subNav .bnrList li.about a {
		background-image: url(/shared/images/bnr_2.jpg);
	}
	
	#gNav .subNav .bnrList li.eventcalendar a {
		background-image: url(/shared/images/bnr_3.jpg);
	}
	
	#gNav .subNav .bnrList li.blog a {
		background-image: url(/shared/images/bnr_4.jpg);
	}
	
	#gNav .subNav .bnrList li.kifutype a {
		background-image: url(/shared/images/bnr_5.jpg);
	}
	
	#gNav .subNav .bnrList li.kifu a {
		background-image: url(/shared/images/bnr_6.jpg);
	}
	
	#gNav .subNav .bnrList li.news a {
		background-image: url(/shared/images/bnr_7.jpg);
	}
	
	#gNav .subNav .bnrList li.social_issue a {
		background-image: url(/shared/images/bnr_8.jpg);
	}
	
	#gNav .subNav .bnrList li a::after {
		content: '';
		position: absolute;
		top: 50%;
		right: 16px;
		width: 15px;
		height: 15px;
		transform: translateY(-50%);
		border-radius: 50%;
		background: var(--planBlue) url(/shared/images/ico_2.svg) no-repeat 50% 50% / 110%;

	}
	
	@media screen and (max-width: 1234px) {	
		#gNav .subNav .bnrList {
			width: 25%;
		}
	}
}

@media screen and (max-width: 768px) {
	#gNav {
		position: absolute;
		width: 100%;
		overflow-y: auto;
		overflow-x: hidden;
		z-index: 50;
		display: flex;
		flex-direction: column;
		padding: 0 20px;
		background-color: var(--white);
		font-size: 1.6rem;
		height: 0;
	}
	
	body.menuOpen #gNav {
		height: calc(100vh - 62px);
		height: calc(100dvh - 62px);
		padding-top: 20px;
	}
	
	#gNav,
	.focusTrap {
		visibility: hidden;
	}
	
	body.menuOpen #gNav,
	body.menuOpen .focusTrap {
		visibility: visible;
	}
	
	body.menuOpen {
		overflow: hidden;
	}
	
	#gNav .btn {
		width: 326px;
		max-width: 100%;
		margin: 0 auto 8px;
	}
	
	#gNav .btn a {
		padding-left: 24px;
	}
	
	#gNav .majorNav {
		border-top: 1px solid var(--lightGray);
		margin-bottom: 20px;
	}
	
	#gNav .majorNav > li {
		border-bottom: 1px solid var(--lightGray);
	}
	
	#gNav .majorNav li {
		position: relative;
	}
	
	#gNav .majorNav > li a {
		padding: 15px 32px 15px 0;
		position: relative;
	}
	
	#gNav .majorNav > li:not(.hasChild) a::before,
	#gNav .menuList > ul > li:not(.hasChild) a::before,
	#gNav .bnrList li a::before {
		content: '';
		position: absolute;
		top: calc(50% - 9px);
		right: 0;
		width: 18px;
		height: 18px;
		background: url(/shared/images/ico_6.svg) no-repeat 50% 50% / 100%;
	}
	
	#gNav .majorNav .toggle {
		position: absolute;
		top: calc(15px + .75em - 19px);
		right: -6px;
		width: 36px;
		height: 36px;
		background: url(/shared/images/ico_6.svg) no-repeat 50% 50% / 18px;
		transform: rotate(90deg);
		z-index: 99;
	}
	
	#gNav .majorNav .open > .toggle {
		transform: rotate(-90deg);
	}
	
	#gNav .majorNav .subNav {
		font-size: 1.4rem;
	}
	
	#gNav .majorNav .subNav,
	#gNav .majorNav .subNav .hasChild ul {
		display: none;
	}
	
	#gNav .majorNav .subNav .menuList ul:not(:last-child),
	#gNav .majorNav .subNav .menuList li:not(:last-child) {
		border-bottom: 1px solid #ecebeb;       
	}
	
	#gNav .majorNav .subNav a {
		padding-left: 20px;
	}
	
	#gNav .majorNav .subNav .hasChild ul a {
		padding-top: 8px;
		padding-right: 0;
		padding-bottom: 8px;
		font-weight: 300;
	}
	
	#gNav .majorNav .subNav .hasChild ul a[target="_blank"]:not(:has(img)),
	#gNav .majorNav .subNav .hasChild ul a[href$=".pdf"]:not(:has(img)) {
		padding-right: calc(16px + .25em);
	}
	#gNav .subNav .menuList .hasChild li a span.small,
	#gNav .subNav .menuList .second li aspan.small {
	font-size: 1.1rem;
	}
	#gNav .subNav .bnrList li {
		border-top: 1px solid #ecebeb;
	}
	
	#gNav .mypage a {
		padding-top: 15px;
		padding-bottom: 15px;
	}
	
	#gNav .mypage a::before {
		top: calc(15px + .75em - 8px);
	}
	
	#gNav .mypage a span {
		display: inline-block;
		padding-right: 32px;
		background: url(/shared/images/ico_15.svg) no-repeat 100% 50% / 24px;
	}
	
	#gNav .mypage.logedIn a span {
		background-image: url(/shared/images/ico_16.svg);
		background-size: 19px 22px;
	}
	
	#gNav .sns {
		width: 268px;
		max-width: 100%;
		margin: 20px auto;
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	
	#gNav .sns li {
		margin-left: 0;
	}

	#gNav .guide {
		margin: 0 -20px;
		padding: 0 20px 36px;
		background-color: var(--lightGray);
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	
	#gNav .guide li {
		width: calc((100% - 12px) / 2);
		border-bottom: 1px solid var(--white);
	}
	
	#gNav .guide a {
		padding: 15px 0;
		font-size: 1.4rem;
		font-weight: 300;
	}
	
	#gNav .focusTrap.next {
		flex: 1;
		margin: 0 -20px;
		padding: 0 20px;
		background-color: var(--lightGray);
	}
}

@media screen and (max-width: 768px) {
	#commonHeader.fix ~ #main {
		margin-top: 62px;
	}
}

/* main
-------------------------------------------------- */
#main {
	overflow-x: hidden;
}

/* splide
-------------------------------------------------- */
.splide .splide__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.splide__controls,
.splide__pagination {
	margin-top: 20px;
	height: 14px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.splide__controls .splide__pagination {
	margin-top: 0;
	height: auto;
}

.splide__pagination li {
	margin: 0 10px;
}

.splide__pagination__page {
	display: inline-block;
	width: 12px;
	height: 12px;
	border: 1px solid #e9ebed;
	border-radius: 50%;
	background-color: #e9ebed;
	transition: all .2s ease-out;
	position: relative;
}

.splide__pagination__page:hover::after,
.splide__pagination__page.is-active::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	border: 6px solid var(--darkBlue);
	border-radius: 50%;
}
	
.splide__pagination.pagination-over {
	position: absolute;
	bottom: 20px;
	left: 0;
	width: 100%;
	margin-top: 0;
}

.splide__pagination.pagination-over .splide__pagination__page {
	border-color: #fff;
	background-color: #fff;
	box-shadow: 0 0 5px rgba(0,0,0,.25);
}

.splide__pagination.pagination-over .splide__pagination__page:hover::after,
.splide__pagination.pagination-over .splide__pagination__page.is-active::after {
	border-width: 4px
}

.splide .pauseBtn {
	margin-left: 16px;
	width: 48px;
	height: 48px;
	border: 1px solid var(--white);
	border-radius: 50%;
	background-color: var(--white);
	line-height: 1;
	position: relative;
	transition: all .2s ease-out;
}

.splide__toggle,
.splide .progress {
	position: absolute;
	top: calc(50% - 1px);
	left: 50%;
	transform: translate(-50%, -50%);
}

.splide__toggle {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 10;
}

.splide__toggle svg {
	fill: var(--planBlue);
}

.splide__toggle__play {
	margin-left: 4px;
}

.splide .progress {
	width: 42px;
	height: 42px;
}

.splide .progress svg {
	transform: rotate(-90deg);
}

.splide .progress svg circle {
	fill: transparent;
	stroke: transparent;
}

.splide .progress svg circle.start {
	stroke: #4fa8df;
	stroke-width: 1;
	animation-name: circle;
	animation-iteration-count: 1;
	animation-timing-function: linear;
	animation-delay: 250ms;
}

.splide__track[aria-live='polite'] + .splide__controls .progress svg circle.start {
	animation: inherit;
}

@keyframes circle {
	0% { stroke-dasharray: 0 132; }
	99.9%,to { stroke-dasharray: 132 132; }
}

.splide__arrow {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 30px;
	z-index: 1;
}

.splide__arrow.arrow-over {
	filter: drop-shadow(0 0 5px #000);
}

.splide__arrow--prev {
	left: -60px;
}

.splide__arrow--next {
	right: -60px;
}

.splide__arrow--prev.arrow-over {
	left: 1.25%;
}

.splide__arrow--next.arrow-over {
	right: 1.25%;
}

.splide__arrow svg {
	width: 38px;
	height: 42px;
	fill: var(--planBlue);
	transition: fill .2s ease-out;
}

.splide__arrow.arrow-over svg {
	fill: var(--white);
}

@media (hover: hover) {
	.splide .pauseBtn:hover {
		border-color: #eef5fc;
		background-color: #eef5fc;
	}
	
	.splide__arrow:hover svg {
		fill: rgba(0,114,206,.5);
	}
	
	.splide__arrow.arrow-over:hover svg {
		fill: rgba(255,255,255,.5);
	}
}

.splide__arrow--prev svg {
	transform: scaleX(-1);
}

@media screen and (max-width: 1340px) {
	.innerA .splide__arrow--prev {
		left: calc((100vw - 1200px) / -2 + 10px);
	}
	
	.innerA .splide__arrow--next {
		right: calc((100vw - 1200px) / -2 + 10px);
	}
}

@media screen and (max-width: 1226px) {
	.innerA .splide__arrow--prev {
		left: -2px;
	}
	
	.innerA .splide__arrow--next {
		right: -2px;
	}
}

@media screen and (max-width: 1100px) {
	.innerB .splide__arrow--prev {
		left: calc((100vw - 960px) / -2 + 10px);
	}
	
	.innerB .splide__arrow--next {
		right: calc((100vw - 960px) / -2 + 10px);
	}
}

@media screen and (max-width: 986px) {
	.innerB .splide__arrow--prev {
		left: -2px;
	}
	
	.innerB .splide__arrow--next {
		right: -2px;
	}
}

@media screen and (max-width: 940px) {
	.innerC .photoSlider .splide__arrow--prev {
		left: calc((100vw - 800px) / -2 + 10px);
	}
	
	.innerC .photoSlider .splide__arrow--next {
		right: calc((100vw - 800px) / -2 + 10px);
	}
}

@media screen and (max-width: 826px) {
	.innerC .photoSlider .splide__arrow--prev {
		left: -2px;
	}
	
	.innerC .photoSlider .splide__arrow--next {
		right: -2px;
	}
}

@media screen and (max-width: 768px) {
	.splide__pagination li {
		margin: 0 8px;
	}
	
	.splide .pauseBtn {
		width: 40px;
		height: 40px;
	}
	
	.splide__toggle svg {
		transform: scale(.85);
	}
	
	.splide .progress {
		transform: translate(-50%, -50%) scale(.85);
	}
	
	.splide__arrow {
		width: 20px;
	}
	
	.splide__arrow--prev {
		left: -36px;
	}
	
	.splide__arrow--next {
		right: -36px;
	}
}

.splide--ttb .splide__track {
	padding-right: 16px;
}

.splide__track {
	transition: height .3s ease-out;
}

.splide--ttb .splide__list {
	transition: transform .3s ease-out;
}

.splide__pagination--ttb {
	position: absolute;
	right: 16px;
	top: 0;
	margin-top: 0;
	height: 100%;
	width: 14px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.splide__pagination--ttb li {
	margin: 12px 0;
	height: 12px;
}

@media screen and (max-width: 768px) {
	.splide--ttb .splide__track {
		padding-right: 12px;
	}
	
	.splide__pagination--ttb {
		width: 12px;
		justify-content: flex-start;
	}
	
	.splide__pagination--ttb li {
		margin: 8px 0;
	}
}



/* page header
-------------------------------------------------- */
#pageHeader {
	border-bottom: 1px solid #f2f8fc;
	background-color: #f2f8fc;
	position: relative;
}

#pageHeader h1 {
	max-width: 1200px;
	min-height: 140px;
	margin: 0 auto;
	padding: 16px 0;
	display: flex;
	align-items: center;
}

#pageHeader.article h1 {
	font-size: 3.6rem;
	line-height: 1.5;
}

#pageHeader.withImg {
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-size: cover;
}

.component #pageHeader.withImg {
	background-image: url(/component/images/img_1.jpg);
}

#pageHeader.withImg h1 {
	min-height: 280px;
	padding: 0;
}

#pageHeader.withImg h1 span {
	padding: 4px 16px;
	background-color: var(--planBlue);
	color: var(--white);
}

#pageHeader.withImg::after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: -4px;
	width: calc(100% + 8px);
	height: 0;
	padding-top: 2.2%;
	background: url(/shared/images/bg_2.svg) no-repeat 0 0 / 100%;
}


@media screen and (max-width: 1240px) {
	#pageHeader h1 {
		margin: 0 20px;
	}
}         

@media screen and (max-width: 768px) {
	#pageHeader h1 {
		min-height: 100px;
	}
	
	#pageHeader.article h1 {
		font-size: 2.6rem;
	}
	
	#pageHeader.withImg h1 {
		max-width: none;
		min-height: 0;
		margin: 0;
		display: block;
		font-size: 2.4rem;
	}
	
	#pageHeader.withImg h1 span {
		display: block;
		padding: 16px 20px;
	}
	
	#pageHeader.withImg h1::after {
		content: '';
		display: block;
		height: 0;
		padding-top: 51.3%;
		background-repeat: no-repeat;
		background-position: 50% 50%;
		background-size: cover;
	}
	
	.component #pageHeader.withImg h1::after {
		background-image: url(/component/images/img_1_sp.jpg);
	}
	
	#pageHeader.withImg::after {
		padding-top: 5.1%;
		background-image: url(/shared/images/bg_2_sp.svg);
	}
}


/* breadcolumb
-------------------------------------------------- */
#pageHeader + #breadcrumb {
	display: none;
}

#breadcrumb {
	margin-bottom: 20px;
	padding-right: calc((10.53em + 140px) - (100vw - 1200px) / 2);
}

#breadcrumb ol {
	list-style: none;
	padding-left: 0;
	margin-top: 18px;
	display: flex;
	flex-wrap: wrap;
	font-size: 1.4rem;
}

#breadcrumb li:not(:first-child) {
	margin-left: 12px;
	padding-left: 17px;
	background: url(/shared/images/ico_8.svg) no-repeat 0 .5em / 5px 10px;
}

#breadcrumb li.home {
	text-transform: uppercase;
}

#breadcrumb li a:not([href]) {
	color: var(--textBlack);
	text-decoration: none;
}

@media screen and (max-width: 1240px) {
	#breadcrumb {
		padding-right: calc(10.53em + 140px - 20px);
	}
}

@media screen and (max-width: 768px) {
	#breadcrumb {
		margin-bottom: calc(1.6875em + 36px);
		padding-right: 0;
	}
	
	#breadcrumb li:not(:first-child) {
		margin-left: 7px;
		padding-left: 12px;
	}
}




/* content body
-------------------------------------------------- */
#contentBody {
	margin-top: 88px;
	margin-bottom: 120px;
}

@media screen and (max-width: 768px) {
	#contentBody {
		margin-top: 52px;
		margin-bottom: 96px;
	}
}



/* article
-------------------------------------------------- */
article#contentBody.innerC {
	margin-top: 40px;
	font-size: 1.8rem;
}

article.innerC .lead {
	margin-bottom: 56px;
}

article.innerC h2,
article#contentBody.innerC h2 {
	margin-top: 56px;
	font-size: 3.0rem;
}
article.innerC .inquiry h2,
article.innerC .irelatedLink h2,
article#contentBody.innerC .inquiry h2,
article#contentBody.innerC .relatedLink h2
 {
	margin-top: 0;
}

article.innerC h3,
article#contentBody.innerC h3 {
	margin-top: 52px;
    font-size: 2.2rem;
}

article#contentBody.innerC h3:first-of-type {
	margin-top: 0;
}
article#contentBody.innerC * + h3:first-of-type {
	margin-top: 52px;
}
@media screen and (max-width: 768px) {
	article.innerC .lead {
		margin-bottom: 48px;
	}
	
	article.innerC h2,
	article#contentBody.innerC h2 {
		margin-top: 48px;
		font-size: 2.2rem;
	}
	
	article.innerC h3,
	article#contentBody.innerC h3 {
		margin-top: 42px;
		font-size: 1.8rem;
	}

	article#contentBody.innerC h3:first-of-type {
		margin-top: 0;
	}
	article#contentBody.innerC * + h3:first-of-type {
		margin-top: 42px;
	}
}



/* local nav
-------------------------------------------------- */
#localNav,
#localNavMobile {
	margin: 96px 0 120px;
	padding: 6px;
	border: 1px solid #abe5f3;
	border-radius: 16px;
	background-color: #abe5f3;
}

#localNav h2,
#localNavMobile h2 {
	margin: 10px 0 18px;
	font-size: 1.8rem;
	font-weight: 600;
	text-transform: uppercase;
	text-align: center;
}

#localNav ul,
#localNav p,
#localNavMobile ul,
#localNavMobile p {
	margin-bottom: 8px;
	border: 1px solid #abe5f3;
	border-radius: 8px;
	background-color: #fff;
	line-height: 1.5;
}

#localNav p,
#localNavMobile p {
	margin-bottom: 0;
}

#localNav a,
#localNav .accordion > span,
#localNavMobile a,
#localNavMobile .accordion > span {
	display: block;
	padding: 20px 41px 20px 15px;
	color: var(--textBlack);
	font-weight: 600;
	text-decoration: none;
}

#localNav a,
#localNavMobile a {
	background: var(--white) url(/shared/images/ico_1.svg) no-repeat calc(100% - 15px) 50% / 16px;
}

#localNav li:first-child a,
#localNavMobile li:first-child a {
	border-radius: 8px 8px 0 0;
}

#localNav li:last-child a,
#localNavMobile li:last-child a {
	border-radius: 0 0 8px 8px;
}

#localNav p a,
#localNavMobile p a {
	border-radius: 8px;
}

#localNav .menu1 li:not(:last-child),
#localNavMobile .menu1 li:not(:last-child) {
	border-bottom: 1px solid #abe5f3;
}

#localNav .child li,
#localNav .menu2 li,
#localNavMobile .child li,
#localNavMobile .menu2 li {
	margin: 0 15px;
}

#localNav .child li:not(:last-child),
#localNav .menu2 li:not(:last-child),
#localNavMobile .child li:not(:last-child),
#localNavMobile .menu2 li:not(:last-child) {
	border-bottom: 1px solid var(--borderLightGray);
}

#localNav .child li a,
#localNav .menu2 li a,
#localNavMobile .child li a,
#localNavMobile .menu2 li a {
	margin: 0 -15px;
	padding-top: 12px;
	padding-bottom: 12px;
	font-size: 1.4rem;
}

#localNav .child li:first-child a,
#localNavMobile .child li:first-child a {
	border-radius: 0;
}

#localNav .child li:last-child a,
#localNavMobile .child li:last-child a {
	padding-bottom: 16px;
	border-radius: 0;
}

#localNav .menu2 li:first-child a,
#localNavMobile .menu2 li:first-child a {
	padding-top: 16px;
}

#localNav .menu2 li:last-child a,
#localNavMobile .menu2 li:last-child a {
	padding-bottom: 16px;
}

#localNav ul .accordion,
#localNavMobile ul .accordion {
	position: relative;
}

#localNav ul .accordion a,
#localNavMobile ul .accordion a {
	background: none;
}

#localNav ul .accordion a:after,
#localNavMobile ul .accordion a:after {
	content: none;
}

#localNav ul .accordion button,
#localNavMobile ul .accordion button {
	position: absolute;
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
	width: 28px;
	height: 28px;
	background-color: #fff;
}

#localNav ul .accordion button::before,
#localNav ul .accordion button::after,
#localNavMobile ul .accordion button::before,
#localNavMobile ul .accordion button::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 50%;
	transform: translate(50%, -50%);
}

#localNav ul .accordion button::before,
#localNavMobile ul .accordion button::before {
	width: 14px;
	border-bottom: 2px solid var(--planBlue);
}

#localNav ul .accordion button::after,
#localNavMobile ul .accordion button::after {
	height: 14px;
	border-right: 2px solid var(--planBlue);
}

#localNav ul .accordion.open button::after,
#localNavMobile ul .accordion.open button::after {
	content: none;
}

#localNav ul .accordion span + button,
#localNavMobile ul .accordion span + button {
	top: 0;
	right: 0;
	transform: none;
	width: 100%;
	height: 100%;
	background-color: transparent;
}

#localNav ul .accordion span + button::before,
#localNav ul .accordion span + button::after,
#localNavMobile ul .accordion span + button::before,
#localNavMobile ul .accordion span + button::after {
	right: 22px;
}

#localNav ul .accordion + ul,
#localNavMobile ul .accordion + ul {
	border: 0;
	border-radius: 0;
	display: none;
}


#localNav .login a,
#localNavMobile .login a {
	border-color: var(--planBlue);
	background-color: var(--planBlue);
	background-image: url(/shared/images/ico_2.svg);
	color: var(--white);
}

@media (hover: hover) {
	#localNav a:hover,
	#localNavMobile a:hover {
		border-color: #eef5fc;
		background-color: #eef5fc !important;
		color: var(--planBlue);
	}
	
	#localNav .login a:hover,
	#localNavMobile .login a:hover {
		border-color: #005ba5;
		background-color: #005ba5;
		color: var(--white);
	}
}

#localNav a span,
#localNav span span,
#localNavMobile a span,
#localNavMobile span span {
	display: inline-block;
}

@media screen and (max-width: 768px) {
	#localNav,
	#localNavMobile {
		margin: 0;
		padding: 0 14px;
		border-radius: 28px;
	}
	
	#localNav .navHeader,
	#localNavMobile .navHeader {
		position: relative;
	}
	
	#localNav .navHeader h2,
	#localNavMobile .navHeader h2 {
		margin: 14px;
		font-size: 1.7rem;
		text-align: left;
	}
	
	#localNav .navHeader .toggle,
	#localNavMobile .navHeader .toggle {
		position: absolute;
		top: 0;
		left: -15px;
		width: calc(100% + 30px);
		height: 100%;
	}
	
	#localNav .navHeader .toggle::after,
	#localNavMobile .navHeader .toggle::after {
		content: '';
		position: absolute;
		top: calc(50% - 10px);
		right: 22px;
		width: 20px;
		height: 20px;
		background: url(/shared/images/ico_4.svg) no-repeat 50% 50% / 100%;
		transform: rotate(90deg);
	}
	
	#localNav .navHeader.open .toggle,
	#localNavMobile .navHeader.open .toggle {
		margin-bottom: 0;
	}
	
	#localNav .navHeader.open .toggle::after,
	#localNavMobile .navHeader.open .toggle::after {
		transform: rotate(-90deg);
	}
	
	#localNav .menuList,
	#localNavMobile .menuList {
		display: none;
	}
	
	#localNav ul,
	#localNav p,
	#localNavMobile ul,
	#localNavMobile p {
		margin-bottom: 16px;
		border-radius: 12px;
	}

	#localNav li:first-child a,
	#localNavMobile li:first-child a {
		border-radius: 16px 16px 0 0;
	}
	
	#localNav li:last-child a,
	#localNavMobile li:last-child a {
		border-radius: 0 0 16px 16px;
	}
	
	#localNav p a,
	#localNavMobile p a {
		border-radius: 16px;
	}
	
	#spLNav {
		min-height: 88px;
		padding: 16px 20px;
	} 
}



/* donate tab
-------------------------------------------------- */
#donateTab {
	right: 86px;
	z-index: 10;
	position: relative;
	display: none;
}

#donateTab a {
	display: block;
	padding: 18px 20px;
	border: 1px solid var(--yellow);
	border-radius: 16px 16px 0 0;
	background-color: var(--yellow);
	box-shadow: 0 0 16px rgba(0,0,0,.25);
	color: var(--textBlack);
	font-size: 1.8rem;
	font-weight: 600;
	text-decoration: none;
	text-align: center;
}

@media (hover: hover) {
	#donateTab a:hover {
		border-color: #f2ca00;
		background-color: #f2ca00;
	}
}

#donateTab.have .badge {
	position: absolute;
	bottom: calc(100% - 22px);
	right: -8px;
	width: 1.8em;
	height: 1.8em;
	display: flex;
	justify-content: center;
	align-items: center;
	border: 1px solid var(--red);
	border-radius: 50%;
	background-color: var(--red);
	color: var(--white);
}

#donateTab.have .number {
	display: block;
	margin: 18px 0 calc((3.8em + 20px) * -1);
	font-size: 1.4rem;
	transition: margin .2s ease-out;
}

#donateTab.have .number em {
	color: var(--textBlack);
	font-size: 2.2rem;
}

#donateTab.have a:hover .number,
#donateTab.have a:focus .number {
	margin: 6px 0 -12px;
}

@media screen and (max-width: 768px) {
	#donateTab {
		right: auto;
		left: 20px;
	}
	
	#donateTab a {
		padding: 7px 20px;
	}
	
	#donateTab.have a:hover .number,
	#donateTab.have a:focus .number {
		margin: 2px 0 -4px;
	}
}



/* pagetop
-------------------------------------------------- */
#pageTop {
	right: 16px;
	z-index: 10;
	display: none;
}

#pageTop a {
	display: block;
	padding: 48px 0 6px;
	width: 48px;
	background: url(/shared/images/ico_pagetop.svg) no-repeat 50% 0 / 48px;
	color: var(--planBlue);
	font-size: 1.1rem;
	font-weight: 600;
	text-decoration: none;
	text-align: center;
	text-shadow: -1px  0   #fff,
	             -1px  1px #fff,
	              0    1px #fff,
	              1px  1px #fff,
	              1px  0   #fff,
	              1px -1px #fff,
	              0   -1px #fff,
	             -1px -1px #fff;
}

#pageTop a:hover {
	background-image: url(/shared/images/ico_pagetop_hover.svg);
}

@media screen and (max-width: 768px) {
	#pageTop a {
		padding-top: 44px;
		background-size: 44px;
	}
}


/* footer donation
-------------------------------------------------- */
#donation {
	padding: 48px 0 64px;
	border-top: 1px solid #ffe357;
	border-bottom: 1px solid #ffe357;
	background-color: #ffe357;
	text-align: center;
	position: relative;
	z-index: 10;
}

#donation .inner {
	max-width: 1312px;
	margin: 0 auto;
}

@media screen and (max-width: 1352px) {
	#donation .inner {
		margin: 0 20px;
	}
}

#donation h2 {
	display: inline-block;
	max-width: 100%;
	margin: 0 40px 28px; 
	font-size: 4.6rem;
	position: relative;
}

#donation h2::before {
	content: '';
	position: absolute;
	top: -72px;
	left: -86px;
	width: 114px;
	height: 114px;
	background: url(/shared/images/bg_1.svg) no-repeat 0 0 /100%;
}

#donation .box {
	border: 1px solid #ffe357;
	border-radius: 16px;
	padding: 24px calc(50% + 20px) 20px 20px;
	background-color: #fff;
	font-size: 20px;
	position: relative;
}

#donation .box::before {
	 content: '';
	 position: absolute;
	 top: 0;
	 right: 0;
	 width: 50%;
	 height: 100%;
	 border-radius: 0 16px 16px 0;
	 background: url(/shared/images/img_1.jpg) no-repeat 50% 50% / cover; 
}

#donation .box::after {
	content: '';
	position: absolute;
	top: -16px;
	right: -16px;
	width: calc(50% + 46px);
	height: 84%;
	background: url(/shared/images/img_2.svg) no-repeat 0 0 / 100% 100%;
}

#donation .btnGroup {
	margin: 24px 0 28px;
}

#donation .btn {
	width: auto;
	min-width: 0;
	margin: 0 0 12px;
}

#donation .btn a {
	padding: 18px 54px 18px 30px;
	font-size: 2.0rem;
}

#donation .btn a::before {
	right: 20px;
	background-size: 20px;
}

#donation .letter {
	margin-top: 0;
	padding: 16px 20px;
	border: 1px solid var(--bgYellow);
	background-color: var(--bgYellow);
}

#donation .letter h3 {
	margin: 0;
	font-size: 2.0rem;
}

#donation .letter img {
	margin: 20px auto;
}

#donation .letter .note {
	margin-bottom: 0;
	color: var(--textGray);
	font-size: 1.4rem;
}

@media screen and (max-width: 768px) {
	#donation {
		padding: 32px 0 20px;
		text-align: left;
	}
	
	#donation h2 {
		margin: 0 0 20px;
		font-size: 3.0rem;
	}
	
	#donation h2::before {
		content: none;
	}
	
	#donation .box {
		padding: calc(34% + 24px) 24px 24px;
		font-size: 16px;
	}
	
	#donation .box::before {
		 width: 100%;
		 height: 0;
		 padding-top: 34%;
		 border-radius: 16px 16px 0 0;
		 background-position: 50% 25%;
	}
	
	#donation .box::after {
		top: -2px;
		right: 12%;
		width: 78%;
		height: 0;
		padding-top: calc(34% + 20px);
		background: url(/shared/images/img_2_sp.svg) no-repeat 0 0 / 100% 100%;
	}
	
	#donation .btn {
		width: 350px;
	}
	
	#donation .btn a {
		padding-top: 16px;
		padding-bottom: 16px;
		font-size: 1.8rem;
	}
	
	#donation .letter {
		margin: -8px;
		text-align: center;
	}
	
	#donation .letter h3 {
		font-size: 1.4rem;
	}
	
	#donation .letter .note {
		font-size: 1.1rem;
	}
}


/* footer social
-------------------------------------------------- */
#social {
	background-color: var(--lightGray);
	padding: 64px 0;
	text-align: center;
	position: relative;
	z-index: 10;
}

#social .inner {
	max-width: 1312px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}

@media screen and (max-width: 1352px) {
	#social .inner {
		margin: 0 20px;
	}
}

#social .inner > div {
	width: calc((100% - 32px) / 3);
	padding: 12px 20px;
	border: 1px solid var(--white);
	border-radius: 8px;
	background-color: var(--white);
	display: flex;
	flex-direction: column;
}

#social h2 {
	margin: 4px 0 8px;
	font-size: 2.0rem;
}

#social h2 + p {
	font-size: 1.4rem;
}

#social .join {
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: 18px;
	flex: 1;
}

#social .sns .join {
	padding: 0 5%;
	justify-content: space-around;
	column-gap: 12px;
}

#social .join .btn {
	min-width: 0;
	margin: 0;
	font-size: 1.4rem;
	text-align: left;
}

#social .mailmag .join::before {
	content: '';
	width: 60px;
	height: 60px;
	background: url(/shared/images/ico_7.svg) no-repeat 50% 50% / 100%;
}

@media screen and (max-width: 768px) {
	#social {
		padding: 20px 0;
	}
	
	#social .inner {
		display: block;
	}
	
	#social .inner > div {
		width: auto;
	}
	
	#social .inner > div:not(:last-child) {
		margin-bottom: 8px;
	}
	
	#social h2 {
		font-size: 1.8rem;
	}
	
	#social h2 + p {
		font-size: 1.2rem;
	}
	
	#social .join {
		margin: 20px 0 8px;
	}
	
	#social .join .btn {
		width: fit-content;
	}
}


/* footer
-------------------------------------------------- */
#commonFooter {
	border-top: 1px solid var(--planBlue);
	background-color: var(--planBlue);
	position: relative;
	z-index: 10;
}

#commonFooter .innerA {
	padding: 56px 0;
}

#commonFooter p,
#commonFooter ul {
	margin: 0;
	line-height: 1.5;
}

#commonFooter a {
	color: var(--white);
	text-decoration: none;
}

#commonFooter a:hover {
	text-decoration: underline;
}

#commonFooter .footNav1 {
	margin-bottom: 48px;
	columns: 5;
	column-gap: 46px;
}

#commonFooter .footNav1 > li {
	margin-bottom: 1em;
	break-inside: avoid;
}

#commonFooter .footNav1 > li.break {
	break-after: column;
}

#commonFooter .footNav1 > li > a {
	display: inline-block;
	padding-left: 24px;
	font-size: 1.8rem;
	font-weight: 600;
	background: url(/shared/images/ico_2.svg) no-repeat 0 50% / 16px;
}

#commonFooter .footNav1 > li ul {
	margin-top: 1em;
	margin-bottom: 2em;
	padding-top: 1em;
	border-top: 1px solid #54a1de;
	font-size: 1.4rem;
}

#commonFooter .footNav1 > li ul li {
	margin-bottom: .75em;
}

#commonFooter .footNav1 > li ul li a {
	display: inline-block;
	padding-left: 20px;
	background: url(/shared/images/ico_5.svg) no-repeat 0 50% / 16px;
}

#commonFooter .footNav1 li.separate {
	margin-top: 2em;
}

#commonFooter .footNav2 {
	margin-bottom: 28px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	font-size: 1.4rem;
	line-height: 1;
}

#commonFooter .footNav2 li {
	padding: 0 32px;
	margin-right: -1px;
	margin-bottom: 1.5em;
	border-right: 1px solid #54a1de;
	border-left: 1px solid #54a1de;
}

#commonFooter .owner {
	padding: 27px 39px;
	border: 1px solid var(--white);
	background-color: var(--white);
	display: flex;
	align-items: center;
}

#commonFooter .owner address {
	margin-left: 40px;
	padding-left: 40px;
	border-left: 1px solid var(--lightGray);
	font-size: 1.4rem;
}

#commonFooter .owner address b {
	display: inline-block;
	margin-bottom: .25em;
	font-size: 1.8rem;
}

#commonFooter .copyright {
	padding: 19px 20px 20px;
	border-top: 1px solid var(--darkBlue);
	background-color: var(--darkBlue);
	color: var(--white);
	font-size: 1.2rem;
	text-align: center;
}

@media screen and (max-width: 1024px) {
	#commonFooter .footNav1 {
		columns: 3;
	}
	
	#commonFooter .footNav1 > li.break {
		break-after: auto;
	}
	
	#commonFooter .footNav1 > li:nth-child(2),
	#commonFooter .footNav1 > li:nth-child(4) {
		break-after: column;
		margin-top: 2em;
	}
}

@media screen and (max-width: 768px) {
	#commonFooter .innerA {
		padding: 24px 0 40px;
	}

	#commonFooter .footNav1 {
		display: none;
	}
	
	#commonFooter .footNav2 {
		justify-content: space-between;
	}
	
	#commonFooter .footNav2 li {
		width: calc((100% - 16px) / 2);
		line-height: 1.5;
		margin: 0;
		padding: 0;
		border-right: 0;
		border-left: 0;
	}
	
	#commonFooter .footNav2 li:not(:nth-last-child(-n+2)){
		border-bottom: 1px solid #54a1de;
	}
 	
	#commonFooter .footNav2 li:nth-child(2n):not(:last-child) {
		border-bottom: 1px solid #54a1de;
	}
	
	#commonFooter .footNav2 li a {
		display: flex;
		height: 100%;
		align-items: center;
		padding: 12px 0;
	}
	
	#commonFooter .owner {
		padding: 24px;
		flex-direction: column;
	}
	
	#commonFooter .owner address {
		margin-top: 20px;
		margin-left: 0;
		padding-left: 0;
		border-left: 0;
		font-size: 1.2rem;
	}
	
	#commonFooter .owner address b {
		font-size: 1.6rem;
	}
	
	#commonFooter .copyright {
		padding: 12px 20px;
	}
}
q {
	quotes: none;
}

.bgLightGray {
	background-color: #f2f2f1!important;
	border: 1px solid var(--bgLightGray)!important;
}
.bgLightBlue {
	background-color: #def4fa!important;
	border: 1px solid var(--bgLightBlue)!important;
}
.bgYellow {
	background-color: #fff7cc!important;
	border: 1px solid var(--bgYellow)!important;
}
.bgMagenta {
	background-color: #fcebf5!important;
	border: 1px solid var(--bgMagenta)!important;
}
.bgBeige {
	background-color: #faf5ec!important;
	border: 1px solid #faf5ec!important;
}