@charset "UTF-8";
/*------------------------------------------------------------------
********************************************************************
 * ▼構成
 * ・ベースとなるCSS
 * ・スマホのみ（@media screen and (max-width: 767px) {} ）
********************************************************************
--------------------------------------------------------------------*/

/*--------------------------------------------------
**************************************************
  PC用
**************************************************
--------------------------------------------------*/
@media screen and (min-width: 768px) {
	
	/* -- h2 -- */
	section h2 {
		text-align:center;
		font-size:24px;
		font-weight:700;
		color:#0c78a6;
	}
	section h2 span {
		display:block;
		font-size:16px;
		color:#999;
	}
	
	
	/* -- main -- */
	#top_main .catch {
		text-align:center;
		padding:30px 0;
		font-size:30px;
		font-weight:500;
		background:#fafafa;
		line-height:1.8em;
		letter-spacing:.1em;
	}
	
	
	/* -- articles -- */
	#top_articles {
		margin-top:80px;
	}
	.top_article_container {
		width:1080px;
		max-width:90%;
		margin:30px auto 0;
		display:flex;
		justify-content:space-between;
	}
	.article_content {
		width:31%;
		margin:0 auto;
		padding:20px 10px;
		border:1px solid #f0f0f0;
		border-top:5px solid #0e81b0;
	}
	.article_content .thumbnail {
		width:100%;
		height:240px;
		margin:20px auto 0;
	}
	.article_content .thumbnail img {
		width:auto;
		max-width:100%;
		height:auto;
		max-height:240px;
		margin:auto;
		display:block;
	}
	.article_content .name a {
		text-align:center;
		font-size:16px;
		color:#333;
		font-weight:500;
		position:relative;
		display:block;
	}
	.article_detail {
		margin:10px;
	}
	.article_detail > div {
		margin-top:10px;
	}
	.article_detail .title {
		font-size:16px;
		font-weight:500;
	}
	.article_detail .text {
		margin-top:5px;
		font-size:14px;
	}
	.swiper-pagination {
		bottom:18vw !important;
	}
	.swiper-button-next,.swiper-button-prev {
		color:#333;
	}
	.swiper-button-next:after,.swiper-button-prev:after {
	    font-size: 6vw;
	}
	.archive_btn {
		width:400px;
		margin:40px auto 0;
		text-align:center;
		font-size:18px;
	}
	.archive_btn a {
		padding:10px 0;
		border:1px solid #999;
		display:block;
		border-radius:30px;
	}
	
	
	
	/* -- campaign -- */
	#top_campaign {
		margin-top:50px;
	}
	.campaign-accordion-wrapper {
		width:1000px;
		margin:20px auto 0;
	}
	.campaign-item {
		margin-top:20px;
		overflow: hidden;
	}
	.campaign-title {
		margin: 0;
		padding: 15px 20px;
		cursor: pointer;
		position: relative;
		font-size: 18px;
		border:1px solid #f0f0f0;
		background:#f4fcff;
	}
	.campaign-title a.accordion-trigger {
		display: block;
		color: #333;
		text-decoration: none;
		padding-right: 20px;
	}
	/* アコーディオン開閉アイコン */
	.campaign-title a.accordion-trigger::after {
		content: '+';
		position: absolute;
		right: 10px;
		top: 50%;
		transform: translateY(-50%);
		font-size: 1.5em;
		transition: transform 0.3s ease;
		line-height: 1; /* アイコンの縦位置調整 */
	}
	.campaign-title.is-active a.accordion-trigger::after {
		content: '-'; /* 開いた時のアイコン */
		transform: translateY(-50%) rotate(0deg); /* 必要であれば回転をリセット */
	}
	.campaign-content {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.4s ease-out, padding 0.4s ease-out;
		background-color: #fff;
	}
	/* 開いた時のスタイル */
	.campaign-content.is-open {
		max-height: 5000px;
		padding:0 20px;
	}
	.campaign-content h2,
	.campaign-content h3 {
		font-size:18px;
		text-align:left;
		margin-top:20px;
	}
	.campaign-content p {
		margin-top:20px;
		font-size:16px;
	}
	.campaign-content ol {
		margin-top:20px;
		font-size:16px;
	}
	.campaign-content ol li {
		list-style-type:number;
		list-style-position:inside;
		margin-top:10px;
	}
	
	
	/* -- news -- */
	#top_news {
		margin-top:50px;
	}
	.news-accordion-wrapper {
		width:1000px;
		max-width:90%;
		margin:20px auto 0;
	}
	.news-item {
		margin-top:20px;
		overflow: hidden;
	}
	.news-title {
		margin: 0;
		padding: 15px 20px;
		cursor: pointer;
		position: relative;
		font-size: 18px;
		border:1px solid #f0f0f0;
		background:#f4fcff;
	}
	.news-title a.news-accordion-trigger {
		display: block;
		color: #333;
		text-decoration: none;
		padding-right: 20px;
	}
	/* アコーディオン開閉アイコン */
	.news-title a.news-accordion-trigger::after {
		content: '+';
		position: absolute;
		right: 10px;
		top: 50%;
		transform: translateY(-50%);
		font-size: 1.5em;
		transition: transform 0.3s ease;
		line-height: 1;
	}
	.news-title.is-active a.news-accordion-trigger::after {
		content: '-';
		transform: translateY(-50%) rotate(0deg);
	}
	.news-title span.date {
		display:block;
		font-size:14px;
		margin-bottom:5px;
		color:#666;
	}
	.news-content {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.4s ease-out, padding 0.4s ease-out;
		background-color: #fff;
	}
	/* 開いた時のスタイル */
	.news-content.is-open {
		max-height: 5000px;
		padding:0 20px;
	}
	.news-content h2,
	.news-content h3 {
		font-size:18px;
		text-align:left;
		margin-top:20px;
	}
	.news-content p {
		margin-top:20px;
		font-size:18px;
	}
	.news-content ol {
		margin-top:20px;
		font-size:16px;
	}
	.news-content ol li {
		list-style-type:number;
		list-style-position:inside;
		margin-top:10px;
	}
	
	
	
	/* -- エディタテキストコンテンツ -- */
	.top_contents_area {
		width:1000px;
		max-width:90%;
		padding-top:30px;
		margin:80px auto 0;
		border-top:1px solid #f0f0f0;
	}
	.top_contents_area h2 {
		font-size:24px;
		font-weight:700;
		margin-top:50px;
		text-align:center;
	}
	.top_contents_area h3 {
		font-size:21px;
		font-weight:700;
		margin-top:40px;
		padding:10px 20px;
		border:1px solid #d0d0d0;
		border-top:5px solid #0e81b0;
	}
	.top_contents_area h3 span {
		display:block;
		font-size:16px;
		color:#999;
	}
	.top_contents_area p {
		margin-top:30px;
		font-size:16px;
		line-height:1.8em;
		word-break:break-word;
	}
	.top_contents_area img {
		width:auto !important;
		max-width:80%;
		display:block;
		margin:20px auto;
	}
	.top_contents_area a {
		color:#0f82af;
		text-decoration:underline;
	}
	
	
	.calender {
		width:600px;
		margin:30px auto 0;
	}
	.calender .title {
		font-size:18px;
		text-align:center;
		font-weight:500;
	}
	.calender .title span {
		display:block;
		font-size:14px;
		color:#999;
	}
	.calender .iframe iframe {
		margin-top:10px;
		width:100%;
		display:block;
		overflow-x:hidden;
	}
	
}


