/* Passmasters Assistant — Blog & Guides UX
   Applies to: single blog posts, category archives, and the blog index.
   Goals: comfortable reading width, clear hierarchy, tidy lists,
   clean archive cards instead of full-post columns. */

/* =====================================================================
   1. SINGLE POSTS — a comfortable reading experience
   ===================================================================== */

/* Center the article at a readable measure and retire the sidebar */
body.single-post #left-area {
	width: 100% !important;
	max-width: 780px;
	margin: 0 auto;
	padding: 0 20px !important;
	float: none !important;
}
body.single-post #sidebar { display: none !important; }
body.single-post #main-content .container:before { display: none !important; }
body.single-post #main-content .container { padding-top: 40px; }

/* Title */
body.single-post .entry-title {
	font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif !important;
	font-size: clamp(30px, 4.5vw, 44px) !important;
	font-weight: 900 !important;
	line-height: 1.12 !important;
	letter-spacing: -0.02em;
	color: #171717 !important;
	margin-bottom: 14px !important;
}
body.single-post .post-meta {
	font-size: 13.5px !important;
	color: #7a807b !important;
	margin-bottom: 28px !important;
}

/* Body typography */
body.single-post .entry-content {
	font-size: 17.5px;
	line-height: 1.75;
	color: #333834;
}
body.single-post .entry-content p { margin-bottom: 1.35em; }

/* Headings with breathing room and clear hierarchy */
body.single-post .entry-content h2,
body.single-post .entry-content h3,
body.single-post .entry-content h4 {
	font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif !important;
	font-weight: 800 !important;
	color: #171717 !important;
	letter-spacing: -0.015em;
	line-height: 1.25 !important;
	margin: 1.9em 0 0.65em !important;
	padding: 0 !important;
}
body.single-post .entry-content h2 {
	font-size: 28px !important;
	padding-bottom: 10px !important;
	border-bottom: 3px solid #69be28;
	display: inline-block;
}
body.single-post .entry-content h3 { font-size: 22px !important; }
body.single-post .entry-content h4 { font-size: 18px !important; }

