/* Figma: 投稿詳細（node 4725:1453） */

.post-single {
	padding-top: 48px;

	padding-bottom: 120px;

	box-sizing: border-box;
}

.post-single__wrap {
	box-sizing: border-box;
}

.post-single__grid {
	display: flex;

	flex-direction: row;

	align-items: flex-start;

	justify-content: flex-start;

	gap: 49px;

	box-sizing: border-box;
}

.post-single__main {
	flex: 1 1 0;

	min-width: 0;

	display: flex;

	flex-direction: column;

	align-items: stretch;

	gap: 48px;

	box-sizing: border-box;
}

.post-single__intro {
	display: flex;

	flex-direction: column;

	align-items: stretch;

	gap: 32px;

	width: 100%;

	box-sizing: border-box;
}

.post-single__header {
	display: flex;

	flex-direction: column;

	align-items: flex-start;

	gap: 16px;

	margin: 0;

	padding: 0;
}

.post-single__title {
	margin: 0;

	font-weight: 700;

	font-size: 24px;

	line-height: 1.5;

	color: #000;
}

.post-single__date {
	margin: 0;
	font-family: "Inter", sans-serif;
	font-weight: 500;

	font-size: 14px;

	line-height: normal;

	color: #888;
}

.post-single__featured {
	margin: 0;

	padding: 0;

	border-radius: 8px;

	overflow: hidden;

	width: 100%;
}

.post-single__featured--placeholder {
	aspect-ratio: 845 / 477;

	background-color: #ddd;
}

.post-single__featured-img {
	display: block;

	width: 100%;

	height: auto;
}

.post-single__toc {
	display: flex;

	flex-direction: row;

	align-items: center;

	justify-content: flex-start;

	gap: 32px;

	width: 100%;

	padding: 24px 32px;

	background-color: #f6f6f6;

	border-radius: 8px;

	box-sizing: border-box;
}

.post-single__toc-label {
	margin: 0;

	flex-shrink: 0;

	font-weight: 500;

	font-size: 14px;

	line-height: 1.5;

	color: #333;
}

.post-single__toc-rule {
	flex-shrink: 0;

	width: 1px;

	height: 88px;

	background-color: #ddd;
}

.post-single__toc-body {
	flex: 1 1 auto;

	min-width: 0;

	font-size: 14px;

	line-height: 2;

	color: #000;
}

.post-single__toc-body p,
.post-single__toc-item {
	margin: 0 0 0.25em;

	font-size: 14px;

	line-height: 2;

	color: #000;
}

.post-single__toc-body p:last-child {
	margin-bottom: 0;
}

/* 本文（エディタ） */
.post-single__content {
	font-size: 14px;

	line-height: 2;

	color: #000;

	width: 100%;
}

.post-single__content > *:first-child {
	margin-top: 0;
}

.post-single__content > *:last-child {
	margin-bottom: 0;
}

.post-single__content p {
	margin: 0 0 1.5em;
}

.post-single__content h2 {
	position: relative;

	display: flex;

	flex-direction: row;

	align-items: center;

	gap: 11px;

	margin: 48px 0 8px;
	
	padding: 0 16px 0 0;

	background-color: #f6f6f6;

	border-radius: 4px;

	overflow: hidden;

	font-weight: 500;

	font-size: 20px;

	line-height: 1.6;

	color: #333;
}

.post-single__content h2::before {
	content: '';

	flex-shrink: 0;

	width: 18px;

	align-self: stretch;

	min-height: 42px;

	background-color: #333;
}

.post-single__content h2:first-of-type {
	margin-top: 0;
}

.post-single__content h3 {
	margin: 16px 0 4px;

	padding-bottom: 4px;

	border-bottom: 1px solid #ddd;

	font-weight: 500;

	font-size: 16px;

	line-height: 1.5;

	color: #000;
}

.post-single__content img,
.post-single__content figure {
	max-width: 100%;

	height: auto;
}

