div.bbp-breadcrumb,
#subscription-toggle,
div.bbp-template-notice:not(.error),
.exchange_top div.bbp-template-notice.info + .bbp-pagination,
.bbp-pagination-count,
#bbpress-forums li.bbp-header,
.quicktags-toolbar,
label[for="bbp_topic_title"],
label[for="bbp_stick_topic"],
select#bbp_stick_topic_select,
label[for="bbp_topic_status"],
select#bbp_topic_status_select,
fieldset p > br,
label[for="bbp_topic_tags"],
input#bbp_topic_tags
{
	display: none;
}
p:has(input#bbp_topic_subscription){
    display: flex;
    align-items: flex-start;
    margin-top: 34px;
    gap: 8px;
}
input#bbp_topic_subscription{
    margin-top: 6px;
    width: 18px;
    height: 18px;
}
input#bbp_topic_subscription + label[for="bbp_topic_subscription"]{
    font-size: 18px;
    font-weight: bold;
    margin: 0;
}
label[for="bbp_topic_subscription"]{
	margin-top: 32px;
	display: inline-block;
}
#bd_under div.bbp-template-notice.error,
#bd_under div.bbp-template-notice.warning{
	padding: 12px;
}
#bd_under div.bbp-template-notice li,
#bd_under div.bbp-template-notice p{
	font-size: 16px;
	color: #f00;
}

.exchange_top section{
	position: relative;
	z-index: 2;
}
.exchange_wrap{
	position: relative;
	padding-top: 125px;
	margin-top: 65px;
	padding-bottom: 120px;
	background-color: #e6f7f5;
	background-image: linear-gradient(90deg, #c7eaf7 1px, transparent 1px), linear-gradient(#c7eaf7 1px, transparent 1px);
	background-position: 10px 10px;
	background-size: 31px 31px;
}
.exchange_wrap::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: #fff;
	transform: skewY(-7deg) translateY(90px);
	z-index: -1;
}
.exchange_top footer{
	margin-top: 0;
}
@media screen and (max-width: 480px) {
	.exchange_wrap{
		padding-top: 40px;
		margin-top: 40px;
		padding-bottom: 40px;
	}
}

.exchange_flex{
	display: flex;
	gap: 3.33%;
	position: relative;
	z-index: 2;
}

.exchange_top .bbp-topic-form{
	display: none;
}
.exchange_top a.btn{
	max-width: 300px;
	width: 100%;
	justify-content: center;
	margin-inline: auto;
}
.exchange_top a.btn:after{
	content: "\2b";
	font-family: 'FontAwesome';
	font-size: 12px;
	font-weight: 400;
	display: flex;
	align-items: center;
	width: auto;
	height: auto;
	border: none;
	transform: none;
	margin-top: 2px;
}

#bd_under #wpmem_login,
#bd_under #wpmem_reg,
#bd_under fieldset,
#bd_under #wpmem_login fieldset,
#bd_under #wpmem_reg fieldset{
	max-width: 1000px;
	width: 100%;
	margin: 0 auto;
	display: block;
}


.topicList{
	max-width: calc(100% - 3.33% - 300px);
	width: 100%;
}
.forum-list-title{
	font-size: 30px;
	color: #fff;
	background-color: #009985;
	border-radius: 8px 8px 0 0;
	padding: 6px 40px;
	width: fit-content;
}
.topic-item{
	position: relative;
	display: flex;
	align-items: center;
	gap: 32px;
	padding: 32px 70px 32px 0;
	border-bottom: 1px solid #d9e4ea;
}
.topic-item:hover{
	text-decoration: none;
}
.topic-item:after{
	content: "\f105";
	font-family: 'FontAwesome';
	font-size: 14px;
	font-weight: 400;
	display: inline-block;
	width: 24px;
	height: 24px;
	margin-left: 8px;
	color: #fff;
	background-color: #009985;
	border-radius: 50%;
	position: absolute;
	bottom: 40px;
	right: 32px;
	text-align: center;
	line-height: 1.7;
}
.topic-items-wrapper{
	position: relative;
	background-color: #fff;
	padding: 24px 40px;
	border-radius: 0 10px 10px 10px;
}
.topic-meta{
	font-size: 16px;
	margin-left: 26px;
}
.post-date{
	display: block;
	font-size: 14px;
	color: #999;
	margin-top: 4px;
}
.topic-item-title.hd02{
	font-size: 24px;
	margin: 0;
}
.topic-comment-badge {
	position: relative; /* 吹き出しのツノの基準位置になります */
	width: 80px;
	min-width: 80px;
	height: 80px;
	background-color: #e0f7f1; /* 吹き出しの背景色（薄いエメラルド） */
	border-radius: 50%;		/* 円形にする */
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	color: #009688;			/* 文字色（濃いエメラルド） */
	text-align: center;
}

