/* ==========================================================================
   Blogs Archive Listing
   ========================================================================== */

.blogs-listing {
	--blogs-gold: #c39231;
	--blogs-green: #006738;
	--blogs-text: #ffffff;
	--blogs-background: #ffffff;

	position: relative;
	width: 100%;
	overflow: hidden;
	padding: 48px 0 76px;
	background-color: var(--blogs-background);
}

.blogs-listing__container {
	width: min(calc(100% - 80px), 1350px);
	margin-inline: auto;
}

/* ==========================================================================
   Heading
   ========================================================================== */

.blogs-listing__title {
	margin: 0 0 38px;
	color: #303030;
	font-size: clamp(32px, 2.6vw, 44px);
	font-weight: 700;
	line-height: 1.15;
	text-align: center;
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition:
		opacity 700ms ease,
		transform 850ms cubic-bezier(0.22, 1, 0.36, 1);
}

.blogs-listing__title::after {
	content: "";
	display: block;
	width: 62px;
	height: 2px;
	margin: 12px auto 0;
	background-color: var(--blogs-gold);
	transform: scaleX(0);
	transform-origin: center;
	transition:
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1) 250ms;
}

.blogs-listing.is-blogs-visible
.blogs-listing__title {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.blogs-listing.is-blogs-visible
.blogs-listing__title::after {
	transform: scaleX(1);
}

/* ==========================================================================
   Three-column grid
   ========================================================================== */

.blogs-listing__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 48px 28px;
}

/* ==========================================================================
   Blog card
   ========================================================================== */

.blog-card {
	min-width: 0;
	opacity: 0;
	transform: translate3d(0, 38px, 0) scale(0.98);
	transition:
		opacity 700ms ease,
		transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay:
		calc(100ms + ((var(--blog-index, 0) % 9) * 65ms));
}

.blogs-listing.is-blogs-visible
.blog-card:not([hidden]) {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}

.blog-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.blog-card__media {
	position: relative;
	width: 100%;
	aspect-ratio: 750 / 447;
	margin: 0;
	overflow: hidden;
	border-radius: 18px;
	background-color: #d8d8d8;
	box-shadow: 0 18px 35px rgb(0 0 0 / 10%);
	isolation: isolate;
}

.blog-card__image,
.blog-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition:
		transform 800ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 500ms ease;
}

.blog-card__placeholder {
	background:
		linear-gradient(
			135deg,
			#d4d4d4,
			#eeeeee
		);
}

.blog-card__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(
			to top,
			rgb(0 0 0 / 82%) 0%,
			rgb(0 0 0 / 34%) 47%,
			rgb(0 0 0 / 6%) 100%
		);
	pointer-events: none;
}

.blog-card__shine {
	position: absolute;
	top: -40%;
	left: -70%;
	z-index: 2;
	width: 44%;
	height: 190%;
	background:
		linear-gradient(
			90deg,
			transparent,
			rgb(255 255 255 / 22%),
			transparent
		);
	transform: rotate(18deg);
	transition:
		left 850ms cubic-bezier(0.22, 1, 0.36, 1);
	pointer-events: none;
}

.blog-card__content {
	position: absolute;
	right: 150px;
	bottom: 18px;
	left: 28px;
	z-index: 3;
	color: var(--blogs-text);
}

