/* DCL Board — グレー×ピンク */
.dcl-board {
	--dcl-pink: #f28ba8;
	--dcl-pink-dark: #e06c92;
	--dcl-pink-pale: #fdeef3;
	--dcl-gray-bg: #f7f6f8;
	--dcl-gray-line: #e8e5ea;
	--dcl-text: #55505a;
	--dcl-text-sub: #98929e;
	--dcl-radius: 16px;

	max-width: 760px;
	margin: 0 auto;
	padding: 24px 16px 48px;
	color: var(--dcl-text);
	font-size: 15px;
	line-height: 1.7;
}

/* ヘッダー */
.dcl-board__head { text-align: center; margin-bottom: 24px; }
.dcl-board__title {
	font-size: 24px; font-weight: 700; letter-spacing: .06em;
	color: var(--dcl-text); margin: 0 0 6px;
}
.dcl-board__lead { color: var(--dcl-text-sub); font-size: 13.5px; margin: 0 0 16px; }

/* ボタン */
.dcl-btn {
	display: inline-block; border: none; cursor: pointer;
	border-radius: 999px; padding: 10px 28px;
	font-size: 14px; font-weight: 700; letter-spacing: .04em;
	transition: all .2s ease; line-height: 1.4;
}
.dcl-btn--primary {
	background: linear-gradient(135deg, var(--dcl-pink), var(--dcl-pink-dark));
	color: #fff; box-shadow: 0 4px 14px rgba(240, 139, 168, .38);
}
.dcl-btn--primary:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(240, 139, 168, .5); color: #fff; }
.dcl-btn--ghost {
	background: #fff; color: var(--dcl-pink-dark);
	border: 1.5px solid var(--dcl-pink); box-shadow: none;
}
.dcl-btn--ghost:hover { background: var(--dcl-pink-pale); }
.dcl-btn--small { padding: 7px 20px; font-size: 13px; background: var(--dcl-pink); color: #fff; }
.dcl-btn--small:hover { background: var(--dcl-pink-dark); color: #fff; }
.dcl-btn:disabled { opacity: .5; pointer-events: none; }

/* 投稿フォーム */
.dcl-form-wrap { margin-bottom: 28px; }
.dcl-form {
	background: #fff; border: 1.5px solid var(--dcl-pink-pale);
	border-radius: var(--dcl-radius); padding: 24px 22px;
	box-shadow: 0 6px 24px rgba(120, 100, 120, .08);
}
.dcl-form__row { margin-bottom: 14px; }
.dcl-form__row--half { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dcl-form__label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 5px; color: var(--dcl-text); }
.dcl-req {
	display: inline-block; background: var(--dcl-pink); color: #fff;
	font-size: 10px; font-weight: 700; border-radius: 6px;
	padding: 1px 7px; margin-left: 6px; vertical-align: 1px;
}
.dcl-form input[type="text"],
.dcl-form select,
.dcl-form textarea {
	width: 100%; box-sizing: border-box;
	background: var(--dcl-gray-bg);
	border: 1.5px solid var(--dcl-gray-line);
	border-radius: 10px; padding: 10px 14px;
	font-size: 14px; color: var(--dcl-text);
	transition: border-color .2s, background .2s;
}
.dcl-form input:focus, .dcl-form select:focus, .dcl-form textarea:focus {
	outline: none; border-color: var(--dcl-pink); background: #fff;
	box-shadow: 0 0 0 3px rgba(242, 139, 168, .15);
}
.dcl-form__note { font-size: 11.5px; color: var(--dcl-text-sub); margin: 4px 0 14px; }
.dcl-form__actions { display: flex; gap: 10px; justify-content: center; }
.dcl-form__msg { text-align: center; font-size: 13px; margin: 10px 0 0; color: var(--dcl-pink-dark); font-weight: 700; }
.dcl-hp { position: absolute !important; left: -9999px !important; height: 0; width: 0; opacity: 0; }

/* カテゴリータブ */
.dcl-tabs { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 20px; }
.dcl-tab {
	border: 1.5px solid var(--dcl-gray-line); background: #fff;
	color: var(--dcl-text-sub); border-radius: 999px;
	padding: 7px 18px; font-size: 13px; font-weight: 700;
	cursor: pointer; transition: all .2s;
}
.dcl-tab:hover { border-color: var(--dcl-pink); color: var(--dcl-pink-dark); }
.dcl-tab.is-active { background: var(--dcl-pink); border-color: var(--dcl-pink); color: #fff; }

/* 検索・並び替え */
.dcl-toolbar { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; }
.dcl-search { display: flex; gap: 8px; flex: 1; }
.dcl-search input[type="search"] {
	flex: 1; box-sizing: border-box;
	background: #fff; border: 1.5px solid var(--dcl-gray-line);
	border-radius: 999px; padding: 9px 18px;
	font-size: 13.5px; color: var(--dcl-text);
	transition: border-color .2s;
}
.dcl-search input[type="search"]:focus {
	outline: none; border-color: var(--dcl-pink);
	box-shadow: 0 0 0 3px rgba(242, 139, 168, .15);
}
.dcl-sort {
	background: #fff; border: 1.5px solid var(--dcl-gray-line);
	border-radius: 999px; padding: 8px 14px;
	font-size: 13px; font-weight: 700; color: var(--dcl-text);
	cursor: pointer;
}
.dcl-sort:focus { outline: none; border-color: var(--dcl-pink); }

/* 投稿カード */
.dcl-list { display: flex; flex-direction: column; gap: 12px; }
.dcl-card {
	background: #fff; border: 1px solid var(--dcl-gray-line);
	border-radius: var(--dcl-radius); overflow: hidden;
	box-shadow: 0 3px 12px rgba(120, 100, 120, .06);
	transition: box-shadow .2s;
}
.dcl-card:hover { box-shadow: 0 6px 20px rgba(240, 139, 168, .18); }
.dcl-card__head {
	display: block; width: 100%; text-align: left;
	background: none; border: none; cursor: pointer;
	padding: 16px 18px; font: inherit; color: inherit;
}
.dcl-card__title { display: block; font-size: 15.5px; font-weight: 700; margin: 6px 0 4px; color: var(--dcl-text); }
.dcl-card__meta { display: block; font-size: 12px; color: var(--dcl-text-sub); }
.dcl-card__area { margin-left: 4px; }
.dcl-badge {
	display: inline-block; font-size: 11px; font-weight: 700;
	border-radius: 999px; padding: 2.5px 12px; letter-spacing: .03em;
}
.dcl-badge--copyuni { background: var(--dcl-pink-pale); color: var(--dcl-pink-dark); }
.dcl-badge--lesson { background: #efeaf6; color: #8a6fb8; }
.dcl-badge--costume { background: #fdf3e7; color: #c08a4e; }
.dcl-badge--event { background: #eef1f0; color: #6f8a80; }

.dcl-card__body { padding: 0 18px 18px; border-top: 1px dashed var(--dcl-gray-line); }
.dcl-card__text { padding-top: 14px; font-size: 14px; }
.dcl-card__contact {
	margin: 12px 0 0; font-size: 13px; font-weight: 700;
	background: var(--dcl-pink-pale); border-radius: 10px; padding: 8px 14px;
	color: var(--dcl-pink-dark);
}

/* コメント */
.dcl-comments { margin-top: 16px; background: var(--dcl-gray-bg); border-radius: 12px; padding: 14px 16px; }
.dcl-comments__title { font-size: 13px; font-weight: 700; margin: 0 0 10px; color: var(--dcl-text-sub); }
.dcl-comments__list { list-style: none; margin: 0 0 12px; padding: 0; }
.dcl-comment { padding: 8px 0; border-bottom: 1px dashed var(--dcl-gray-line); }
.dcl-comment:last-child { border-bottom: none; }
.dcl-comment__author { font-size: 12.5px; font-weight: 700; color: var(--dcl-pink-dark); margin-right: 8px; }
.dcl-comment__date { font-size: 11px; color: var(--dcl-text-sub); }
.dcl-comment__text { margin: 3px 0 0; font-size: 13.5px; }
.dcl-comment-form { display: flex; flex-direction: column; gap: 8px; }
.dcl-comment-form input[type="text"],
.dcl-comment-form textarea {
	width: 100%; box-sizing: border-box; background: #fff;
	border: 1.5px solid var(--dcl-gray-line); border-radius: 10px;
	padding: 8px 12px; font-size: 13px; color: var(--dcl-text);
}
.dcl-comment-form input:focus, .dcl-comment-form textarea:focus {
	outline: none; border-color: var(--dcl-pink);
	box-shadow: 0 0 0 3px rgba(242, 139, 168, .15);
}
.dcl-comment-form .dcl-btn--small { align-self: flex-end; }
.dcl-comment-form__msg { font-size: 12px; color: var(--dcl-pink-dark); font-weight: 700; }

/* 個別ページ */
.dcl-card__permalink { margin: 12px 0 0; font-size: 13px; }
.dcl-card__permalink a { color: var(--dcl-pink-dark); font-weight: 700; text-decoration: none; }
.dcl-card__permalink a:hover { text-decoration: underline; }
.dcl-board--single { padding: 0; max-width: none; }
.dcl-single__meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 13px; color: var(--dcl-text-sub); margin-bottom: 14px; }
.dcl-single__back { margin-top: 24px; font-size: 14px; }
.dcl-single__back a { color: var(--dcl-pink-dark); font-weight: 700; text-decoration: none; }
.dcl-single__back a:hover { text-decoration: underline; }

/* その他 */
.dcl-empty { text-align: center; color: var(--dcl-text-sub); padding: 32px 0; }
.dcl-more-wrap { text-align: center; margin-top: 20px; }
.dcl-page-info { display: none; }

@media (max-width: 560px) {
	.dcl-form__row--half { grid-template-columns: 1fr; }
	.dcl-board__title { font-size: 20px; }
}
