/**
 * Portfolio Blog — The Company Dev
 */

.tcd-pb {
	--tcd-pb-wrapper-bg: #f4f6f9;
	--tcd-pb-headline-color: #0a1942;
	--tcd-pb-headline-margin: 24px;
	--tcd-pb-layout-gap: 32px;
	--tcd-pb-sidebar-width: 320px;
	--tcd-pb-grid-columns: 2;
	--tcd-pb-filter-gap: 10px;
	--tcd-pb-filter-margin: 40px;
	--tcd-pb-filter-radius: 999px;
	--tcd-pb-filter-bg: #ffffff;
	--tcd-pb-filter-color: #0a1942;
	--tcd-pb-filter-border: #e2e8f0;
	--tcd-pb-filter-hover-bg: #f0f4f8;
	--tcd-pb-filter-hover-color: #0a1942;
	--tcd-pb-filter-hover-border: #cbd5e1;
	--tcd-pb-filter-active-bg: #0a1942;
	--tcd-pb-filter-active-color: #ffffff;
	--tcd-pb-filter-active-hover-bg: #132a5c;
	--tcd-pb-card-bg: #ffffff;
	--tcd-pb-card-radius: 16px;
	--tcd-pb-card-gap: 24px;
	--tcd-pb-card-padding: 20px;
	--tcd-pb-card-hover-bg: #ffffff;
	--tcd-pb-card-hover-transform: none;
	--tcd-pb-image-radius: 12px;
	--tcd-pb-title-color: #0a1942;
	--tcd-pb-title-hover-color: #e63946;
	--tcd-pb-excerpt-color: #5c6b82;
	--tcd-pb-meta-color: #8a97ab;
	--tcd-pb-readmore-color: #e63946;
	--tcd-pb-readmore-hover-color: #c1121f;
	--tcd-pb-tag-bg: #e63946;
	--tcd-pb-tag-color: #ffffff;
	--tcd-pb-tag-radius: 999px;
	--tcd-pb-page-bg: #ffffff;
	--tcd-pb-page-color: #0a1942;
	--tcd-pb-page-active-bg: #0a1942;
	--tcd-pb-page-active-color: #ffffff;
	--tcd-pb-page-hover-bg: #f0f4f8;
	--tcd-pb-page-size: 36px;
	--tcd-pb-sidebar-bg: #ffffff;
	--tcd-pb-sidebar-radius: 16px;
	--tcd-pb-sidebar-padding: 24px;
	--tcd-pb-sidebar-title-color: #0a1942;
	--tcd-pb-sidebar-text-color: #5c6b82;
	--tcd-pb-social-color: #0a1942;
	--tcd-pb-social-bg: #f0f4f8;
	--tcd-pb-social-hover-bg: #e8edf3;
	--tcd-pb-social-hover-color: #e63946;
	--tcd-pb-featured-title-color: #0a1942;
	--tcd-pb-featured-title-hover-color: #e63946;
	--tcd-pb-transition: 0.25s ease;
	width: 100%;
	box-sizing: border-box;
	background-color: var(--tcd-pb-wrapper-bg);
}

.tcd-pb *,
.tcd-pb *::before,
.tcd-pb *::after {
	box-sizing: border-box;
}

.tcd-pb__headline {
	margin: 0 0 var(--tcd-pb-headline-margin);
	padding: 0;
	text-align: center;
	color: var(--tcd-pb-headline-color);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.85rem;
	font-weight: 600;
}

/* Filters */
.tcd-pb__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--tcd-pb-filter-gap);
	margin: 0 0 var(--tcd-pb-filter-margin);
	padding: 0;
}

.tcd-pb__filter {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	border: 1px solid var(--tcd-pb-filter-border);
	padding: 10px 20px;
	cursor: pointer;
	font: inherit;
	background: var(--tcd-pb-filter-bg);
	color: var(--tcd-pb-filter-color);
	border-radius: var(--tcd-pb-filter-radius);
	transition: background-color var(--tcd-pb-transition), color var(--tcd-pb-transition), border-color var(--tcd-pb-transition), transform var(--tcd-pb-transition);
}

