/* Lindus Site Functions — Theme Builder templates for posts, portfolio, gallery items, archives, search and 404
 * (build/single_post.py … build/not_found.py; specs build/specs/template-*.md, templates-shared.md).
 *   1. breakpoint variables at the theme's xl (1200) / lg (992) widths
 *   2. post body typography (classic editor HTML in the Post Content widget) — scoped to the global class
 *      lindus-post-body, also used by the page-sections row HTML (.lsf-prose)
 *   3. post meta, blog cards (thumbnail, pills), pagination, search form
 *   4. page-sections rows ([lindus_page_sections]) */

/* ---- 1. Breakpoint variables ---- */
:root {
	--lsf-xl-main-w: 66.6667%;      /* #primary.col-xl-8 */
	--lsf-xl-side-w: 33.3333%;      /* #secondary.col-xl-4 */
	--lsf-xl-post-pl: 45px;         /* post: #main 15 + article 15 + #primary 15 */
	--lsf-xl-cpt-pl: 30px;          /* portfolio / gallery: article 15 + #primary 15 */
	--lsf-xl-sticky: sticky;        /* sidebar form sticky >= 992 (stacked below 1200 anyway) */
	--lsf-lg-card-dir: row-reverse; /* blog card: image right >= 992 */
	--lsf-lg-card-thumb-w: 33.3333%;
}
@media (max-width: 1199px) {
	:root {
		--lsf-xl-main-w: 100%;
		--lsf-xl-side-w: 100%;
		--lsf-xl-post-pl: 30px;
		--lsf-xl-cpt-pl: 15px;
	}
}
@media (max-width: 991px) {
	:root {
		--lsf-xl-sticky: relative;
		--lsf-lg-card-dir: column;
		--lsf-lg-card-thumb-w: 100%;
	}
}