.post-single__content figure {
	margin: 1.5em 0;
}

.post-single__content ul,
.post-single__content ol {
	margin: 0 0 1.5em;

	padding-left: 1.5em;
}

/* 著者 */
.post-single__author {
	width: 100%;

	padding: 24px;

	background-color: #f6f6f6;

	border-radius: 8px;

	box-sizing: border-box;
}

.post-single__author-row {
	display: flex;

	flex-direction: row;

	align-items: center;

	gap: 16px;

	width: 100%;
	padding-bottom: 24px;
}

.post-single__author-avatar {
	flex-shrink: 0;

	width: 80px;

	height: 80px;

	border-radius: 50%;

	overflow: hidden;
}

.post-single__author-avatar-img {
	display: block;

	width: 80px;

	height: 80px;

	object-fit: cover;
}

.post-single__author-meta {
	flex: 1 1 auto;

	min-width: 0;

	display: flex;

	flex-direction: column;

	align-items: flex-start;

	gap: 8px;
}

.post-single__author-name-row {
	display: flex;

	flex-direction: row;

	align-items: center;

	flex-wrap: wrap;

	gap: 8px;
}

.post-single__author-name {
	font-weight: 500;

	font-size: 18px;

	line-height: 1.4;

	color: #000;
}

.post-single__author-badge {
	display: inline-flex;

	align-items: center;

	padding: 3px 8px 4px;

	background-color: #333;

	border-radius: 32px;

	font-weight: 500;

	font-size: 11px;

	line-height: 1.5;

	color: #fff;
}

.post-single__author-role {
	margin: 0;

	font-weight: 500;

	font-size: 12px;

	line-height: 1.4;

	color: #888;
}

.post-single__author-rule {
	width: 100%;

	height: 1px;

	margin: 0;

	background-color: #ddd;

	border: 0;
}

.post-single__author-bio {
	margin: 0;

	font-weight: 400;

	font-size: 14px;

	line-height: 1.6;

	color: #000;
	padding-top: 24px;
}

.post-single__divider {
	width: 100%;

	height: 1px;

	background-color: #ddd;
}

/* 資料DL CTA */
.post-single__cta {
	width: 100%;

	background-color: #f6f6f6;

	border-radius: 16px;

	overflow: hidden;

	padding-bottom: 32px;

	box-sizing: border-box;
}

.post-single__cta-head {
	width: 100%;

	padding: 16px;

	background-color: #333;

	box-sizing: border-box;
}

.post-single__cta-title {
	margin: 0;

	font-weight: 700;

	font-size: 20px;

	line-height: 1.4;

	color: #fff;

	text-align: center;
}

.post-single__cta-body {
	display: flex;

	flex-direction: row;

	align-items: flex-start;

	gap: 24px;

	padding: 0 32px;

	margin-top: 32px;

	box-sizing: border-box;
}

.post-single__cta-visual {
	/* flex: 1 1 0; */
	flex: 0 0 auto;

	min-width: 0;

	/* aspect-ratio: 456 / 242; */

	max-width: 50%;

	/* background: linear-gradient(145deg, #e8e8e8, #d0d0d0); */

	/* border-radius: 8px; */
/* 
	display: flex;

	align-items: center;

	justify-content: center;

	position: relative;

	box-sizing: border-box; */
}

.post-single__cta-visual img{
	width: 100%;
	height: auto;
}


.post-single__cta-visual-label {
	font-weight: 700;

	font-size: 14px;

	color: #666;

	text-align: center;

	padding: 16px;
}

.post-single__cta-right{
	flex: 1 1 0;

	min-width: 0;

}

.post-single__cta-form {

	display: flex;

	flex-direction: column;

	align-items: stretch;

	gap: 24px;

	box-sizing: border-box;
}
@media screen and (max-width: 767px) {

	.post-single__cta-form {
		gap: 12px;	
	}
}

