@charset "utf-8";

/* ------------------------------
 ブログ一覧（PC）
------------------------------ */
.postList {
	border-top: 1px dotted #b0bac6;
}
.postList li {
	padding: 20px 0;
	border-bottom: 1px dotted #b0bac6;
}
.postList li a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}
.postList li a .postText {
	display: flex;
	flex-wrap: wrap;
	row-gap: 10px;
}
.postList li a .postText .title {
	width: 100%;
	margin-bottom: 5px;
	font-size: 2rem;
	line-height: 1.2;
	font-weight: bold;
}
.postList li a .postText p:not(.date):not(.tag):not(.title) {
    display: -webkit-box;
	overflow: hidden;
	position: relative;
	text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.postList .tag + .tag {
	margin-left: 10px;
}
/* ページ切り替え */
.postList + .switchPage {
	margin-top: 30px;
}
.cms_block + .switchPage {
	margin-top: 0;
	padding-top: 30px;
	border-top: 1px dotted #b0bac6;
}
.switchPage ul {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.switchPage ul li {
	width: calc(100% / 3);
}
.switchPage ul li a {
	display: flex;
	align-items: center;
	position: relative;
	width: 100%;
	line-height: 1;
	font-weight: 600;
}
/* 古い記事 */
.switchPage ul li.prev a {
	justify-content: flex-end;
}
/* 一覧に戻る */
.switchPage ul li.list a {
	justify-content: center;
}
/* 新しい記事アイコン */
.switchPage ul li.next a::before,
.switchPage ul li.prev a::after,
.switchPage ul li.list a::after {
	content: "";
	display: block;
	width: 26px;
	height: 15px;
	margin-top: -3px;
	background: url(../img/icon_arrow.svg) no-repeat right 0 / 21px 15px;
	transform: scale(-1, 1);
}
/* 古い記事アイコン */
.switchPage ul li.prev a::after {
	transform: none;
}
/* 一覧に戻るアイコン */
.switchPage ul li.list a::after {
	width: 15px;
	margin: -1px 0 0 5px;
	background: url(../img/icon_dot.svg) no-repeat center / cover;
	transform: none;
}
.contents:has(.pageLink) .mainContents,
.contents:has(.pageLink) .sideContents {
	padding-top: 0;
}
.dateBox + .cms_block .pageLink {
	margin-top: 73px;
}
@media print, screen and (min-width: 768px) {
	.postList li a .postImg {
		width: 254px;
	}
	.postList li a .postText {
		width: 542px;
	}
}
/* ----------------------
 ブログ一覧（SP）
---------------------- */
@media screen and (max-width: 767px) {
	.postList li {
		padding: 20px 0 13px;
	}
	.postList li a {
		flex-direction: column;
		align-items: flex-start;
	}
	.postList li a .postImg {
		margin-bottom: 15px;
	}
	.postList li a .postText {
		width: 100%;
	}
	.postList li a .postText .title {
		margin: 0;
		font-size: 2rem;
	}
	.postList li a .postText p:not(.date):not(.tag):not(.title) {
		-webkit-line-clamp: 3;
	}
	/* ページ切り替え */
	.switchPage ul li {
		display: flex;
	}
	.switchPage ul li a {
		flex-direction: column;
		font-size: 1.6rem;
	}
	/* 新しい記事 */
	.switchPage ul li.next a {
		align-items: flex-start;
	}
	.switchPage ul li.next a::before {
		margin-top: 0;
		margin-bottom: 10px;
	}
	/* 古い記事 */
	.switchPage ul li.prev a {
		flex-direction: column-reverse;
		align-items: flex-end;
	}
	.switchPage ul li.prev a::after {
		margin-top: 0;
		margin-bottom: 10px;
	}
	/* 一覧に戻る */
	.switchPage ul li.list a {
		flex-direction: column-reverse;
		align-items: center;
	}
	.switchPage ul li.list a::after {
		margin: 0;
		margin-bottom: 10px;
	}
	.contents:has(.pageLink) .mainContents,
	.contents:has(.pageLink) .sideContents {
		padding-top: 0;
	}
	.dateBox + .cms_block .pageLink {
		margin-top: 60px;
	}
}

/* ------------------------------
 ブログサイドナビ（PC）
------------------------------ */
/* 見出し */
.localnavi .title:not(:has(a)),
.localnavi .title a {
	display: flex;
	text-align: center;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 68px;
	background: url(../img/linedot_bg_black.svg) repeat 0 0 / 30px 30px;
	color: #fff;
	font-size: 1.6rem;
	line-height: 1;
	font-weight: 600;
}
/* 下層ページリンク */
.localnavi ul > li,
.localnavi ul > li > p {
	position: relative;
}
.localnavi ul > li > p {
	font-weight: bold;
}
.localnavi ul li a {
	display: block;
	position: relative;
	width: 100%;
	padding: 14px 15px;
	background-color: #ebeef1;
	font-size: 1.5rem;
	line-height: 1.5;
	font-weight: bold;
	transition: .3s ease-in-out;
}
.localnavi ul > li > p > a {
	padding-right: 40px;
	transition: .3s ease-in-out;
}
/* ブログ最新の記事リンク */
.localnavi.latestList ul > li > a {
	padding: 15px 15px 15px 30px;
}
/* ブログアーカイブ月リンク */
.localnavi ul > li > ul.pulldown > li > p > a {
	color: var(--main-font-color);
	background-color: #f7f8f9;
}
/* プルダウン */
.localnavi ul > li > ul.pulldown {
	display: none;
	position: relative;
}
.localnavi ul > li > ul.pulldown > li > a {
	background-color: #f7f8f9;
}
.localnavi ul > li > ul.pulldown > li > ul.pulldown > li > a {
	padding: 10px 15px 10px 30px;
	font-weight: 500;
}
.localnavi ul > li > ul.pulldown > li > ul.pulldown > li:last-child > a {
	padding-bottom: 20px;
}
/* 第5階層 */
.localnavi ul > li > ul.pulldown > li > ul {
	position: relative;
}
.localnavi ul > li > ul.pulldown > li > ul > li > a {
	padding: 10px 15px 10px 30px;
	color: var(--main-font-color);
}
.localnavi ul > li > ul.pulldown > li > ul > li > a:hover::before {
	color: #fff;
	background-color: #fff;
}
.localnavi ul > li > ul.pulldown > li.on > ul > li:not(.on) > a {
	background-color: #f7f8f9;
	color: var(--main-font-color);
}
/* 点 */
.localnavi.latestList ul > li > a::before,
.localnavi ul > li > ul.pulldown > li > a::before {
	content: "";
	position: absolute;
	top: calc(20px + 0.5em);
	bottom: 0;
	left: 15px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: var(--smhd-color);
	transition: .3s ease-in-out;
}
.localnavi.latestList ul > li > a::before {
	top: calc(15px + 0.5em);
}
.localnavi ul > li > ul.pulldown > li > ul.pulldown > li a::before {
	top: calc(10px + 0.5em);
	left: 15px;
	background-color: var(--smhd-color);
}
.localnavi ul > li > ul.pulldown > li > ul.pulldown > li a:hover::before {
	background-color: #fff;
}
/* 線 */
.localnavi > ul > li > p,
.localnavi ul > li > ul.pulldown,
.localnavi.latestList ul > li:not(:last-child),
.localnavi.categoryList ul > li:not(:last-child) {
	border-bottom: 1px solid #c4cbd4;
}
.localnavi ul > li > ul.pulldown > li:not(:last-child)::after {
	content: "";
	display: block;
	opacity: 1;
	position: absolute;
	bottom: 0;
	left: 15px;
	right: 15px;
	width: auto;
	height: 0;
	margin: auto;
	border-bottom: 1px dotted #b0bac6;
	background: none;
}
.localnavi ul > li > ul.pulldown > li:has(ul) > ul::before {
	content: "";
	display: block;
	opacity: 1;
	position: absolute;
	top: 0;
	left: 15px;
	right: 15px;
	width: auto;
	height: 0;
	margin: auto;
	border-bottom: 1px dotted #b0bac6;
	background: none;
}
.localnavi ul > li > ul.pulldown > li > ul > li:not(:last-child)::after {
	content: "";
	display: block;
	opacity: 1;
	position: absolute;
	bottom: 0;
	left: 15px;
	right: 15px;
	width: auto;
	height: 0;
	margin: auto;
	border-bottom: 1px dotted #b0bac6;
	background: none;
}
/* ブログアーカイブ月メニューを開くと線が消える */
.localnavi ul > li > ul.pulldown > li > p.is-open a::after,
.localnavi ul > li > ul.pulldown > li > ul.pulldown > li:not(:last-child) a::after {
	content: none;
}
.localnavi ul > li > ul.pulldown > li > ul.pulldown {
	border-bottom: none;
}
/* トグルボタン */
.localnavi ul > li > p .btn-submenu-toggle,
.localnavi ul > li > p .btn_opener_month {
	display: block !important;
	position: absolute;
	top: 3px;
	right: 0;
	width: 45px;
	height: 45px;
	margin: auto;
	border: 15px solid #ebeef1;
	border-radius: 50%;
	background: none;
	background-color: var(--blue-color);
	cursor: pointer;
	transition: .3s ease-in-out;
	-webkit-background-clip: padding-box;
	background-clip: padding-box;
}
.localnavi ul > li > ul.pulldown > li > p .btn-submenu-toggle,
.localnavi ul > li > ul.pulldown > li > p .btn_opener_month {
	border: 15px solid #f7f8f9;
}
.localnavi ul > li > p .btn-submenu-toggle::before,
.localnavi ul > li > p .btn_opener_month::before,
.localnavi ul > li > p .btn-submenu-toggle::after,
.localnavi ul > li > p .btn_opener_month::after {
	content: "";
	display: block;
	opacity: 1;
	position: absolute;
	background-color: #fff;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	margin: auto;
	transition: .3s ease-in-out;
}
.localnavi ul > li > p .btn-submenu-toggle::before,
.localnavi ul > li > p .btn_opener_month::before {
	width: 5px;
	height: 1px;
}
.localnavi ul > li > p .btn-submenu-toggle::after,
.localnavi ul > li > p .btn_opener_month::after {
	width: 1px;
	height: 5px;
}
.localnavi ul > li > p.is-open .btn-submenu-toggle::after,
.localnavi ul > li > p.is-open .btn_opener_month::after {
	opacity: 0;
}
/* 現在表示しているページ */
.localnavi ul > li.on,
.localnavi ul > li.on > p > .btn-submenu-toggle::before,
.localnavi ul > li.on > p > .btn_opener_month::before,
.localnavi ul > li.on > p > .btn-submenu-toggle::after,
.localnavi ul > li.on > p > .btn_opener_month::after {
	background-color: var(--bule-color);
}
.localnavi ul > li.on p a,
.localnavi ul > li > ul.pulldown > li.on a {
	color: #fff;
}
.localnavi ul > li.on > p > .btn-submenu-toggle,
.localnavi ul > li.on > p > .btn_opener_month {
	border: 15px solid var(--smhd-color);
	background-color: #fff;
}
.localnavi ul > li > ul.pulldown > li.on a::before {
	background-color: var(--bule-color);
}
.localnavi ul > li.on > p:not(:has(.btn-submenu-toggle)) > a::before {
	background-color: #fff;
}
.localnavi ul > li.on > p:not(:has(.btn-submenu-toggle)) > a::after {
	border-color: var(--gray-color);
}
.localnavi ul > li > ul.pulldown > li:not(.on) > ul > li.on > a {
	color: #fff;
}
/* マウスオーバー */
.localnavi ul li a:hover {
	opacity: 1;
}
.localnavi ul > li:not(.on) > p:hover > a,
.localnavi ul > li:not(.on) > a:hover,
.localnavi ul > li:not(.on) > p:hover .btn-submenu-toggle::before,
.localnavi ul > li:not(.on) > p:hover .btn_opener_month::before,
.localnavi ul > li:not(.on) > p:hover .btn-submenu-toggle::after,
.localnavi ul > li:not(.on) > p:hover .btn_opener_month::after {
	background-color: var(--smhd-color);
	color: #fff;
}
.localnavi ul > li:not(.on) > p:hover .btn-submenu-toggle,
.localnavi ul > li:not(.on) > p:hover .btn_opener_month {
	border: 15px solid var(--smhd-color);
	background-color: #fff;
}
.localnavi.latestList ul > li > a:hover::before,
.localnavi ul > li > ul.pulldown > li a:hover::before {
	background-color:  #fff
}
.localnavi ul > li:not(.on) > p:not(:has(.btn-submenu-toggle)) > a:hover::before {
	background-color:  var(--smhd-color);
}
.localnavi ul > li:not(.on) > p:not(:has(.btn-submenu-toggle)) > a:hover::after {
	border-color: var(--smhd-color);
}
@media print, screen and (min-width: 768px) {
}
/* ------------------------------
 ブログサイドナビ（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* 見出し */
	.localnavi .title:not(:has(a)),
	.localnavi .title a {
		background: url(../img/linedot_bg_black_sp.svg) repeat 0 0 / 24px 24px;
	}
	/* 下層ページリンク */
	.localnavi ul li a {
		width: 100%;
		font-size: 1.6rem;
		padding: 13px 5%;
	}
	.localnavi ul > li > p > a {
		padding-right: calc(5% + 20px);
	}
	.localnavi ul > li > p .btn-submenu-toggle, .localnavi ul > li > p .btn_opener_month {
		right: 5px;
	}
	/* プルダウン */
	.localnavi ul > li > ul.pulldown > li > a {
		padding: 20px 5% 20px calc(5% + 15px);
	}
	.localnavi ul > li > ul.pulldown > li > ul.pulldown > li > a {
		padding: 10px 5% 10px calc(5% + 15px);
	}
	/* 点 */
	.localnavi > ul > li > a::before,
	.localnavi ul > li > ul.pulldown > li > a::before {
		top: calc(20px + .5em);
		left: 5%;
	}
	.localnavi ul > li > ul.pulldown > li > ul.pulldown > li a::before {
		left: 5%;
	}
	/* 線 */
	.localnavi ul:not(.pulldown) > li:not(:last-child)::after {
		width: 90%;
	}
	/* トグルボタン */
	.localnavi ul > li > ul.pulldown > li > p .btn-submenu-toggle,
	.localnavi ul > li > ul.pulldown > li > p .btn_opener_month {
		right: 5px !important;
	}
}

/* ------------------------------
 ブログ詳細ページ（PC）
------------------------------ */
@media print, screen and (min-width: 768px) {
}
/* ------------------------------
 ブログ詳細ページ（SP）
------------------------------ */
@media screen and (max-width: 767px) {
}

/* ------------------------------
 夢への扉（PC）
------------------------------ */
.dreamIntro {
	display: flex;
	align-items: center;
}
.dreamIntro h2 {
	margin-bottom: 10px;
}
.dream202502Box.bgBox .shadow img {
	filter: drop-shadow(5px 7px 7px rgba(0,0,0,.3));
}
.dream-Q,
.dream-A {
	position: relative;
	padding-left: 55px;
}
.dream-Q::before,
.dream-A::before {
	position: absolute;
	border-radius: 50%;
	padding: 1px 10px;
	font-family: "Jost", sans-serif;
	font-size: 1.7rem;
	font-weight: 600;
	left: 12px;
}
.cms_text.dream-Q {
	margin-bottom: 20px;
	padding-top: 15px;
	padding-bottom: 15px;
	background: url(../img/linedot_bg.svg) repeat 0 0 / 30px 30px;
	font-weight: bold;
}
.dream-Q::before {
	content: "Q";
	background-color: #fff;
	border: 1px solid #4a52ff;
	color:#4a52ff;
	top: 11px;
}
.dream-A::before {
	content: "A";
	background-color: #4a52ff;
	color:#fff;
	top: -3px;
}
@media print, screen and (min-width: 768px) {
	.dreamIntro {
		column-gap: 25px;
		margin-bottom: 40px;
	}
	.dreamIntro img {
		width: 108px;
	}
	.dreamIntro div {
		width: 697px;
	}
	.mainContents .dream202502Box .w254.cms_fl + .w254.cms_fl {
		margin-left: 10px;
	}
	.dream202502Box .w254.cms_fl .cms_caption_b {
		margin-left: 1em;
	}
	.dream202502Box .w254.cms_fl + .w254.cms_fl .cms_caption_b {
		margin-left: 0;
		text-align: center;
	}
	.cms_block.bgBox.presidentBox {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.cms_block.bgBox.presidentBox::after {
		content: none;
	}
	.presidentBox .cms_image.w100 {
		margin-bottom: 0;
	}
}
/* ------------------------------
 夢への扉（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.dreamIntro {
		column-gap: 15px;
		margin-bottom: 30px;
	}
	.dreamIntro img {
		width: 102px;
	}
	.dreamIntro h2 {
		margin-bottom: 5px;
		line-height: 1.2;
	}
	.dreamIntro p {
		font-size: 1.3rem;
		line-height: 1.3;
	}
	.mainContents .dream202502Box .w254.cms_fl {
		float: left !important;
		width: 50% !important;
	}
	.presidentBox .cms_image.w100 {
		float: left;
		width: 70px;
		margin: 0 10px 0 0;
	}
	.dream-Q {
		background: url(../img/linedot_bg.svg) repeat 0 0 / 24px 24px;
	}
	.dream-A .w1-4 {
		margin-top: 10px;
	}
	.cms_image.w1-5.pc_mt20.cms_fr {
		float: right !important;
		width: 100px;
	}
	.cms_image.w1-5.pc_mt20.cms_fr::after {
		content: "";
		display: block;
		clear: both;
	}
}