/* Lists: fix cramped/broken spacing, style markers on-brand */
body.single-post .entry-content ul,
body.single-post .entry-content ol {
	margin: 0 0 1.5em;
	padding-left: 1.5em;
	line-height: 1.7;
}
body.single-post .entry-content li { margin-bottom: 0.55em; padding-left: 4px; }
body.single-post .entry-content li::marker { color: #69be28; font-weight: 800; }
body.single-post .entry-content li > ul,
body.single-post .entry-content li > ol { margin: 0.55em 0 0; }

/* Links */
body.single-post .entry-content a {
	color: #4a8c1c;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: rgba(105, 190, 40, 0.45);
	text-underline-offset: 3px;
	transition: text-decoration-color 0.15s ease;
}
body.single-post .entry-content a:hover { text-decoration-color: #69be28; }

/* Images and embeds */
body.single-post .entry-content img {
	border-radius: 12px;
	height: auto;
	max-width: 100%;
}

/* Blockquotes as callouts */
body.single-post .entry-content blockquote {
	margin: 1.8em 0;
	padding: 18px 24px;
	border-left: 5px solid #69be28 !important;
	border-radius: 0 12px 12px 0;
	background: #f4f7f1;
	font-style: normal;
	color: #333834;
}
body.single-post .entry-content blockquote p:last-child { margin-bottom: 0; }

/* Tables that don't overflow */
body.single-post .entry-content table {
	width: 100%;
	margin: 1.6em 0;
	border-collapse: collapse;
	font-size: 15.5px;
	display: block;
	overflow-x: auto;
}
body.single-post .entry-content th,
body.single-post .entry-content td {
	padding: 10px 14px;
	border: 1px solid #e1e7dd;
	text-align: left;
}
body.single-post .entry-content th {
	background: #171717;
	color: #fff;
	font-family: Montserrat, Arial, sans-serif;
	font-size: 13px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
body.single-post .entry-content tr:nth-child(even) td { background: #f7f9f5; }

/* Divider rhythm */
body.single-post .entry-content hr {
	margin: 2.4em 0;
	border: 0;
	border-top: 1px solid #e1e7dd;
}

/* =====================================================================
   2. ARCHIVES & BLOG INDEX — cards, not walls of text
   ===================================================================== */

/* Card shell (covers theme archives and Divi blog modules) */
body.archive #left-area .et_pb_post,
body.blog #left-area .et_pb_post,
.et_pb_blog_grid .et_pb_post {
	background: #fff;
	border: 1px solid #e6eae2;
	border-radius: 14px;
	padding: 26px 26px 22px !important;
	margin-bottom: 28px !important;
	box-shadow: 0 6px 22px rgba(20, 35, 10, 0.05);
	transition: box-shadow 0.18s ease, transform 0.18s ease;
}
body.archive #left-area .et_pb_post:hover,
body.blog #left-area .et_pb_post:hover,
.et_pb_blog_grid .et_pb_post:hover {
	box-shadow: 0 14px 34px rgba(20, 35, 10, 0.11);
	transform: translateY(-3px);
}

/* Card titles: clear, clickable, comfortably sized */
body.archive .et_pb_post .entry-title,
body.blog .et_pb_post .entry-title,
.et_pb_blog_grid .et_pb_post .entry-title {
	font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif !important;
	font-size: 21px !important;
	font-weight: 800 !important;
	line-height: 1.28 !important;
	letter-spacing: -0.01em;
	margin-bottom: 10px !important;
}
body.archive .et_pb_post .entry-title a,
body.blog .et_pb_post .entry-title a,
.et_pb_blog_grid .et_pb_post .entry-title a { color: #171717 !important; }
body.archive .et_pb_post .entry-title a:hover,
body.blog .et_pb_post .entry-title a:hover,
.et_pb_blog_grid .et_pb_post .entry-title a:hover { color: #4a8c1c !important; }

/* THE KEY FIX: clamp full-content dumps to a short teaser */
body.archive .et_pb_post .entry-content,
body.blog .et_pb_post .entry-content,
.et_pb_blog_grid .et_pb_post .post-content,
.et_pb_blog_grid .et_pb_post .post-content-inner {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 15px !important;
	line-height: 1.65 !important;
	color: #565c57 !important;
	max-height: 7.2em;
}
/* Neutralise headings/list styling inside clamped teasers so they read as plain text */
body.archive .et_pb_post .entry-content h1,
body.archive .et_pb_post .entry-content h2,
body.archive .et_pb_post .entry-content h3,
body.blog .et_pb_post .entry-content h1,
body.blog .et_pb_post .entry-content h2,
body.blog .et_pb_post .entry-content h3,
.et_pb_blog_grid .et_pb_post .post-content h1,
.et_pb_blog_grid .et_pb_post .post-content h2,
.et_pb_blog_grid .et_pb_post .post-content h3 {
	font-size: 15px !important;
	font-weight: 400 !important;
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	color: #565c57 !important;
	line-height: inherit !important;
}
/* Hide images/embeds inside teasers (featured image handles visuals) */
body.archive .et_pb_post .entry-content img,
body.blog .et_pb_post .entry-content img,
.et_pb_blog_grid .et_pb_post .post-content img { display: none !important; }

/* Read-more affordance */
body.archive .et_pb_post .entry-content ~ a.more-link,
body.blog .et_pb_post .entry-content ~ a.more-link,
.et_pb_blog_grid .et_pb_post a.more-link {
	display: inline-block;
	margin-top: 12px;
	font-family: Montserrat, Arial, sans-serif;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #4a8c1c !important;
}

/* Featured images */
body.archive .et_pb_post .entry-featured-image-url,
body.blog .et_pb_post .entry-featured-image-url,
.et_pb_blog_grid .et_pb_post .entry-featured-image-url {
	display: block;
	margin: -26px -26px 18px !important;
	border-radius: 14px 14px 0 0;
	overflow: hidden;
}
body.archive .et_pb_post .entry-featured-image-url img,
body.blog .et_pb_post .entry-featured-image-url img,
.et_pb_blog_grid .et_pb_post .entry-featured-image-url img {
	width: 100%;
	height: auto;
	display: block;
}

/* Post meta on cards */
body.archive .et_pb_post .post-meta,
body.blog .et_pb_post .post-meta,
.et_pb_blog_grid .et_pb_post .post-meta {
	font-size: 12.5px !important;
	color: #8a908b !important;
	margin-bottom: 10px !important;
}

/* Archive page title */
body.archive #left-area > h1,
body.archive .et_pb_title_container h1 {
	font-family: Montserrat, Arial, sans-serif !important;
	font-weight: 900 !important;
	letter-spacing: -0.02em;
}

/* =====================================================================
   3. Mobile comfort
   ===================================================================== */
@media (max-width: 768px) {
	body.single-post .entry-content { font-size: 16.5px; }
	body.single-post .entry-title { font-size: 28px !important; }
	body.single-post #main-content .container { padding-top: 24px; }
	body.archive #left-area .et_pb_post,
	body.blog #left-area .et_pb_post,
	.et_pb_blog_grid .et_pb_post { padding: 20px 18px 18px !important; }
}