/* 吹き出しのツノ部分（右下の三角形） */
.topic-comment-badge::after {
	content: "";
	position: absolute;
	bottom: -4px;
	right: 3px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 20px 20px 0 0;
	border-color: #e0f7f1 transparent transparent transparent;
	transform: rotate(65deg);
	z-index: 0;
}

/* 数字部分（12） */
.count-num {
	font-size: 28px;
	font-weight: bold;
	line-height: 1;
	margin-bottom: 2px;
}

/* ラベル部分（コメント） */
.count-label {
	font-size: 11px;
	font-weight: bold;
}


.sidebar{
	background-color: #fff;
	max-width: 300px;
	min-width: 240px;
	width: 100%;
	border-radius: 10px;
	padding: 24px;
}

.custom-field-label {
	display: block;
	font-size: 18px;
	font-weight: bold;
}
fieldset > .reply-form-row:not(:first-of-type) > .custom-field-label{
	margin: 32px 0 0;
}
.required-tag {
	background: #ff0000;
	color: #fff;
	font-size: 16px;
	padding: 0px 6px;
	margin-left: 8px;
	line-height: 1;
}

#reply-form #new-post .reply-form-row .notice{
	margin: 12px 0 40px;
}
#reply-form #new-post .reply-form-row .notice br{
	display: inline;
}
#reply-form #new-post .reply-form-row .notice a{
    text-decoration: underline;
    color: #1558d6;
}
#reply-form #new-post .reply-form-row .notice a:hover{
    text-decoration: none;
}


#bd_under div.bbp-submit-wrapper{
	margin: 100px auto 0;
	float: none;
}

button#bbp_topic_submit.button.submit,
button#bbp_topic_submit,
button#bbp_reply_submit.button.submit {
	position: relative;
	border-radius: 50px;
	background: linear-gradient(90deg,rgba(236, 102, 0, 1) 0%, rgba(255, 158, 19, 1) 100%);
	color: #fff;
	width: fit-content;
	max-width: 300px;
	width: 100%;
	min-height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 13px 32px;
	border: 2px solid #fff;
	transition: 0.3s all;
	font-size: 16px;
	margin: 0 auto;
	z-index: 0;
}
button#bbp_topic_submit.button.submit:before,
button#bbp_topic_submit:before,
button#bbp_reply_submit.button.submit:before {
	content: "";
	position: absolute;
	border-radius: 50px;
	inset: 0;
	z-index: -1;
	background: linear-gradient(to right, #fff, #fff);
	opacity: 0;
	transition: opacity 0.5s;
}

@media (hover: hover) {
	.topic-item:after,
	.topic-item .topic-item-title.hd02:before{
		transition: 0.3s;
	}
	.topic-item:hover:after{
		background-color: #f58220;
	}
	.topic-item-title p {
		display: inline;
		background-image: linear-gradient(#f58220, #f58220);
		background-repeat: no-repeat;
		background-size: 0% 2px;
		background-position: left bottom;
		transition: background-size 0.4s ease;
		line-height: 1.8;
		padding-bottom: 2px;
	}
	.topic-item:hover .topic-item-title p {
		background-size: 100% 2px; /* 幅を100%にして線を表示 */
	}
	.topic-item:hover .topic-item-title.hd02{
		text-decoration: none;
	}
	.topic-item:hover .topic-item-title.hd02:before{
		background-color: #f58220;
	}

	button#bbp_topic_submit.button.submit:hover,
	button#bbp_topic_submit:hover,
	button#bbp_reply_submit.button.submit:hover {
		color: #ec6600;
		border: 2px solid #ec6600;
		text-decoration: none;
		cursor: pointer;
	}
	button#bbp_topic_submit.button.submit:hover:before,
	button#bbp_topic_submit:hover:before,
	button#bbp_reply_submit.button.submit:hover:before {
		opacity: 1;
	}
}