/* ---- 2. Post body (theme #content / .entry-content-single rules; html 10px, body 18 / 16 / 15px) ---- */
.elementor .lindus-post-body,
.lsf-prose {
	font-family: Rubik, sans-serif;
	font-size: 18px;
	line-height: 1.5;
	font-weight: 400;
	color: #262b35;
}
.elementor .lindus-post-body p,
.lsf-prose p {
	font-size: inherit;
	line-height: 1.5;
	margin: 0 0 .75em;
	color: inherit;
}
.elementor .lindus-post-body :is(h1, h2, h3, h4, h5, h6),
.lsf-prose :is(h1, h2, h3, h4, h5, h6) {
	font-family: Rubik, sans-serif;
	color: #262b35;
	font-weight: 400;
	line-height: 1.125;
	letter-spacing: normal;
	text-transform: none;
	margin: 0 0 .75em;
}
.elementor .lindus-post-body h1, .lsf-prose h1 { font-size: 45px; }
.elementor .lindus-post-body h2, .lsf-prose h2 { font-size: 40px; font-weight: 300; letter-spacing: -.02em; margin: 1em 0 .5em; }
.elementor .lindus-post-body h3, .lsf-prose h3 { font-size: 26px; font-weight: 500; line-height: 1.1875; letter-spacing: -.02em; margin: 1.25em 0 .5em; }
.elementor .lindus-post-body h4, .lsf-prose h4 { font-size: 20px; }
.elementor .lindus-post-body h5, .lsf-prose h5 { font-size: 15px; }
.elementor .lindus-post-body h6, .lsf-prose h6 { font-size: 12px; }
.elementor .lindus-post-body a,
.lsf-prose a {
	color: #007bff; /* theme's #content link rule is an invalid selector → Bootstrap blue */
	text-decoration: none;
}
.elementor .lindus-post-body a:hover,
.elementor .lindus-post-body a:focus,
.lsf-prose a:hover,
.lsf-prose a:focus {
	color: #0056b3;
	text-decoration: none;
}
.lsf-prose--dark a:hover,
.lsf-prose--dark a:focus { color: #ccc; }
.elementor .lindus-post-body :is(strong, b), .lsf-prose :is(strong, b) { font-weight: 700; }
.elementor .lindus-post-body img, .lsf-prose img { display: block; max-width: 100%; height: auto; }
.elementor .lindus-post-body p img:not([class*="align"]), .lsf-prose p img:not([class*="align"]) { display: inline-block; vertical-align: middle; }
.elementor .lindus-post-body ul,
.lsf-prose ul { padding: 0; margin: .5em 0 .75em; list-style: none; }
.elementor .lindus-post-body ul li,
.lsf-prose ul li { position: relative; margin: 0 0 .5em 4.5em; line-height: 1.375em; }
.elementor .lindus-post-body ul li::before,
.lsf-prose ul li::before {
	content: "";
	position: absolute;
	top: 0;
	left: -2.5em;
	width: 1.5em;
	height: 1.5em;
	background: url(../img/icon-check.svg) center / contain no-repeat; /* theme main.js prepends .check icons */
}
.elementor .lindus-post-body ul li ul, .lsf-prose ul li ul { margin-top: 15px; }
.elementor .lindus-post-body ul li ul li, .lsf-prose ul li ul li { margin-left: 1.5em; }
.elementor .lindus-post-body ul li ul li::before, .lsf-prose ul li ul li::before { left: -1.8em; width: 1.2em; height: 1.2em; }
.elementor .lindus-post-body ol, .lsf-prose ol { margin: .5em 0 .75em; padding-left: 1.25em; }
.elementor .lindus-post-body ol li, .lsf-prose ol li { margin-bottom: .5em; line-height: 1.375em; }
.elementor .lindus-post-body blockquote,
.lsf-prose blockquote {
	margin: 1.25em .75em;
	padding: .25em 1em .375em;
	font-size: 1.1875em;
	line-height: 1.375em;
	font-weight: 500;
	border-left: 6px solid #283891;
}
.elementor .lindus-post-body hr, .lsf-prose hr { height: 0; margin: 40px 0; border: 0; border-top: 1px solid rgba(38, 43, 53, .5); }
.elementor .lindus-post-body :is(iframe, embed, object), .lsf-prose :is(iframe, embed, object) { max-width: 100%; }
.elementor .lindus-post-body sup, .lsf-prose sup { position: relative; top: -.25em; font-size: 75%; line-height: 0; vertical-align: baseline; }
.elementor .lindus-post-body .wp-caption, .lsf-prose .wp-caption { max-width: 100%; margin: 0 0 1.5em; }
.elementor .lindus-post-body .wp-caption img[class*="wp-image-"], .lsf-prose .wp-caption img[class*="wp-image-"] { margin-left: auto; margin-right: auto; }
.elementor .lindus-post-body .wp-caption-text, .lsf-prose .wp-caption-text { text-align: center; margin: .8075em 0; }
.elementor .lindus-post-body :is(.alignleft, .alignright, .aligncenter),
.lsf-prose :is(.alignleft, .alignright, .aligncenter) { display: block; float: none; margin: 0 auto 1em; }
.elementor .lindus-post-body .entry-content-single::after,
.elementor .lindus-post-body .elementor-widget-container::after { content: ""; display: table; clear: both; }
@media (min-width: 768px) {
	.elementor .lindus-post-body .alignleft, .lsf-prose .alignleft { display: inline; float: left; margin: .5em 1.5em 1em 0; }
	.elementor .lindus-post-body .alignright, .lsf-prose .alignright { display: inline; float: right; margin: .5em 0 1em 1.5em; }
	.elementor .lindus-post-body .aligncenter, .lsf-prose .aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; }
}
@media (max-width: 991px) {
	.elementor .lindus-post-body, .lsf-prose { font-size: 16px; }
	.elementor .lindus-post-body h2, .lsf-prose h2 { font-size: 28px; }
	.elementor .lindus-post-body h3, .lsf-prose h3 { font-size: 23px; }
}
@media (max-width: 767px) {
	.elementor .lindus-post-body, .lsf-prose { font-size: 15px; }
	.elementor .lindus-post-body h2, .lsf-prose h2 { font-size: 25px; }
	.elementor .lindus-post-body h3, .lsf-prose h3 { font-size: 21px; }
	.elementor .lindus-post-body h4, .lsf-prose h4 { font-size: 18px; }
}