.post-single__field {
	display: flex;

	flex-direction: column;

	align-items: stretch;

	gap: 6px;

	width: 100%;

	box-sizing: border-box;
}

.post-single__field-row {
	display: flex;

	flex-direction: row;

	align-items: flex-start;

	gap: 16px;

	width: 100%;

	box-sizing: border-box;
}

.post-single__field-row .post-single__field {
	flex: 1 1 0;

	min-width: 0;
}

.post-single__field-label-row {
	display: flex;

	flex-direction: row;

	align-items: center;

	gap: 4px;

	flex-wrap: wrap;
}

.post-single__field-label {
	font-weight: 300;

	font-size: 14px;

	line-height: normal;

	color: #000;

	letter-spacing: 0.42px;
}

.post-single__field-req {
	display: inline-flex;

	align-items: center;

	padding: 2px 4px 3px;

	background-color: #333;

	border-radius: 4px;

	font-weight: 300;

	font-size: 12px;

	line-height: normal;

	color: #fff;

	letter-spacing: 0.36px;
}

.post-single__input,
.post-single__select {
	width: 100%;

	height: 41px;

	padding: 0 11px;

	border: 1px solid #eee;

	border-radius: 6px;

	background-color: #fff;

	font-size: 14px;

	color: #333;

	box-sizing: border-box;

	letter-spacing: 0.42px;
}

.post-single__input::placeholder {
	color: #aaa;
}

.post-single__select-wrap {
	position: relative;

	width: 100%;
}

.post-single__select {
	appearance: none;

	padding-right: 36px;

	cursor: pointer;

	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6 4l4 4-4 4' stroke='%23333' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

	background-repeat: no-repeat;

	background-position: right 11px center;
}

.post-single__check {
	display: flex;

	flex-direction: row;

	align-items: flex-start;

	gap: 8px;

	cursor: pointer;

	font-weight: 300;

	font-size: 11px;

	line-height: normal;

	color: #000;

	letter-spacing: 0.33px;
}

.post-single__checkbox {
	flex-shrink: 0;

	width: 20px;

	height: 20px;

	margin: 0;

	border: 1px solid #eee;

	border-radius: 6px;

	accent-color: #333;
}

.post-single__check-text a {
	color: #333;

	text-decoration: underline;
}

.post-single__submit {
	position: relative;

	display: flex;

	flex-direction: row;

	align-items: center;

	justify-content: center;

	width: 100%;

	height: 56px;

	padding: 0 48px 0 24px;

	border: none;

	border-radius: 40px;

	background-color: #fdd000;

	box-shadow: 0 0 16px rgba(0, 0, 0, 0.15);

	font-weight: 700;

	font-size: 14px;

	line-height: normal;

	color: #333;

	cursor: pointer;

	box-sizing: border-box;

	transition: opacity 0.2s ease;
}

.post-single__submit:hover {
	opacity: 0.92;
}

.post-single__submit-chev {
	position: absolute;

	right: 16px;

	top: 50%;

	width: 7px;

	height: 7px;

	margin-top: -4px;

	border-right: 2px solid #333;

	border-bottom: 2px solid #333;

	transform: rotate(-45deg);
}

/* 関連記事 */
.post-single__related {
	display: flex;

	flex-direction: column;

	align-items: center;

	gap: 56px;

	width: 100%;

	box-sizing: border-box;
}

.post-single__related-head {
	display: flex;

	flex-direction: column;

	align-items: center;

	gap: 24px;

	max-width: 360px;

	margin: 0 auto;
}

.post-single__related-title {
	margin: 0;

	font-weight: 700;

	font-size: 36px;

	line-height: normal;

	color: #000;

	text-align: center;
}

.post-single__related-line {
	display: block;

	width: 80px;

	height: 4px;

	background-color: #333;
}

.post-single__related-grid {
	display: flex;

	flex-direction: row;

	flex-wrap: wrap;

	align-items: stretch;

	justify-content: flex-start;

	gap: 40px;

	width: 100%;

	box-sizing: border-box;
}