.blog-card__title {
	display: -webkit-box;
	margin: 0 0 4px;
	overflow: hidden;
	color: #ffffff;
	font-size: clamp(17px, 1.15vw, 21px);
	font-weight: 700;
	line-height: 1.12;
	text-transform: uppercase;
	text-shadow: 0 2px 8px rgb(0 0 0 / 50%);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.blog-card__date {
	display: block;
	color: #ffffff;
	font-size: clamp(13px, 0.9vw, 16px);
	font-weight: 500;
	line-height: 1.2;
	text-shadow: 0 2px 7px rgb(0 0 0 / 55%);
}

/* ==========================================================================
   Read More badge
   ========================================================================== */

.blog-card__read-more {
	position: absolute;
	right: 16px;
	bottom: 15px;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 105px;
	min-height: 38px;
	padding: 8px 15px;
	border: 1px solid var(--blogs-gold);
	border-radius: 999px;
	background-color: var(--blogs-gold);
	color: #ffffff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	transition:
		background-color 250ms ease,
		border-color 250ms ease,
		transform 250ms ease;
}

/* ==========================================================================
   Hover effect
   ========================================================================== */

@media (hover: hover) and (pointer: fine) {
	.blog-card__link:hover
	.blog-card__image {
		filter: brightness(1.04);
		transform: scale(1.055);
	}

	.blog-card__link:hover
	.blog-card__shine {
		left: 130%;
	}

	.blog-card__link:hover
	.blog-card__read-more {
		border-color: var(--blogs-green);
		background-color: var(--blogs-green);
		transform: translateY(-2px);
	}
}

.blog-card__link:focus-visible {
	outline: 3px solid rgb(195 146 49 / 45%);
	outline-offset: 5px;
	border-radius: 18px;
}

/* ==========================================================================
   Revealed cards
   ========================================================================== */

.blog-card.is-blog-revealing {
	animation:
		blog-card-reveal
		800ms cubic-bezier(0.22, 1, 0.36, 1)
		var(--blog-reveal-delay, 0ms)
		both;
}

@keyframes blog-card-reveal {
	from {
		opacity: 0;
		transform: translate3d(0, 38px, 0) scale(0.98);
	}

	to {
		opacity: 1;
		transform: translate3d(0, 0, 0) scale(1);
	}
}

/* ==========================================================================
   View More button
   ========================================================================== */

.blogs-listing__button-wrap {
	display: flex;
	justify-content: center;
	margin-top: 48px;
	opacity: 0;
	transform: translate3d(0, 20px, 0);
	transition:
		opacity 650ms ease 550ms,
		transform 750ms cubic-bezier(0.22, 1, 0.36, 1) 550ms;
}

.blogs-listing.is-blogs-visible
.blogs-listing__button-wrap {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.blogs-listing__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 175px;
	min-height: 50px;
	padding: 12px 28px;
	border: 1px solid var(--blogs-gold);
	border-radius: 0;
	background-color: var(--blogs-gold);
	color: #ffffff;
	font-family: inherit;
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
	transition:
		background-color 250ms ease,
		border-color 250ms ease,
		transform 250ms ease,
		box-shadow 250ms ease;
}

.blogs-listing__button:hover {
	border-color: var(--blogs-green);
	background-color: var(--blogs-green);
	box-shadow: 0 12px 25px rgb(0 0 0 / 14%);
	transform: translateY(-3px);
}

.blogs-listing__button:focus-visible {
	outline: 3px solid rgb(195 146 49 / 35%);
	outline-offset: 4px;
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1000px) {
	.blogs-listing__container {
		width: calc(100% - 50px);
	}

	.blogs-listing__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 22px;
	}

	.blog-card__content {
		right: 140px;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.blogs-listing {
		padding: 42px 0 58px;
	}

	.blogs-listing__container {
		width: calc(100% - 36px);
	}

	.blogs-listing__title {
		margin-bottom: 30px;
		font-size: 31px;
	}

	.blogs-listing__title::after {
		width: 48px;
		margin-top: 9px;
	}

	.blogs-listing__grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.blog-card__media {
		aspect-ratio: 4 / 3;
		border-radius: 15px;
	}

	.blog-card__content {
		right: 125px;
		bottom: 16px;
		left: 18px;
	}

	.blog-card__title {
		font-size: 17px;
	}

	.blog-card__date {
		font-size: 13px;
	}

	.blog-card__read-more {
		right: 12px;
		bottom: 13px;
		min-width: 98px;
		min-height: 36px;
		padding-inline: 12px;
		font-size: 13px;
	}

	.blogs-listing__button-wrap {
		margin-top: 34px;
	}

	.blogs-listing__button {
		width: 100%;
		min-height: 54px;
	}
}

/* ==========================================================================
   Small mobile
   ========================================================================== */

@media (max-width: 420px) {
	.blog-card__content {
		right: 18px;
		bottom: 62px;
	}

	.blog-card__read-more {
		right: auto;
		bottom: 14px;
		left: 18px;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.blogs-listing__title,
	.blog-card,
	.blogs-listing__button-wrap {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
		animation: none !important;
	}

	.blogs-listing__title::after {
		transform: scaleX(1) !important;
		transition: none !important;
	}
}
/* ==========================================================================
   Single Blog Page
   ========================================================================== */

.single-blog {
	--single-blog-gold: #c3912f;
	--single-blog-text: #343434;
	--single-blog-muted: #5f5f5f;
	--single-blog-heading-bg: #a8a6a6;

	width: 100%;
	background-color: #ffffff;
	color: var(--single-blog-text);
}

/* ==========================================================================
   Top title banner
   ========================================================================== */

.single-blog__hero {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 96px;
	padding: 16px 30px;
	background-color: var(--single-blog-heading-bg);
	box-sizing: border-box;
}

.single-blog__hero-inner {
	width: min(100%, 1180px);
	margin-inline: auto;
	text-align: center;
}

.single-blog__title {
	max-width: 850px;
	margin: 0 auto;
	color: #ffffff;
	font-size: clamp(26px, 2.2vw, 40px);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: -0.015em;
}

/* ==========================================================================
   Main two-column layout
   ========================================================================== */

.single-blog__container {
	display: grid;
	grid-template-columns:
		minmax(0, 2.1fr)
		minmax(260px, 0.95fr);
	align-items: start;
	gap: 34px;
	width: min(calc(100% - 100px), 1250px);
	margin-inline: auto;
	padding: 42px 0 78px;
}

/* ==========================================================================
   Main article column
   ========================================================================== */

.single-blog__main {
	min-width: 0;
}

.single-blog__featured-media {
	width: 100%;
	margin: 0 0 22px;
	overflow: hidden;
	background-color: #eeeeee;
}

.single-blog__featured-image {
	display: block;
	width: 100%;
	height: auto;
	max-height: 520px;
	object-fit: cover;
	object-position: center;
}

.single-blog__meta {
	margin: 0 0 17px;
}

.single-blog__date {
	color: var(--single-blog-gold);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
}

/* ==========================================================================
   WordPress article content
   ========================================================================== */

.single-blog__content {
	color: var(--single-blog-text);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.48;
}

.single-blog__content > *:first-child {
	margin-top: 0;
}

.single-blog__content > *:last-child {
	margin-bottom: 0;
}

.single-blog__content h2,
.single-blog__content h3,
.single-blog__content h4 {
	margin: 27px 0 9px;
	color: #292929;
	font-weight: 700;
	line-height: 1.2;
}

.single-blog__content h2 {
	font-size: 25px;
}

.single-blog__content h3 {
	font-size: 20px;
}

.single-blog__content h4 {
	font-size: 17px;
}

.single-blog__content p {
	margin: 0 0 18px;
}

.single-blog__content ul,
.single-blog__content ol {
	margin: 0 0 20px;
	padding-left: 24px;
}

.single-blog__content li {
	margin-bottom: 7px;
}

.single-blog__content a {
	color: var(--single-blog-gold);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.single-blog__content strong {
	font-weight: 700;
}

.single-blog__content img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 26px auto;
}

.single-blog__content blockquote {
	margin: 26px 0;
	padding: 18px 24px;
	border-left: 4px solid var(--single-blog-gold);
	background-color: #f5f5f5;
}

/* ==========================================================================
   Sidebar
   ========================================================================== */

.single-blog__sidebar {
	min-width: 0;
}

.single-blog__sidebar-title {
	margin: 0 0 18px;
	color: var(--single-blog-gold);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
}

.single-blog__related-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 15px;
}

/* ==========================================================================
   Sidebar blog card
   ========================================================================== */

.single-blog__related-card {
	min-width: 0;
	margin: 0;
}

.single-blog__related-link {
	display: block;
	color: inherit;
	text-decoration: none;
	transition:
		transform 250ms ease,
		box-shadow 250ms ease;
}

.single-blog__related-media {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 8.7;
	margin: 0;
	overflow: hidden;
	background-color: #dedede;
}

.single-blog__related-image,
.single-blog__related-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition:
		transform 650ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 300ms ease;
}