/* サイドバー全体のスタイル */
.sidebar {
	position: relative;
	width: 300px; /* 必要に応じて調整してください */
	font-family: sans-serif;
}
.topic-items-wrapper:after,
.sidebar:after{
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	border-radius: 0 10px 10px 10px;
	background: rgba(0, 169, 157, 0.2);
	right: -3px;
	bottom: -3px;
	z-index: -1;
}

.forum-portal-custom {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.forum-portal-custom section {
	margin: 0;
}

/* 各セクションの見出し（キーワード検索、ようこそ、新着のコメント） */
.portal-head {
	background-color: #e6f7f6; /* 薄いミントグリーン */
	color: #1e837a; /* 濃いエメラルド */
	font-size: 18px;
	font-weight: bold;
	padding: 10px 15px;
	margin: 0 0 15px 0;
	border-radius: 4px;
}
#portalProfile .portal-head {
	background-color: #ffeee0;
	color: #f58220;
}

/* ユーザーリンク（プロフィール編集、ログアウト） */
.user-links {
	list-style: none;
	padding: 0 10px;
	margin: 0;
}

.user-links li {
	margin-bottom: 8px;
}

.user-links li a {
	color: #1e837a;
	text-decoration: underline;
	font-size: 15px;
}
#portalProfile .user-links li a {
	color: #f58220;
}
.user-links li a:hover {
	text-decoration: none;
}

/* 新着のコメントリスト */
.recent-replies {
	padding: 0 5px;
}

.reply-card {
	display: block;
	padding-bottom: 15px;
	margin-bottom: 15px;
	border-bottom: 1px solid #e0e0e0;
}
.reply-card:hover {
	text-decoration: none;
}

.reply-card:last-child {
	border-bottom: none;
}

/* 投稿者名と時間 */
.reply-meta {
	margin-bottom: 8px;
}

.reply-meta .author {
	font-size: 14px;
	color: #333;
	font-weight: 500;
}

.reply-meta .time {
	font-size: 12px;
	color: #999;
	display: block;
}

