/* ==========================================================================
   SINGLE POST PAGE (single.php + comments.php)
   ========================================================================== */

.kpsn-single-hero{
	background: linear-gradient(180deg, var(--kpsn-navy) 0%, var(--kpsn-navy-soft) 100%);
	padding: 80px;
	text-align: center;
	color: #fff;
}
.kpsn-single-hero .kpsn-cat-badge{
	display: inline-block;
	background: var(--kpsn-orange);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .8px;
	padding: 6px 16px;
	border-radius: 30px;
	margin-bottom: 18px;
}
.kpsn-single-hero h1{
	font-size: 38px;
	font-weight: 800;
	line-height: 1.35;
	margin: 0 auto 18px;
	color: #fff;
}
.kpsn-single-hero .kpsn-meta{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
	color: #C9D1E3;
	font-size: 14px;
}
.kpsn-single-hero .kpsn-meta span{ display:flex; align-items:center; gap:6px; }

.kpsn-single-wrap{
	max-width: 860px;
	margin: -50px auto 0;
	padding: 0 20px 90px;
	position: relative;
}

.kpsn-featured-image{
	border-radius: var(--kpsn-radius);
	overflow: hidden;
	box-shadow: var(--kpsn-shadow);
	margin-bottom: 40px;
}
.kpsn-featured-image img{ width:100%; display:block; }

.kpsn-single-content{
	background: #fff;
	border-radius: var(--kpsn-radius);
	box-shadow: var(--kpsn-shadow);
	padding: 46px 50px;
	font-size: 16.5px;
	line-height: 1.85;
	color: var(--kpsn-text);
}
.kpsn-single-content h2{ font-size: 26px; margin-top: 40px; color: var(--kpsn-navy); }
.kpsn-single-content h3{ font-size: 21px; margin-top: 32px; color: var(--kpsn-navy); }
.kpsn-single-content p{ margin-bottom: 20px; }
.kpsn-single-content img{ border-radius: var(--kpsn-radius-sm); margin: 24px 0; }
.kpsn-single-content blockquote{
	border-left: 4px solid var(--kpsn-orange);
	background: var(--kpsn-bg);
	padding: 18px 24px;
	border-radius: 0 var(--kpsn-radius-sm) var(--kpsn-radius-sm) 0;
	font-style: italic;
	color: var(--kpsn-navy);
	margin: 26px 0;
}
.kpsn-single-content ul, .kpsn-single-content ol{ margin: 0 0 20px 22px; }
.kpsn-single-content a{ color: var(--kpsn-orange); }