/* ---- 3. Post meta, blog cards, pagination, search form ---- */
/* Category links in the post meta row (Shortcode dynamic tag output loses classes → hook on the global class). */
.elementor .lindus-post-meta a,
.elementor .lindus-post-meta a:visited { color: #8f8f8f; text-decoration: none; transition: color .3s; }
.elementor .lindus-post-meta a:hover,
.elementor .lindus-post-meta a:focus { color: #283891; }

/* Blog card title link: theme `.entry-title a` (charcoal on blog / category / search; Bootstrap blue on tag/media). */
.elementor .lindus-card-title a,
.elementor .lindus-card-title a:visited { color: inherit; text-decoration: none; }
.elementor .lindus-card-title a:hover,
.elementor .lindus-card-title a:focus { color: #0056b3; }
.elementor .lindus-card-title-plain a,
.elementor .lindus-card-title-plain a:visited { color: #007bff; }

.lsf-card-thumb {
	display: block;
	height: 250px;
	max-width: 400px;
	margin: 0 0 25px;
	background: #fff center / cover no-repeat;
}
.lsf-card-thumb--hidden { height: 0; margin: 0; } /* tag / media archives: theme had no height rule there */
@media (max-width: 479px) {
	.lsf-card-thumb { max-width: 100%; }
}
/* No image → no thumbnail column (theme omitted the col-lg-4). */
.elementor .lindus-card-thumb:not(:has(.lsf-card-thumb)) { display: none; }

.lsf-pills { display: inline; }
.lsf-pill {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 40px;
	background: #283891;
	color: #fff;
	font-family: Rubik, sans-serif;
	font-size: 10px;
	font-weight: 400;
	line-height: 27px;
	text-transform: uppercase;
	vertical-align: middle;
	margin: 5px 5px 10px;
}
.lindus-card-plain .lsf-pill { margin: 5px; }

.lsf-pagination .navigation.pagination { display: block; text-align: center; margin: 0 0 5%; } /* Hello: .pagination is flex space-between */
.lsf-pagination .screen-reader-text { display: none; }
.lsf-pagination .nav-links { display: block; }
.lsf-pagination .page-numbers {
	display: inline-block;
	vertical-align: middle;
	min-width: 34px;
	padding: 5px 10px;
	border: 1px solid #262b35;
	color: #262b35;
	font-family: Rubik, sans-serif;
	font-size: 18px;
	line-height: 27px;
	text-decoration: none;
	transition: color .5s, background .5s;
}
.lsf-pagination a.page-numbers:hover,
.lsf-pagination a.page-numbers:focus { background: #cbea1b; color: #fff; }
.lsf-pagination .page-numbers.current,
.lsf-pagination .page-numbers.current:hover { background: #262b35; color: #fff; }
@media (max-width: 991px) { .lsf-pagination .page-numbers { font-size: 16px; line-height: 24px; } }
@media (max-width: 767px) { .lsf-pagination .page-numbers { font-size: 15px; line-height: 22.5px; } }

/* Search form: live showed browser defaults (theme had no styles); Hello would restyle the button pink. */
.lsf-search-form .search-form { display: block; font: 400 18px/27px Rubik, sans-serif; color: #262b35; }
.lsf-search-form label { display: inline-block; margin: 6.375px 0; font-size: 17px; font-weight: 500; line-height: 17px; }
.lsf-search-form .screen-reader-text {
	position: static !important;
	clip: auto !important;
	clip-path: none !important;
	width: auto !important;
	height: auto !important;
	overflow: visible !important;
	margin: 0 4px 0 0;
	padding: 0;
}
.lsf-search-form .search-field {
	width: 166px;
	height: 26px;
	padding: 1px 2px;
	border: 1px solid #767676;
	border-radius: 0;
	background: #fff;
	font: 400 13.33px Arial, sans-serif;
	color: #000;
}
.lsf-search-form .search-submit {
	padding: 1px 6px;
	margin-left: 2px;
	border: 2px outset #000;
	border-radius: 0;
	background: #efefef;
	color: #262b35;
	font: 400 18px/27px Rubik, sans-serif;
	text-transform: none;
	cursor: pointer;
}
.lsf-search-form .search-submit:hover,
.lsf-search-form .search-submit:focus { background: #e5e5e5; color: #262b35; }

/* ---- 4. Page-sections rows ---- */
.lsf-row { display: block; }
.lsf-row-desc { color: var(--lsf-row-desc, #4a4a4a); }
.lsf-row-desc p { color: inherit; }
.lsf-row--section_reviews .lsf-row-desc,
.lsf-row--section_gallery .lsf-row-desc { text-align: center; }
.lsf-row--section_gallery .lsf-row-desc { margin: 0 0 25px; }
.lsf-row-desc > :last-child { margin-bottom: 0; }
/* Two-column rows: images are rounded (`.section-two-col.twocol img`), columns vertically centered. */
.lsf-row-col { color: var(--lsf-row-fg, #262b35); }
.lsf-row-col img { border-radius: 15px; }
.lsf-row-col .wp-caption { width: auto !important; }

/* Post Content widget: Elementor's kit "Text" typography (Roboto / #7a7a7a) sits on the widget; the theme body text wins. */
.elementor .lindus-post-body .elementor-widget-theme-post-content,
.elementor .lindus-post-body .elementor-widget-theme-post-content > .elementor-widget-container {
	font-family: Rubik, sans-serif;
	font-size: inherit;
	font-weight: 400;
	line-height: 1.5;
	color: #262b35;
}
.elementor .lindus-post-body p { color: #262b35; }

/* Sidebar offer panel (posts, portfolio, gallery items and converted pages): the "Contact Us" link keeps
 * Bootstrap's link blue, as on live (Shortcode tag output loses classes, so hook on the panel class). */
.elementor .lindus-offer-panel p a,
.elementor .lindus-offer-panel p a:visited { color: #007bff; text-decoration: none; }
.elementor .lindus-offer-panel p a:hover,
.elementor .lindus-offer-panel p a:focus { color: #0056b3; }