.post-single__related-card {
	display: flex;

	flex-direction: column;

	align-items: stretch;

	width: calc(50% - 20px);

	max-width: 374px;

	min-height: 387px;

	padding-bottom: 32px;

	background-color: #fff;

	border: 1px solid #eee;

	border-radius: 16px;

	overflow: hidden;

	text-decoration: none;

	color: inherit;

	box-sizing: border-box;

	transition: opacity 0.2s ease;
}

.post-single__related-card:hover {
	opacity: 0.9;
}

.post-single__related-thumb {
	position: relative;

	width: 100%;

	aspect-ratio: 373 / 202;

	background-color: #eee;

	border-radius: 8px 8px 0 0;

	overflow: hidden;

	flex-shrink: 0;
}

.post-single__related-thumb--empty {
	background-color: #eee;
}

.post-single__related-img {
	display: block;

	width: 100%;

	/* height: 100%; */
	height: 174px;
	object-fit: cover;
}

.post-single__related-body {
	display: flex;

	flex-direction: column;

	align-items: flex-start;

	gap: 16px;

	padding: 24px 24px 0;

	box-sizing: border-box;
}

.post-single__related-date {
	font-weight: 500;

	font-size: 14px;

	line-height: normal;

	color: #888;
}

.post-single__related-card-title {
	margin: 0;

	font-weight: 700;

	font-size: 18px;

	line-height: 1.5;

	color: #333;
}

/* サイドバー */
.post-single__sidebar {
	flex-shrink: 0;

	/* width: 463px; */
	width: 360px;

	display: flex;

	flex-direction: column;

	align-items: stretch;

	gap: 40px;

	box-sizing: border-box;
}

.post-single__widget {
	display: flex;

	flex-direction: column;

	align-items: flex-start;

	gap: 16px;

	width: 100%;

	box-sizing: border-box;
}

.post-single__widget-title {
	display: flex;

	flex-direction: row;

	align-items: center;

	justify-content: flex-start;

	gap: 16px;

	margin: 0;

	font-weight: 700;

	font-size: 18px;

	line-height: normal;

	color: #000;
}

.post-single__widget-accent {
	flex-shrink: 0;

	width: 16px;

	height: 4px;

	border-radius: 16px;
}

.post-single__widget-accent--yellow {
	/* background-color: #fdd000; */
	background-color: #333;
}

.post-single__widget-accent--dark {
	background-color: #333;
}

.post-single__widget-box {
	width: 100%;

	padding: 24px;

	background-color: #f8f8f8;

	border-radius: 16px;

	box-sizing: border-box;
}

.post-single__side-list {
	list-style: none;

	margin: 0;

	padding: 0;

	display: flex;

	flex-direction: column;

	gap: 0;

	width: 100%;
}

.post-single__side-item {
	margin: 0;

	padding: 16px 0;

	border-top: 1px solid #ddd;
}

.post-single__side-item:first-child {
	padding-top: 0;

	border-top: none;
}

.post-single__side-link {
	display: flex;

	flex-direction: row;

	align-items: flex-start;

	gap: 24px;

	width: 100%;

	text-decoration: none;

	color: inherit;

	box-sizing: border-box;
}

.post-single__side-thumb {
	flex-shrink: 0;

	width: 144px;
	/* width: 100px; */

	height: 81px;
	/* height: 54px; */

	border-radius: 8px;

	overflow: hidden;

	background-color: #ddd;
}

@media screen and (max-width: 767px) {
	.post-single__side-thumb {
		width: 100px;
		height: 54px;
	}
}

.post-single__side-thumb--empty {
	background-color: #ddd;
}

.post-single__side-img {
	display: block;

	width: 100%;

	height: 100%;

	object-fit: cover;
}

.post-single__side-text {
	flex: 1 1 auto;

	min-width: 0;

	display: flex;

	flex-direction: column;

	align-items: flex-start;

	gap: 8px;
}