.tcd-pb__filter:not(.is-active):hover {
	background: var(--tcd-pb-filter-hover-bg, var(--tcd-pb-filter-bg));
	color: var(--tcd-pb-filter-hover-color, var(--tcd-pb-filter-color));
	border-color: var(--tcd-pb-filter-hover-border, var(--tcd-pb-filter-border));
}

.tcd-pb__filter.is-active {
	background: var(--tcd-pb-filter-active-bg);
	color: var(--tcd-pb-filter-active-color);
	border-color: var(--tcd-pb-filter-active-bg);
}

.tcd-pb__filter.is-active:hover {
	background: var(--tcd-pb-filter-active-hover-bg, var(--tcd-pb-filter-active-bg));
}

.tcd-pb__filter:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.tcd-pb__filter-icon-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.tcd-pb__filter-icon {
	font-size: 0.85em;
}

.tcd-pb__filter-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	opacity: 0.5;
}

/* Layout */
.tcd-pb__layout {
	display: flex;
	align-items: flex-start;
	gap: var(--tcd-pb-layout-gap);
}

.tcd-pb__main {
	position: relative;
	flex: 1 1 0;
	min-width: 0;
}

.tcd-pb__sidebar {
	flex: 0 0 var(--tcd-pb-sidebar-width);
	width: var(--tcd-pb-sidebar-width);
	display: flex;
	flex-direction: column;
	gap: var(--tcd-pb-card-gap);
}

.tcd-pb__sidebar--standalone {
	width: 100%;
	flex: none;
}

.tcd-pb--sidebar-widget .tcd-pb__sidebar {
	width: 100%;
}

/* Posts */
.tcd-pb__posts {
	display: flex;
	flex-direction: column;
	gap: var(--tcd-pb-card-gap);
}

.tcd-pb__grid {
	display: grid;
	grid-template-columns: repeat(var(--tcd-pb-grid-columns), minmax(0, 1fr));
	gap: var(--tcd-pb-card-gap);
}

.tcd-pb__card {
	background: var(--tcd-pb-card-bg);
	border-radius: var(--tcd-pb-card-radius);
	overflow: hidden;
	transition: background-color var(--tcd-pb-transition), box-shadow var(--tcd-pb-transition), transform var(--tcd-pb-transition);
}

.tcd-pb__card:hover {
	background: var(--tcd-pb-card-hover-bg, var(--tcd-pb-card-bg));
	transform: var(--tcd-pb-card-hover-transform-value, none);
}

.tcd-pb__card--horizontal {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 0;
}

.tcd-pb__card--vertical {
	display: flex;
	flex-direction: column;
}

.tcd-pb__card-media {
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
}

.tcd-pb__card--horizontal .tcd-pb__card-media {
	min-height: 220px;
}

.tcd-pb__card--vertical .tcd-pb__card-media {
	aspect-ratio: 16 / 10;
}

.tcd-pb__card-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--tcd-pb-image-radius);
}

.tcd-pb__card--horizontal .tcd-pb__card-img {
	height: 100%;
	min-height: 220px;
	border-radius: var(--tcd-pb-image-radius) 0 0 var(--tcd-pb-image-radius);
}

.tcd-pb__card--vertical .tcd-pb__card-img {
	border-radius: var(--tcd-pb-image-radius) var(--tcd-pb-image-radius) 0 0;
}

.tcd-pb__card-img--placeholder {
	background: linear-gradient(135deg, #dce3ef 0%, #c5d0e0 100%);
}

.tcd-pb__card-body {
	padding: var(--tcd-pb-card-padding);
}

.tcd-pb__card-title {
	margin: 0 0 10px;
	font-size: 1.15rem;
	line-height: 1.35;
}

.tcd-pb__card-title a {
	color: var(--tcd-pb-title-color);
	text-decoration: none;
	transition: color var(--tcd-pb-transition);
}

.tcd-pb__card-title a:hover {
	color: var(--tcd-pb-title-hover-color, var(--tcd-pb-title-color));
}

.tcd-pb__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin-bottom: 10px;
	color: var(--tcd-pb-meta-color);
	font-size: 0.85rem;
}

