/* ============================================================
   THEBEST BLOG SHOWCASE - FINAL
   Desktop: 3 cards
   Tablet: 2 columns
   Mobile: horizontal slider
============================================================ */

.thebest-blog-showcase {
	--tbb-accent: #e65f5a;
	--tbb-text: #171717;
	--tbb-muted: #707780;
	--tbb-bg: #fffaf8;
	--tbb-card-bg: #ffffff;
	--tbb-border: #f0e5e1;
	--tbb-chip-bg: #ffe8e5;

	position: relative;

	/* full viewport background */
	width: 100vw;
	max-width: 100vw;

	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);

	padding: 32px 0 38px;

	background: var(--tbb-bg);

	overflow: hidden;
}


/* Decorative blob */
.thebest-blog-showcase::before {
	content: "";

	position: absolute;

	top: -115px;
	right: -50px;

	width: 480px;
	height: 210px;

	background: rgba(230, 95, 90, 0.07);

	border-radius:
		45% 55% 60% 40%
		/
		60% 40% 55% 45%;

	pointer-events: none;
}


/* ============================================================
   CONTAINER
============================================================ */

.tbb-container {
	position: relative;

	z-index: 2;

	width: calc(100% - 40px);
	max-width: 1380px;

	margin: 0 auto;
}


/* ============================================================
   HEADER
============================================================ */

.tbb-header {
	display: flex;

	align-items: flex-end;

	justify-content: space-between;

	gap: 30px;

	margin-bottom: 22px;
}


.tbb-heading {
	min-width: 0;
}


/* eyebrow */
.tbb-eyebrow {
	display: flex;

	align-items: center;

	gap: 12px;

	margin-bottom: 9px;

	color: var(--tbb-accent);

	font-size: 10px;

	line-height: 1;

	font-weight: 600;

	letter-spacing: 2.4px;
}


.tbb-eyebrow-line {
	display: block;

	width: 34px;
	height: 1px;

	background: var(--tbb-accent);

	opacity: .8;
}


/* Main heading */
.tbb-title {
	display: flex;

	align-items: baseline;

	flex-wrap: wrap;

	gap: 7px;

	margin: 0;

	font-size: clamp(34px, 3vw, 48px);

	line-height: 1.05;

	font-weight: 700;

	letter-spacing: -1px;

	text-transform: none;
}


.tbb-title-main {
	color: var(--tbb-text);
}


.tbb-title-accent {
	color: var(--tbb-accent);
}


/* subtitle */
.tbb-subtitle {
	margin-top: 8px;

	color: var(--tbb-muted);

	font-size: 14px;

	line-height: 1.5;
}


/* view all */
.tbb-view-all {
	display: inline-flex;

	align-items: center;

	gap: 8px;

	flex: 0 0 auto;

	margin-bottom: 2px;

	padding-bottom: 5px;

	border-bottom: 1px solid var(--tbb-accent);

	color: var(--tbb-accent);

	font-size: 13px;

	font-weight: 600;

	text-decoration: none;

	transition: opacity .2s ease;
}


.tbb-view-all:hover {
	color: var(--tbb-accent);

	opacity: .72;
}


.tbb-view-arrow {
	font-size: 17px;

	line-height: 1;
}


/* ============================================================
   POSTS GRID
   DESKTOP = FIXED 3 COLUMNS
============================================================ */

.tbb-posts {
	display: grid;

	grid-template-columns:
		repeat(3, minmax(0, 1fr));

	gap: 18px;

	align-items: stretch;
}


/* ============================================================
   CARD
============================================================ */

.tbb-card {
	display: flex;

	flex-direction: column;

	min-width: 0;

	height: 100%;

	background: var(--tbb-card-bg);

	border: 1px solid var(--tbb-border);

	border-radius: 13px;

	overflow: hidden;

	box-shadow:
		0 5px 18px
		rgba(70, 45, 35, .035);

	transition:
		transform .22s ease,
		box-shadow .22s ease,
		border-color .22s ease;
}


.tbb-card:hover {
	transform: translateY(-3px);

	border-color: #e8d9d4;

	box-shadow:
		0 10px 26px
		rgba(70, 45, 35, .07);
}


/* ============================================================
   IMAGE
============================================================ */

.tbb-image {
	position: relative;

	display: block;

	width: 100%;

	aspect-ratio: 16 / 10;

	overflow: hidden;

	background: #f7efec;
}


.tbb-image img {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;

	transition: transform .35s ease;
}


.tbb-card:hover .tbb-image img {
	transform: scale(1.025);
}


.tbb-no-image {
	position: absolute;

	inset: 0;

	display: flex;

	align-items: center;

	justify-content: center;

	color: #b9aaa5;

	font-size: 11px;

	letter-spacing: 2px;
}


/* ============================================================
   CONTENT
============================================================ */

.tbb-content {
	display: flex;

	flex: 1;

	flex-direction: column;

	padding: 15px 18px 17px;
}