/* tags */
.kpsn-tags{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 34px;
	padding-top: 26px;
	border-top: 1px solid var(--kpsn-border);
}
.kpsn-tags a{
	font-size: 13px;
	padding: 7px 16px;
	border-radius: 30px;
	background: var(--kpsn-bg);
	color: var(--kpsn-text);
	text-decoration: none;
	border: 1px solid var(--kpsn-border);
}
.kpsn-tags a:hover{ background: var(--kpsn-orange); border-color: var(--kpsn-orange); color: #fff; }

/* share row */
.kpsn-share{
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 20px;
}
.kpsn-share span{ font-size: 13px; font-weight: 600; color: var(--kpsn-muted); }
.kpsn-share a{
	width: 36px; height: 36px;
	border-radius: 50%;
	background: var(--kpsn-navy);
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	text-decoration: none;
	font-size: 14px;
}
.kpsn-share a:hover{ background: var(--kpsn-orange); }

/* author box */
.kpsn-author-box{
	display: flex;
	gap: 20px;
	align-items: center;
	background: #fff;
	border-radius: var(--kpsn-radius);
	box-shadow: var(--kpsn-shadow);
	padding: 28px 32px;
	margin-top: 40px;
}
.kpsn-author-box img{
	width: 74px; height: 74px;
	border-radius: 50%;
	object-fit: cover;
}
.kpsn-author-box h4{ margin: 0 0 6px; font-size: 17px; color: var(--kpsn-navy); }
.kpsn-author-box p{ margin: 0; font-size: 14px; color: var(--kpsn-muted); line-height: 1.6; }

/* prev/next nav */
.kpsn-post-nav{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 40px;
}
.kpsn-post-nav a{
	background: #fff;
	border-radius: var(--kpsn-radius-sm);
	box-shadow: var(--kpsn-shadow);
	padding: 20px 24px;
	text-decoration: none;
	display: block;
}
.kpsn-post-nav .label{ font-size: 12px; color: var(--kpsn-orange); font-weight: 700; text-transform: uppercase; margin-bottom: 6px; display:block; }
.kpsn-post-nav .title{ font-size: 14.5px; color: var(--kpsn-navy); font-weight: 600; line-height: 1.4; }
.kpsn-post-nav .next-post{ text-align: right; }

/* related posts */
.kpsn-related{
	margin-top: 60px;
}
.kpsn-related h3{
	text-align: center;
	font-size: 24px;
	margin-bottom: 30px;
	color: var(--kpsn-navy);
}
.kpsn-related-grid{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

/* ==========================================================================
   COMMENT BOX
   ========================================================================== */
.kpsn-comments-section{
	background: #fff;
	border-radius: var(--kpsn-radius);
	box-shadow: var(--kpsn-shadow);
	padding: 40px 44px;
	margin-top: 50px;
}
.kpsn-comments-section .comments-title,
.kpsn-comments-section #reply-title{
	font-size: 22px;
	font-weight: 700;
	color: var(--kpsn-navy);
	margin: 0 0 26px;
}

.kpsn-comment-list{
	list-style: none;
	margin: 0 0 10px;
	padding: 0;
}
.kpsn-comment-list .children{
	list-style: none;
	margin: 0 0 0 46px;
	padding: 0;
}

.kpsn-comment{
	border-bottom: 1px solid var(--kpsn-border);
	padding: 22px 0;
}
.kpsn-comment:last-child{ border-bottom: none; }

.kpsn-comment-inner{
	display: flex;
	gap: 16px;
}
.kpsn-comment-avatar img{
	width: 54px; height: 54px;
	border-radius: 50%;
	object-fit: cover;
}
.kpsn-comment-body{ flex: 1; }
.kpsn-comment-meta{
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 6px;
}
.kpsn-comment-author{ font-weight: 700; color: var(--kpsn-navy); font-size: 15px; }
.kpsn-comment-date{ font-size: 12.5px; color: var(--kpsn-muted); }
.kpsn-comment-text{ font-size: 14.5px; line-height: 1.7; color: var(--kpsn-text); }
.kpsn-comment-text p{ margin: 0 0 10px; }

.kpsn-reply-link a, a.kpsn-reply-link{
	display: inline-block;
	margin-top: 8px;
	font-size: 12.5px;
	font-weight: 700;
	color: var(--kpsn-orange);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: .5px;
}

.kpsn-no-comments{
	color: var(--kpsn-muted);
	font-size: 14px;
	padding: 10px 0 24px;
}

/* comment form */
#respond, .comment-respond{
	margin-top: 30px;
	padding-top: 26px;
	border-top: 1px solid var(--kpsn-border);
}
.kpsn-comment-form p{ margin: 0 0 18px; }
.kpsn-comment-form label{
	display: block;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--kpsn-navy);
	margin-bottom: 7px;
}
.kpsn-comment-form input[type="text"],
.kpsn-comment-form input[type="email"],
.kpsn-comment-form input[type="url"],
.kpsn-comment-form textarea{
	width: 100%;
	border: 1px solid var(--kpsn-border);
	background: var(--kpsn-bg);
	border-radius: var(--kpsn-radius-sm);
	padding: 13px 16px;
	font-size: 14.5px;
	font-family: inherit;
	color: var(--kpsn-text);
	box-sizing: border-box;
}
.kpsn-comment-form input:focus,
.kpsn-comment-form textarea:focus{
	outline: none;
	border-color: var(--kpsn-orange);
	background: #fff;
}
.kpsn-comment-form .comment-form-cookies-consent{
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--kpsn-muted);
}
.kpsn-comment-form .comment-form-cookies-consent input{ width: auto; }
.kpsn-comment-form .form-submit{ margin-top: 6px; }
.kpsn-comment-form .form-row{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

/* ==========================================================================
   RESPONSIVE — Single post + comments
   ========================================================================== */
@media (max-width: 1024px){
	.kpsn-related-grid{ grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px){
	.kpsn-single-hero{ padding: 56px 18px 100px; }
	.kpsn-single-hero h1{ font-size: 26px; }
	.kpsn-single-hero .kpsn-meta{ gap: 12px; font-size: 12.5px; }
	.kpsn-single-wrap{ margin-top: -70px; padding: 0 14px 60px; }
	.kpsn-single-content{ padding: 30px 22px; font-size: 15.5px; }
	.kpsn-single-content h2{ font-size: 21px; }
	.kpsn-single-content h3{ font-size: 18px; }
	.kpsn-author-box{ flex-direction: column; text-align: center; padding: 24px; }
	.kpsn-post-nav{ grid-template-columns: 1fr; }
	.kpsn-post-nav .next-post{ text-align: left; }
	.kpsn-related-grid{ grid-template-columns: 1fr; }
	.kpsn-comments-section{ padding: 28px 20px; }
	.kpsn-comment-list .children{ margin-left: 20px; }
	.kpsn-comment-avatar img{ width: 42px; height: 42px; }
	.kpsn-comment-form .form-row{ grid-template-columns: 1fr; gap: 0; }
}

@media (max-width: 480px){
	.kpsn-single-hero h1{ font-size: 22px; }
	.kpsn-comment-inner{ gap: 10px; }
	.kpsn-comment-author{ font-size: 13.5px; }
	.kpsn-comment-text{ font-size: 13.5px; }
	.kpsn-comments-section .comments-title, .kpsn-comments-section #reply-title{ font-size: 19px; }
}