.tcd-pb__meta-sep {
	opacity: 0.6;
}

.tcd-pb__excerpt {
	margin: 0 0 12px;
	color: var(--tcd-pb-excerpt-color);
	font-size: 0.95rem;
	line-height: 1.6;
}

.tcd-pb__read-more {
	display: inline-block;
	color: var(--tcd-pb-readmore-color);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.9rem;
	transition: color var(--tcd-pb-transition);
}

.tcd-pb__read-more:hover {
	color: var(--tcd-pb-readmore-hover-color, var(--tcd-pb-readmore-color));
}

/* Category tag */
.tcd-pb__tag {
	position: absolute;
	z-index: 2;
	display: inline-block;
	padding: 5px 12px;
	background: var(--tcd-pb-tag-bg);
	color: var(--tcd-pb-tag-color);
	border-radius: var(--tcd-pb-tag-radius);
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.2;
}

.tcd-pb__tag--top-left {
	top: 14px;
	left: 14px;
}

.tcd-pb__tag--bottom-left {
	bottom: 14px;
	left: 14px;
}

/* Pagination */
.tcd-pb__pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 32px;
	padding: 0;
}

.tcd-pb__page {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--tcd-pb-page-size);
	height: var(--tcd-pb-page-size);
	margin: 0;
	padding: 0;
	border: 1px solid #e2e8f0;
	border-radius: 50%;
	cursor: pointer;
	font: inherit;
	font-size: 0.85rem;
	background: var(--tcd-pb-page-bg);
	color: var(--tcd-pb-page-color);
	transition: background-color var(--tcd-pb-transition), color var(--tcd-pb-transition), border-color var(--tcd-pb-transition);
}

.tcd-pb__page:not(.is-active):hover {
	background: var(--tcd-pb-page-hover-bg, var(--tcd-pb-page-bg));
}

.tcd-pb__page.is-active {
	background: var(--tcd-pb-page-active-bg);
	color: var(--tcd-pb-page-active-color);
	border-color: var(--tcd-pb-page-active-bg);
}

.tcd-pb__page:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Loader */
.tcd-pb__loader {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.65);
	z-index: 5;
}

.tcd-pb__loader[hidden] {
	display: none;
}

.tcd-pb__loader-spinner {
	width: 36px;
	height: 36px;
	border: 3px solid #e2e8f0;
	border-top-color: #0a1942;
	border-radius: 50%;
	animation: tcd-pb-spin 0.7s linear infinite;
}

@keyframes tcd-pb-spin {
	to {
		transform: rotate(360deg);
	}
}

.tcd-pb__empty {
	padding: 40px 20px;
	text-align: center;
	color: var(--tcd-pb-excerpt-color);
}

.tcd-pb.is-loading .tcd-pb__main-inner {
	opacity: 0.5;
	pointer-events: none;
}

/* Sidebar */
.tcd-pb__widget {
	background: var(--tcd-pb-sidebar-bg);
	border-radius: var(--tcd-pb-sidebar-radius);
	padding: var(--tcd-pb-sidebar-padding);
}

