/**
 * Responsive single-post layout refinements.
 * Scoped to posts so pages and portfolio templates remain unchanged.
 */

body.single-post {
	overflow-x: clip;
}

.single-post .elementor-element-d29b6eb {
	margin-top: clamp(96px, 10vw, 150px) !important;
	margin-bottom: clamp(96px, 10vw, 150px) !important;
}

.single-post .elementor-element-3cbf641 {
	gap: 24px;
}

.single-post .elementor-element-bf52fd1 .text-h2 {
	font-size: clamp(46px, 5vw, 72px) !important;
	line-height: 1.02 !important;
	letter-spacing: -0.045em;
	text-wrap: balance;
}

/* The theme's wordsUp animation occasionally remains at its hidden start state. */
.single-post .elementor-element-bf52fd1 .anim_word,
.single-post .elementor-element-bf52fd1 .anim_word *,
.single-post .elementor-element-bf52fd1 .anim_word > span {
	opacity: 1 !important;
	visibility: visible !important;
	transform: translate3d(0, 0, 0) !important;
}

.single-post .elementor-element-26e9017 {
	align-items: flex-start !important;
	gap: clamp(48px, 8vw, 112px);
}

.single-post .elementor-element-b68cf27,
.single-post #post-content {
	min-width: 0;
}

.single-post #post-content {
	max-width: 780px;
}

/* The template already prints the post title above the article. */
.single-post #post-content .elementor-widget-container > h1:first-child {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.single-post #post-content h2,
.single-post #post-content h3,
.single-post #post-content h4,
.single-post #post-content h5,
.single-post #post-content h6 {
	letter-spacing: -0.025em;
	text-wrap: balance;
	overflow-wrap: anywhere;
}

.single-post #post-content h2 {
	font-size: clamp(34px, 3.25vw, 50px) !important;
	line-height: 1.12 !important;
	margin: 1.6em 0 0.48em;
}

.single-post #post-content h3 {
	font-size: clamp(25px, 2.15vw, 34px) !important;
	line-height: 1.18 !important;
	margin: 1.45em 0 0.45em;
}

.single-post #post-content h4 {
	font-size: clamp(21px, 1.6vw, 27px) !important;
	line-height: 1.24 !important;
	margin: 1.35em 0 0.4em;
}

.single-post #post-content p,
.single-post #post-content li {
	font-size: clamp(17px, 1.15vw, 19px) !important;
	line-height: 1.72 !important;
}

.single-post #post-content p {
	margin: 0 0 1.35em;
}

.single-post #post-content ul,
.single-post #post-content ol {
	margin: 0 0 1.5em;
	padding-left: 1.35em;
}

.single-post #post-content li + li {
	margin-top: 0.55em;
}

.single-post #post-content a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	overflow-wrap: anywhere;
}

.single-post #post-content img,
.single-post #post-content video,
.single-post #post-content iframe,
.single-post #post-content figure {
	max-width: 100%;
	height: auto;
}

.single-post #post-content table {
	display: block;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-collapse: collapse;
	font-size: 16px;
}

.single-post #post-content th,
.single-post #post-content td {
	min-width: 150px;
	padding: 14px 16px;
	vertical-align: top;
}

.single-post #post-content pre {
	max-width: 100%;
	overflow-x: auto;
	padding: 20px;
	border-radius: 16px;
}

.single-post #post-content blockquote {
	margin: 2em 0;
	padding: 0.2em 0 0.2em clamp(20px, 3vw, 36px);
	border-left: 2px solid currentColor;
}

.single-post .elementor-element-8994c85,
.single-post .elementor-element-8994c85 img {
	width: 100% !important;
}

.single-post .elementor-element-7f26a3d {
	gap: clamp(28px, 5vw, 72px);
}

.single-post .elementor-element-9c80f72 {
	min-width: 0;
}

.single-post .elementor-element-9c80f72 .text-wrapper,
.single-post .elementor-element-9c80f72 .text-wrapper > * {
	max-width: 100%;
}

.single-post .grid--posts--wrapper {
	gap: clamp(28px, 3vw, 48px) !important;
}

.single-post .grid--post--item,
.single-post .grid--post--item article {
	min-width: 0;
}

.single-post .grid--post--item .thmb,
.single-post .grid--post--item .post-thumbnail.single-post-image,
.single-post .grid--post--item .post-thumbnail {
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.single-post .grid--post--item .post-thumbnail img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}

.single-post .grid--post--item .post-title {
	font-size: clamp(24px, 2.2vw, 34px) !important;
	line-height: 1.15 !important;
	letter-spacing: -0.025em;
	text-wrap: balance;
	overflow-wrap: anywhere;
}

.single-post a,
.single-post button,
.single-post input[type="submit"] {
	touch-action: manipulation;
}

@media (max-width: 1023px) {
	.single-post .elementor-element-d29b6eb {
		margin-top: 104px !important;
		margin-bottom: 96px !important;
	}

	.single-post .elementor-element-26e9017 {
		flex-direction: column !important;
		gap: 44px;
	}

	.single-post .elementor-element-b68cf27,
	.single-post #post-content {
		position: relative !important;
		top: auto !important;
		left: auto !important;
		right: auto !important;
		bottom: auto !important;
		width: 100% !important;
		max-width: none !important;
		transform: none !important;
	}

	.single-post .elementor-element-7f26a3d {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.single-post .elementor-element-888b99d,
	.single-post .elementor-element-9c80f72 {
		width: 100% !important;
	}

	.single-post .grid--posts--wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	.single-post .elementor-element-d29b6eb {
		margin: 92px 0 72px !important;
	}

	.single-post .elementor-element-3cbf641 {
		gap: 18px;
	}

	.single-post .elementor-element-bf52fd1 .text-h2 {
		font-size: clamp(34px, 10.4vw, 44px) !important;
		line-height: 1.04 !important;
		letter-spacing: -0.04em;
	}

	.single-post .elementor-element-26e9017 {
		margin-top: 34px !important;
		gap: 38px;
	}

	.single-post .elementor-element-b68cf27 > .elementor-element:not(:first-child) {
		min-height: 44px;
		align-items: center;
	}

	.single-post #post-content h2 {
		font-size: clamp(28px, 8.4vw, 34px) !important;
		line-height: 1.14 !important;
		margin-top: 1.55em;
	}

	.single-post #post-content h3 {
		font-size: clamp(22px, 6.6vw, 27px) !important;
		line-height: 1.2 !important;
	}

	.single-post #post-content h4 {
		font-size: 21px !important;
	}

	.single-post #post-content p,
	.single-post #post-content li {
		font-size: 17px !important;
		line-height: 1.68 !important;
	}

	.single-post #post-content table {
		font-size: 15px;
	}

	.single-post #post-content th,
	.single-post #post-content td {
		min-width: 138px;
		padding: 12px;
	}

	.single-post .elementor-element-7f26a3d {
		margin-top: 72px !important;
	}

	.single-post .elementor-element-9c80f72 {
		padding: 24px !important;
		border-radius: 24px !important;
	}

	.single-post .grid--posts--wrapper {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 44px !important;
	}

	.single-post .grid--post--item,
	.single-post .grid--post--item article {
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
	}

	.single-post .grid--post--item .post-details {
		height: auto !important;
		min-height: 0 !important;
		padding-bottom: 8px;
	}

	.single-post .grid--post--item .post-title {
		font-size: 26px !important;
		line-height: 1.17 !important;
	}

	.single-post .elementor-element-f12d355 {
		margin-bottom: 96px !important;
	}
}