/* category */
.tbb-category {
	display: inline-flex;

	align-self: flex-start;

	margin-bottom: 10px;

	padding: 5px 11px;

	border-radius: 999px;

	background: var(--tbb-chip-bg);

	color: var(--tbb-accent);

	font-size: 9px;

	line-height: 1;

	font-weight: 700;

	text-transform: uppercase;

	letter-spacing: .3px;
}


/* ============================================================
   POST TITLE
============================================================ */

.tbb-post-title {
	margin: 0;

	color: var(--tbb-text);

	font-size: 18px;

	line-height: 1.32;

	font-weight: 700;

	letter-spacing: -.15px;

	display: -webkit-box;

	-webkit-box-orient: vertical;

	-webkit-line-clamp: 2;

	overflow: hidden;

	min-height: calc(1.32em * 2);
}


.tbb-post-title a {
	color: inherit;

	text-decoration: none;
}


.tbb-post-title a:hover {
	color: var(--tbb-accent);
}


/* ============================================================
   EXCERPT
============================================================ */

.tbb-excerpt {
	margin-top: 9px;

	color: var(--tbb-muted);

	font-size: 12.5px;

	line-height: 1.55;

	display: -webkit-box;

	-webkit-box-orient: vertical;

	-webkit-line-clamp: 2;

	overflow: hidden;

	min-height: calc(1.55em * 2);
}


/* ============================================================
   META
============================================================ */

.tbb-meta {
	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: 12px;

	margin-top: auto;

	padding-top: 13px;
}


.tbb-date {
	color: #8b9097;

	font-size: 11px;

	line-height: 1.4;
}


/* arrow */
.tbb-arrow {
	display: inline-flex;

	align-items: center;

	justify-content: center;

	flex: 0 0 auto;

	width: 36px;
	height: 36px;

	border-radius: 50%;

	background: #ffe9e7;

	color: var(--tbb-accent);

	font-size: 16px;

	line-height: 1;

	text-decoration: none;

	transition:
		background .2s ease,
		color .2s ease,
		transform .2s ease;
}


.tbb-arrow:hover {
	background: var(--tbb-accent);

	color: #fff;

	transform: translateX(2px);
}


/* ============================================================
   TABLET
============================================================ */

@media (max-width: 849px) {

	.thebest-blog-showcase {
		padding: 30px 0 34px;
	}


	.tbb-container {
		width: calc(100% - 30px);
	}


	.tbb-posts {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}


	.tbb-title {
		font-size: 36px;
	}


	.tbb-post-title {
		font-size: 17px;
	}

}


/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 549px) {

	.thebest-blog-showcase {
		padding: 24px 0 28px;
	}


	.thebest-blog-showcase::before {
		top: -55px;
		right: -115px;

		width: 320px;
		height: 150px;
	}


	.tbb-container {
		width: 100%;

		padding: 0 15px;
	}


	/* header */
	.tbb-header {
		align-items: flex-end;

		gap: 10px;

		margin-bottom: 15px;
	}


	.tbb-eyebrow {
		gap: 8px;

		margin-bottom: 7px;

		font-size: 8px;

		letter-spacing: 1.6px;
	}


	.tbb-eyebrow-line {
		width: 22px;
	}


	.tbb-title {
		gap: 5px;

		font-size: 29px;

		line-height: 1.05;

		letter-spacing: -.6px;
	}


	.tbb-subtitle {
		margin-top: 6px;

		max-width: 255px;

		font-size: 11px;

		line-height: 1.45;
	}


	.tbb-view-all {
		gap: 4px;

		margin-bottom: 0;

		padding-bottom: 3px;

		font-size: 10px;

		white-space: nowrap;
	}


	.tbb-view-arrow {
		font-size: 14px;
	}


	/* mobile horizontal slider */
	.tbb-posts {
		display: flex;

		flex-wrap: nowrap;

		gap: 11px;

		width: 100%;

		overflow-x: auto;

		overflow-y: hidden;

		padding: 0 1px 8px;

		scroll-snap-type: x mandatory;

		-webkit-overflow-scrolling: touch;

		scrollbar-width: none;
	}


	.tbb-posts::-webkit-scrollbar {
		display: none;
	}


	.tbb-card {
		flex: 0 0 82%;

		width: 82%;

		scroll-snap-align: start;
	}


	.tbb-content {
		padding: 13px 14px 15px;
	}


	.tbb-category {
		margin-bottom: 8px;

		padding: 5px 9px;

		font-size: 8px;
	}


	.tbb-post-title {
		font-size: 16px;

		line-height: 1.35;

		min-height: calc(1.35em * 2);
	}


	.tbb-excerpt {
		margin-top: 7px;

		font-size: 12px;

		line-height: 1.5;

		-webkit-line-clamp: 2;

		min-height: auto;
	}


	.tbb-meta {
		padding-top: 11px;
	}


	.tbb-date {
		font-size: 10px;
	}


	.tbb-arrow {
		width: 34px;
		height: 34px;

		font-size: 15px;
	}

}