/* トピックタイトルへのリンク */
.topic-link {
	position: relative;
	display: block;
	color: #333;
	font-weight: bold;
	text-decoration: none;
	font-size: 14px;
	margin-bottom: 8px;
	padding-left: 16px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.topic-link.hd02:before {
	width: 12px;
	height: 12px;
	top: 6px;
}
@media (hover: hover) {
	.topic-link span {
		display: inline-block; 
		text-decoration: none;
		line-height: 1.5;
		background-image: linear-gradient(#f58220, #f58220);
		background-repeat: no-repeat;
		background-size: 0% 2px;
		background-position: left bottom;
		transition: background-size 0.4s ease;
		padding-bottom: 2px;
	}

	/* ホバー時に線を伸ばす */
	.reply-card:hover .topic-link span {
		background-size: 100% 2px;
	}
}

/* コメントの抜粋文 */
.reply-excerpt {
	font-size: 13px;
	line-height: 1.6;
	color: #666;
	margin: 0;
}

/* キーワード検索（もしHTML側でinputを追加する場合の参考に） */
.search-form-container form{
	display: block;
	text-align: right;
}
.sidebar input[type="text"] {
	width: 100%;
	margin: 0;
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}
.search-form-container form button{
	width: 80px;
	height: 42px;
	word-break: keep-all;
	outline: none;
	background: #f58220;
	border: none;
	border-radius: 4px;
	font-size: 15px;
	color: #fff;
	margin: 8px 0 0 auto;
	padding: 13px 0px 13px 0px;
	justify-content: center;
}
.search-form-container form button:after{
	content: none;
}
.search-form-container form button:hover{
	cursor: pointer;
}

/* ページネーション全体のコンテナ */
.forum-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 15px; /* 数字同士の間隔 */
	margin: 40px 0;
}

/* 全ての数字と矢印に共通のスタイル */
.forum-pagination .page-numbers {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 45px;
	height: 45px;
	text-decoration: none;
	font-size: 18px;
	font-weight: bold;
	border-radius: 50%; /* 正円にする */
	border: 2px solid #ff8e3c; /* オレンジの境界線 */
	color: #ff8e3c; /* 数字の色 */
	transition: all 0.3s ease;
}

/* 現在表示しているページのスタイル（塗りつぶし） */
.forum-pagination .page-numbers.current {
	background-color: #ff8e3c;
	color: #fff;
	border-color: #ff8e3c;
}

/* ホバー時の挙動（お好みで） */
.forum-pagination a.page-numbers:hover {
	background-color: #fff4ec; /* 薄いオレンジ背景 */
}

/* 矢印（→）のサイズや位置の微調整 */
.forum-pagination .next.page-numbers {
	font-size: 22px;
	line-height: 1;
}

/* スマホ表示でのサイズ調整 */
@media screen and (max-width: 1024px) {
	.forum-list-title {
		font-size: 22px;
	}
	.topic-items-wrapper {
		padding: 16px 24px;
	}
	.topic-item {
		gap: 24px;
		padding: 24px 40px 24px 0;
	}
	.topic-comment-badge {
		width: 66px;
		min-width: 66px;
		height: 66px;
	}
	.count-num {
		font-size: 22px;
	}
	.topic-meta {
		font-size: 16px;
	}
	.post-date {
		font-size: 13px;
	}
	.topic-item-title.hd02 {
		font-size: 20px;
	}
	.topic-item-title.hd02:before {
		top: 8px;
	}
	.topic-item:after {
		bottom: 27px;
		right: 8px;
	}
	.forum-pagination {
		gap: 8px;
	}
	.forum-pagination .page-numbers {
		width: 38px;
		height: 38px;
		font-size: 16px;
	}
}
@media screen and (max-width: 768px) {
	.exchange_flex{
		display: block;
	}
	.topicList{
		max-width: 100%;
	}
	.sidebar{
		max-width: 100%;
		width: 100%;
		margin-top: 40px;
	}
	input#bbp_topic_subscription {
	    width: 16px;
	    height: 16px;
	}
	.custom-field-label,
	input#bbp_topic_subscription + label[for="bbp_topic_subscription"] {
		font-size: 16px;
	}
	.required-tag {
		font-size: 13px;
	}
}
@media screen and (max-width: 480px) {
	.forum-list-title {
		font-size: 18px;
		padding: 6px 24px 6px 16px;
	}
		.topic-items-wrapper {
		padding: 0px 16px 1px;
	}
	.topic-item {
		gap: 12px;
		padding: 24px 40px 24px 0;
	}
	.topic-item:after {
		bottom: 24px;
		right: 8px;
		font-size: 11px;
		width: 18px;
		height: 18px;
	}
		.topic-comment-badge {
		width: 52px;
		min-width: 52px;
		height: 52px;
		min-height: 52px;
	}
	.topic-comment-badge::after {
	bottom: -3px;
	right: 5px;
	border-width: 10px 10px 0 0;
	}
	.count-num {
		font-size: 18px;
		margin: 0;
	}
	.count-label{
		font-size: 10px;
	}
	.topic-meta {
		font-size: 14px;
		margin-left: 16px;
	}
	.post-date {
		font-size: 12px;
		margin-bottom: 8px;
	}
	.topic-item-title.hd02 {
		font-size: 18px;
		padding-left: 15px;
	}
	.topic-item-title.hd02:before {
		top: 8px;
		width: 12px;
		height: 12px;
	}
	.forum-pagination {
		gap: 8px;
	}
	.forum-pagination .page-numbers {
		width: 35px;
		height: 35px;
		font-size: 16px;
	}
.custom-field-label {
	font-size: 15px;
}
.required-tag {
	font-size: 12px;
}
#bd_under div.bbp-submit-wrapper{
	margin: 40px auto 0;
}
}

#posterArea{
	margin: 0 auto 32px;
}
#posterArea label{
	display: block;
	font-size: 18px;
	font-weight: bold;
	text-decoration: none;
}
#posterArea p{
	margin-top: 12px;
}
#posterArea p br{
	display: inline-block;
}
#posterArea p a{
	text-decoration: underline;
	color: #1558d6;
}
#posterArea p a:hover{
	text-decoration: none;
}