.tcd-pb__widget-title {
	margin: 0 0 16px;
	color: var(--tcd-pb-sidebar-title-color);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.tcd-pb__about {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.tcd-pb__about-header {
	display: flex;
	align-items: var(--tcd-pb-about-header-align, center);
	gap: var(--tcd-pb-about-header-gap, 12px);
	width: 100%;
}

.tcd-pb__about-logo {
	flex: 0 0 var(--tcd-pb-about-logo-size, 44px);
	width: var(--tcd-pb-about-logo-size, 44px);
	height: var(--tcd-pb-about-logo-size, 44px);
	border-radius: var(--tcd-pb-about-logo-radius, 50%);
	overflow: hidden;
	background: #f0f4f8;
}

.tcd-pb__about-logo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tcd-pb__about-brand {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	justify-content: center;
	gap: var(--tcd-pb-about-brand-gap, 2px);
	min-width: 0;
}

.tcd-pb__about-name {
	display: block;
	color: var(--tcd-pb-about-name-color, var(--tcd-pb-sidebar-title-color));
	font-size: var(--tcd-pb-about-name-size, 1rem);
	margin: 0;
}

.tcd-pb__about-subtitle {
	display: block;
	color: var(--tcd-pb-about-subtitle-color, var(--tcd-pb-meta-color));
	font-size: var(--tcd-pb-about-subtitle-size, 0.7rem);
	font-weight: 600;
	letter-spacing: 0.05em;
	margin: 0;
}

.tcd-pb__about-desc {
	margin: 0;
	color: var(--tcd-pb-sidebar-text-color);
	font-size: 0.9rem;
	line-height: 1.55;
}

.tcd-pb__social {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 4px;
}

.tcd-pb__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: var(--tcd-pb-social-bg, #f0f4f8);
	border-radius: 8px;
	color: var(--tcd-pb-social-color);
	text-decoration: none;
	font-size: 0.95rem;
	line-height: 1;
	transition: background-color var(--tcd-pb-transition), color var(--tcd-pb-transition);
}

.tcd-pb__social-link:hover {
	background: var(--tcd-pb-social-hover-bg, var(--tcd-pb-social-bg, #f0f4f8));
	color: var(--tcd-pb-social-hover-color, var(--tcd-pb-social-color));
}

.tcd-pb__social-icon {
	display: block;
	width: 1em;
	height: 1em;
	font-size: inherit;
	line-height: 1;
}

/* Featured */
.tcd-pb__featured-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.tcd-pb__featured-item {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

.tcd-pb__featured-thumb {
	flex: 0 0 64px;
	width: 64px;
	height: 64px;
	border-radius: 10px;
	overflow: hidden;
	display: block;
}

.tcd-pb__featured-thumb .tcd-pb__card-img,
.tcd-pb__featured-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 10px;
}

.tcd-pb__featured-body {
	flex: 1;
	min-width: 0;
}

.tcd-pb__featured-date {
	display: block;
	color: var(--tcd-pb-meta-color);
	font-size: 0.75rem;
	margin-bottom: 4px;
}

.tcd-pb__featured-title {
	display: block;
	color: var(--tcd-pb-featured-title-color);
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.4;
	transition: color var(--tcd-pb-transition);
}

.tcd-pb__featured-title:hover {
	color: var(--tcd-pb-featured-title-hover-color, var(--tcd-pb-featured-title-color));
}

/* Technologies */
.tcd-pb__tech-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.tcd-pb__tech-item {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

.tcd-pb__tech-icon {
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	color: #ffffff;
	font-size: 1rem;
}

.tcd-pb__tech-body {
	flex: 1;
	min-width: 0;
}

.tcd-pb__tech-name {
	display: block;
	color: var(--tcd-pb-sidebar-title-color);
	font-size: 0.9rem;
	margin-bottom: 2px;
}

.tcd-pb__tech-desc {
	display: block;
	color: var(--tcd-pb-sidebar-text-color);
	font-size: 0.8rem;
	line-height: 1.4;
}

/* Responsive */
@media (max-width: 1024px) {
	.tcd-pb__layout {
		flex-direction: column;
	}

	.tcd-pb__sidebar {
		flex: none;
		width: 100%;
	}
}

@media (max-width: 767px) {
	.tcd-pb__card--horizontal {
		grid-template-columns: 1fr;
	}

	.tcd-pb__card--horizontal .tcd-pb__card-img {
		min-height: 180px;
		border-radius: var(--tcd-pb-image-radius) var(--tcd-pb-image-radius) 0 0;
	}

	.tcd-pb__grid {
		grid-template-columns: 1fr;
	}

	.tcd-pb__filters {
		justify-content: flex-start;
		overflow-x: auto;
		flex-wrap: nowrap;
		padding-bottom: 4px;
		-webkit-overflow-scrolling: touch;
	}
}