.single-blog__related-placeholder {
	background:
		linear-gradient(
			135deg,
			#d0d0d0,
			#eeeeee
		);
}

.single-blog__related-content {
	min-height: 52px;
	padding: 8px 10px 9px;
	background-color: var(--single-blog-gold);
	box-sizing: border-box;
}

.single-blog__related-title {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	color: #ffffff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

/* ==========================================================================
   Sidebar hover
   ========================================================================== */

@media (hover: hover) and (pointer: fine) {
	.single-blog__related-link:hover {
		box-shadow: 0 14px 30px rgb(0 0 0 / 13%);
		transform: translateY(-3px);
	}

	.single-blog__related-link:hover
	.single-blog__related-image {
		filter: brightness(1.04);
		transform: scale(1.045);
	}
}

.single-blog__related-link:focus-visible {
	outline: 3px solid rgb(195 145 47 / 35%);
	outline-offset: 4px;
}

/* ==========================================================================
   Large desktop
   ========================================================================== */

@media (max-width: 1400px) {
	.single-blog__container {
		width: min(calc(100% - 80px), 1160px);
		gap: 30px;
	}

	.single-blog__featured-image {
		max-height: 480px;
	}
}

/* ==========================================================================
   Medium desktop
   ========================================================================== */

@media (max-width: 1100px) {
	.single-blog__container {
		grid-template-columns:
			minmax(0, 1.9fr)
			minmax(240px, 0.85fr);
		width: calc(100% - 60px);
		gap: 26px;
	}

	.single-blog__content {
		font-size: 15px;
	}

	.single-blog__related-title {
		font-size: 11px;
	}
}

/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 850px) {
	.single-blog__hero {
		min-height: 88px;
	}

	.single-blog__container {
		grid-template-columns: 1fr;
		width: min(calc(100% - 48px), 720px);
		padding: 38px 0 62px;
	}

	.single-blog__sidebar {
		margin-top: 18px;
	}

	.single-blog__sidebar-title {
		margin-bottom: 22px;
		font-size: 24px;
		text-align: left;
	}

	.single-blog__related-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}

	.single-blog__related-title {
		font-size: 13px;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.single-blog__hero {
		min-height: 82px;
		padding: 14px 18px;
	}

	.single-blog__title {
		font-size: clamp(23px, 7vw, 31px);
	}

	.single-blog__container {
		width: calc(100% - 32px);
		padding: 30px 0 50px;
	}

	.single-blog__featured-media {
		margin-bottom: 18px;
	}

	.single-blog__featured-image {
		max-height: none;
	}

	.single-blog__content {
		font-size: 16px;
		line-height: 1.55;
	}

	.single-blog__content h2 {
		font-size: 23px;
	}

	.single-blog__content h3 {
		font-size: 19px;
	}

	.single-blog__related-list {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.single-blog__related-media {
		aspect-ratio: 16 / 9;
	}

	.single-blog__related-title {
		font-size: 14px;
	}
}