.post-single__side-meta {
	display: flex;

	flex-direction: row;

	align-items: center;

	flex-wrap: wrap;

	gap: 8px;
}

.post-single__side-meta time {
	font-weight: 500;

	font-size: 14px;

	line-height: normal;

	color: #888;
}

.post-single__side-tag {
	display: inline-flex;

	align-items: center;

	padding: 4px 12px;

	background-color: #fff;

	border: 1px solid #ddd;

	border-radius: 32px;

	font-weight: 500;

	font-size: 12px;

	line-height: normal;

	color: #333;
}

.post-single__side-title {
	font-weight: 500;

	/* font-size: 14px; */
	font-size: 12px;

	line-height: 1.5;

	color: #333;
	 display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	
}

.post-single__cat-list {
	list-style: disc;

	margin: 0;

	padding: 0 0 0 21px;

	font-size: 14px;

	line-height: 2;

	color: #000;
}

.post-single__cat-list .cat-item {
	margin: 0;

	padding: 0;
	list-style-type: disc;
}

.post-single__cat-list a {
	color: inherit;

	text-decoration: none;
}

.post-single__cat-list a:hover {
	text-decoration: underline;
}

.post-single__banner {
	display: flex;

	align-items: center;

	justify-content: center;

	width: 100%;

	/* height: 318px;

	background-color: #ccc;

	border-radius: 8px;

	box-sizing: border-box; */
}

.post-single__banner a{
	display: block;
}
.post-single__banner img{
	width: 100%;
	height: auto;
}

.post-single__banner-text {
	margin: 0;

	font-weight: 700;

	font-size: 18px;

	line-height: normal;

	color: #000;

	text-align: center;

	padding: 16px;
}

@media screen and (max-width: 1200px) {
	.post-single__grid {
		flex-direction: column;

		gap: 48px;
	}

	.post-single__sidebar {
		width: 100%;

		max-width: 600px;

		margin-left: auto;

		margin-right: auto;
	}

	.post-single__related-card {
		width: calc(50% - 20px);

		max-width: none;
	}
}

@media screen and (max-width: 767px) {
	.post-single {
		padding-top: 32px;

		padding-bottom: 80px;
	}

	.post-single__main {
		gap: 48px;
	}

	.post-single__title {
		font-size: 20px;
	}

	.post-single__toc {
		flex-direction: column;

		align-items: flex-start;

		gap: 16px;

		padding: 20px;
	}

	.post-single__toc-rule {
		width: 100%;

		height: 1px;
	}

	.post-single__cta-body {
		flex-direction: column;

		padding: 0 20px;

		margin-top: 24px;
	}

	.post-single__cta-visual {
		max-width: 100%;

		width: 100%;
	}

	.post-single__field-row {
		/* flex-direction: column; */
		flex-direction: row;

		gap: 12px;
	}

	.post-single__related-title {
		font-size: 28px;
	}

	.post-single__related-grid {
		flex-direction: column;
	}

	.post-single__related-card {
		width: 100%;

		max-width: none;

		min-height: 0;
	}

	.post-single__author-row {
		flex-direction: column;

		align-items: flex-start;
	}
}


#rtoc-mokuji-wrapper{
	display: none;
}

.post-single__toc-item #rtoc-mokuji-wrapper{
	display: block;
}

#rtoc-mokuji-title{
	display: none;
}

#rtoc-mokuji-widget-wrapper{
	background-color: transparent;
}

.rtoc-item{
	list-style-type: disc;
}

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

	.rtoc-item{
		margin-left: 24px;
	}
}

.wpcf7-spinner{
	display: none !important;
}

.wpcf7-not-valid-tip{
	font-size: 12px !important;
}

.wpcf7-response-output{
	padding: 16px !important;
	font-size: 14px !important;
	line-height: 1.5 !important;
	border: 0 !important;
	background-color: #fff !important;
	border-radius: 8px !important;

}