/*--------------------------------------------------
**************************************************
  SP用
**************************************************
--------------------------------------------------*/
@media screen and (max-width: 767px) {
	
	
	/* -- h2 -- */
	section h2 {
		text-align:center;
		font-size:6vw;
		font-weight:700;
		color:#0c78a6;
	}
	section h2 span {
		display:block;
		font-size:4vw;
		color:#999;
	}
	
	
	/* -- main -- */
	#top_main {
		width:90%;
		margin:20px auto 0;
	}
	#top_main img {
		border-radius:10px;
	}
	#top_main .catch {
		text-align:center;
		margin-top:20px;
		font-size:4.5vw;
		font-weight:500;
	}
	
	
	/* -- articles -- */
	#top_articles {
		margin-top:50px;
		position:relative;
	}
	.latest-articles {
		width:90%;
		margin:20px auto 0;
	}
	.article_content {
		width:90%;
		margin:30px auto 0;
		padding-bottom:50px;
	}
	.article_content .thumbnail {
		width:75%;
		margin:20px auto 0;
	}
	.article_content .thumbnail img {
		width:auto;
		max-width:90%;
		height:auto;
		max-height:50vw;
		margin:auto;
		display:block;
	}
	.article_content .name a {
		text-align:center;
		font-size:4.5vw;
		color:#333;
		font-weight:500;
		position:relative;
		display:block;
	}
	.article_detail {
		margin:10px 10vw;
	}
	.article_detail > div {
		margin-top:10px;
	}
	.article_detail .title {
		font-size:3.6vw;
		font-weight:500;
	}
	.article_detail .text {
		margin-top:5px;
		font-size:3.4vw;
	}
	.swiper-pagination {
		bottom:18vw !important;
	}
	.swiper-button-next,.swiper-button-prev {
		color:#333;
	}
	.swiper-button-next:after,.swiper-button-prev:after {
	    font-size: 6vw;
	}
	.archive_btn {
		width:75%;
		margin:0 auto;
		text-align:center;
		font-size:4vw;
	}
	.archive_btn a {
		padding:10px 0;
		border:1px solid #999;
		display:block;
		border-radius:30px;
	}
	
	
	
	/* -- campaign -- */
	#top_campaign {
		margin-top:50px;
	}
	.campaign-accordion-wrapper {
		width:90%;
		margin:20px auto 0;
	}
	.campaign-item {
		margin-top:20px;
		overflow: hidden;
	}
	.campaign-title {
		margin: 0;
		padding: 15px 20px;
		cursor: pointer;
		position: relative;
		font-size: 4vw;
		border:1px solid #f0f0f0;
		background:#f4fcff;
	}
	.campaign-title a.accordion-trigger {
		display: block;
		color: #333;
		text-decoration: none;
		padding-right: 20px;
	}
	/* アコーディオン開閉アイコン */
	.campaign-title a.accordion-trigger::after {
		content: '+';
		position: absolute;
		right: 10px;
		top: 50%;
		transform: translateY(-50%);
		font-size: 1.5em;
		transition: transform 0.3s ease;
		line-height: 1; /* アイコンの縦位置調整 */
	}
	.campaign-title.is-active a.accordion-trigger::after {
		content: '-'; /* 開いた時のアイコン */
		transform: translateY(-50%) rotate(0deg); /* 必要であれば回転をリセット */
	}
	.campaign-content {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.4s ease-out, padding 0.4s ease-out;
		background-color: #fff;
	}
	/* 開いた時のスタイル */
	.campaign-content.is-open {
		max-height: 2000px;
		padding:0 4vw;
	}
	.campaign-content h2,
	.campaign-content h3 {
		font-size:4vw;
		text-align:left;
		margin-top:20px;
	}
	.campaign-content p {
		margin-top:10px;
		font-size:3.6vw;
	}
	.campaign-content ol {
		margin-top:10px;
		font-size:3.6vw;
	}
	.campaign-content ol li {
		list-style-type:number;
		list-style-position:inside;
		margin-top:10px;
	}
	
	
	/* -- news -- */
	#top_news {
		margin-top:50px;
	}
	.news-accordion-wrapper {
		width:90%;
		margin:20px auto 0;
	}
	.news-item {
		margin-top:20px;
		overflow: hidden;
	}
	.news-title {
		margin: 0;
		padding: 15px 20px;
		cursor: pointer;
		position: relative;
		font-size: 4vw;
		border:1px solid #f0f0f0;
		background:#f4fcff;
	}
	.news-title a.news-accordion-trigger {
		display: block;
		color: #333;
		text-decoration: none;
		padding-right: 20px;
	}
	/* アコーディオン開閉アイコン */
	.news-title a.news-accordion-trigger::after {
		content: '+';
		position: absolute;
		right: 10px;
		top: 50%;
		transform: translateY(-50%);
		font-size: 1.5em;
		transition: transform 0.3s ease;
		line-height: 1;
	}
	.news-title.is-active a.news-accordion-trigger::after {
		content: '-';
		transform: translateY(-50%) rotate(0deg);
	}
	.news-title span.date {
		display:block;
		font-size:3vw;
		margin-bottom:5px;
		color:#666;
	}
	.news-content {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.4s ease-out, padding 0.4s ease-out;
		background-color: #fff;
	}
	/* 開いた時のスタイル */
	.news-content.is-open {
		max-height: 2000px;
		padding:0 4vw;
	}
	.news-content h2,
	.news-content h3 {
		font-size:4vw;
		text-align:left;
		margin-top:20px;
	}
	.news-content p {
		margin-top:10px;
		font-size:3.6vw;
	}
	.news-content ol {
		margin-top:10px;
		font-size:3.6vw;
	}
	.news-content ol li {
		list-style-type:number;
		list-style-position:inside;
		margin-top:10px;
	}
	
	
	
	/* -- エディタテキストコンテンツ -- */
	.top_contents_area {
		width:90%;
		margin:50px auto 0;
		border-top:1px solid #f0f0f0;
	}
	.top_contents_area h2 {
		font-size:5.5vw;
		font-weight:700;
		margin-top:50px;
		text-align:center;
	}
	.top_contents_area h3 {
		font-size:5vw;
		font-weight:700;
		margin-top:40px;
		padding-left:15px;
		border-left:5px solid #0e81b0;
	}
	.top_contents_area h3 span {
		display:block;
		font-size:3.6vw;
		color:#999;
	}
	.top_contents_area p {
		margin-top:20px;
		font-size:3.8vw;
		line-height:1.8em;
		word-break:break-word;
	}
	.top_contents_area img {
		width:auto !important;
		max-width:80%;
		display:block;
		margin:20px auto;
	}
	.top_contents_area a {
		color:#0f82af;
		text-decoration:underline;
	}
	
	
	.calender {
		width:90%;
		margin:30px auto 0;
	}
	.calender .title {
		font-size:4.5vw;
		text-align:center;
	}
	.calender .title span {
		display:block;
		font-size:3.5vw;
		color:#999;
	}
	.calender .iframe iframe {
		margin-top:10px;
		width:100%;
		display:block;
		overflow-x:hidden;
	}
	
	
	

}/* End SP */
