:root {
	--res-accent: #c9962c;       /* gold accent — real estate/luxury feel */
	--res-dark: #0f2340;         /* deep navy — buttons, headings */
	--res-meta-bg: #eef2f7;      /* pale blue-grey meta pill */
	--res-toc-bg: #f6f7f9;       /* table of contents background */
	--res-card-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
	--res-border: #e2e6ec;
	--res-radius: 10px;
	--res-font: "Inter", "Nunito Sans", sans-serif;
	--res-cta-bg: #0f2340;       /* CTA box background */
}
/* ---------- Shared ---------- */
.res-single-wrap,
.res-archive-wrap {
	width: 90% !important;
	max-width: 1320px !important;
	margin: 0 auto !important;
	padding: 40px 0 60px !important;
	font-family: var(--res-font);
}
.res-single-wrap *,
.res-archive-wrap * {
	font-family: inherit;
}
.res-btn {
	display: block;
	text-align: center;
	text-decoration: none !important;
	font-weight: 600;
	padding: 12px 20px;
	border-radius: 6px;
	margin-top: 12px;
	transition: opacity 0.15s ease;
}
.res-btn:hover {
	opacity: 0.85;
	text-decoration: none !important;
}
.res-btn-dark {
	background: var(--res-dark);
	color: #fff;
}
.res-btn-light {
	background: var(--res-accent);
	color: #fff;
}
/* ====================================================================
   SINGLE POST TEMPLATE
   ==================================================================== */
.res-single-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 40px;
}
.res-entry-title {
	font-size: 2rem;
	line-height: 1.25;
	margin: 0 0 16px;
	font-weight: 800;
	color: var(--res-dark);
}
.res-meta-bar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	background: var(--res-meta-bg);
	padding: 10px 18px;
	border-radius: 999px;
	font-size: 0.9rem;
	margin-bottom: 24px;
}
.res-meta-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.res-meta-icon {
	opacity: 0.7;
}
.res-entry-thumbnail {
	margin-bottom: 28px;
	border-radius: var(--res-radius);
	overflow: hidden;
}
.res-entry-thumbnail img {
	width: 100%;
	height: auto;
	display: block;
}
/* --- Table of Contents --- */
.res-toc-box {
	background: var(--res-toc-bg);
	border: 1px solid var(--res-border);
	border-radius: var(--res-radius);
	margin-bottom: 28px;
	overflow: hidden;
}
.res-toc-toggle {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: none;
	border: none;
	cursor: pointer;
	font-size: 1.05rem;
	font-weight: 700;
	padding: 16px 20px;
	color: var(--res-dark);
}
.res-toc-chevron {
	color: var(--res-accent);
	transition: transform 0.2s ease;
}
.res-toc-toggle[aria-expanded="false"] .res-toc-chevron {
	transform: rotate(180deg);
}
.res-toc-panel {
	padding: 0 20px 18px;
}
.res-toc-toggle[aria-expanded="false"] + .res-toc-panel {
	display: none;
}
.res-toc-list {
	list-style: none;
	margin: 0;
	padding-left: 0;
	counter-reset: res-toc-1;
}
.res-toc-list > li {
	counter-increment: res-toc-1;
	margin: 6px 0;
}
.res-toc-list > li::before {
	content: counter(res-toc-1) ". ";
	font-weight: 600;
	margin-right: 4px;
}
.res-toc-sublist {
	list-style: none;
	margin: 6px 0 6px 20px;
	padding-left: 0;
	counter-reset: res-toc-2;
}
.res-toc-sublist > li {
	counter-increment: res-toc-2;
	margin: 4px 0;
}
.res-toc-sublist > li::before {
	content: counter(res-toc-1) "." counter(res-toc-2) ". ";
	margin-right: 4px;
}
.res-toc-list a {
	text-decoration: none;
	color: var(--res-dark);
}
.res-toc-list a:hover {
	color: var(--res-accent);
}
/* --- Entry content --- */
.res-entry-content {
	line-height: 1.75;
	font-size: 1.02rem;
	color: #333;
}
.res-entry-content h2 {
	font-size: 1.5rem;
	margin: 2em 0 0.6em;
	font-weight: 800;
	color: var(--res-dark);
}
.res-entry-content h3 {
	font-size: 1.2rem;
	margin: 1.6em 0 0.5em;
	font-weight: 700;
	color: var(--res-dark);
}
.res-entry-content h4 {
	font-size: 1.05rem;
	margin: 1.4em 0 0.5em;
	font-weight: 700;
	padding-left: 12px;
	border-left: 3px solid var(--res-accent);
	color: var(--res-dark);
}
.res-entry-content ul,
.res-entry-content ol {
	padding-left: 1.4em;
}
.res-entry-content a {
	color: var(--res-accent);
}
/* --- Prev/Next nav --- */
.res-post-nav {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	margin-top: 36px;
	padding-top: 20px;
	border-top: 1px solid var(--res-border);
}
.res-nav-link {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: var(--res-dark);
	max-width: 48%;
}
.res-nav-next {
	margin-left: auto;
	text-align: right;
	flex-direction: row-reverse;
}
.res-nav-arrow {
	font-size: 1.4rem;
	color: var(--res-accent);
}
.res-nav-label {
	display: block;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--res-accent);
	letter-spacing: 0.05em;
}
.res-nav-title {
	display: block;
	font-weight: 600;
}
/* --- Sidebar --- */
.res-sidebar {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.res-widget {
	background: #fff;
	border: 1px solid var(--res-border);
	border-radius: var(--res-radius);
	box-shadow: var(--res-card-shadow);
	padding: 22px;
	box-sizing: border-box;
}
.res-widget-title {
	margin: 0 0 16px;
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--res-dark);
}
.res-widget-search .search-form {
	display: flex;
	margin-bottom: 18px;
}
.res-widget-search .search-field {
	flex: 1;
	padding: 10px 12px;
	border: 1px solid var(--res-border);
	border-radius: 6px;
	font-size: 0.9rem;
}
.res-widget-search .search-submit {
	display: none;
}
.res-latest-posts {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.res-latest-post-item {
	display: flex;
	gap: 12px;
	align-items: center;
}
.res-latest-post-thumb {
	width: 64px;
	height: 64px;
	flex-shrink: 0;
	border-radius: 8px;
	overflow: hidden;
	display: block;
}
.res-latest-post-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.res-latest-post-title {
	display: block;
	font-weight: 600;
	font-size: 0.92rem;
	text-decoration: none;
	color: var(--res-dark);
	line-height: 1.3;
}
.res-latest-post-date {
	font-size: 0.78rem;
	color: #888;
}
.res-services-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.res-services-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.92rem;
}
.res-services-list li::before {
	content: "\2713";
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	background: var(--res-accent);
	color: #fff;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.6rem;
}
.res-services-list a {
	color: var(--res-dark);
	text-decoration: none;
}
.res-cta-box {
	background: var(--res-cta-bg);
	color: #fff;
	border: none;
}
@media (min-width: 961px) {
	.res-cta-box {
		position: sticky;
		top: 20px;
	}
}
.res-cta-title {
	color: #fff;
	margin-bottom: 10px;
}
.res-cta-text {
	font-size: 0.9rem;
	line-height: 1.5;
	margin-bottom: 14px;
	opacity: 0.9;
}
.res-cta-badge {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	font-size: 0.85rem;
	margin-bottom: 6px;
	color: var(--res-accent);
}
.res-cta-badge-icon {
	width: 18px;
	height: 18px;
	background: var(--res-accent);
	color: var(--res-dark);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.6rem;
	flex-shrink: 0;
}
/* ====================================================================
   ARCHIVE TEMPLATE
   ==================================================================== */
.res-archive-hero {
	background: linear-gradient(135deg, var(--res-dark), #1a3a63);
}
.res-archive-hero-overlay {
	padding: 90px 20px;
}
.res-archive-hero-inner {
	max-width: 800px;
	margin: 0 auto;
	text-align: center;
	color: #fff;
}
.res-archive-hero-title {
	font-size: 2.4rem;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 16px;
	text-transform: capitalize; /* fixes "blog" (lowercase page title) displaying as "Blog" */
}
.res-archive-hero-subtitle {
	font-size: 1rem;
	opacity: 0.9;
	line-height: 1.6;
	margin: 0;
}
.res-posts-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	margin-top: 40px;
}
.res-archive-card {
	background: #fff;
	border: 1px solid var(--res-border);
	border-radius: var(--res-radius);
	box-shadow: var(--res-card-shadow);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.res-archive-card-thumb {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #eee;
}
.res-archive-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.res-archive-card-body {
	padding: 20px 20px 22px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.res-archive-card-title {
	font-size: 1.2rem;
	font-weight: 800;
	margin: 0 0 10px;
	line-height: 1.3;
}
.res-archive-card-title a {
	color: var(--res-dark);
	text-decoration: none !important;
}
.res-archive-card-title a:hover {
	color: var(--res-accent);
}
.res-archive-card-excerpt {
	font-size: 0.92rem;
	color: #555;
	line-height: 1.55;
	margin-bottom: 14px;
	flex: 1;
}
.res-archive-card-readmore {
	display: inline-block;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--res-accent);
	text-decoration: none;
	letter-spacing: 0.03em;
	margin-bottom: 16px;
}
.res-archive-card-meta {
	font-size: 0.8rem;
	color: #888;
	border-top: 1px solid var(--res-border);
	padding-top: 14px;
	display: flex;
	gap: 8px;
}
.res-no-results {
	text-align: center;
	padding: 60px 20px;
}
.res-pagination {
	display: flex;
	justify-content: space-between;
	margin-top: 40px;
}
/* ====================================================================
   RESPONSIVE
   ==================================================================== */
@media (max-width: 960px) {
	.res-single-grid {
		grid-template-columns: 1fr;
	}
	.res-posts-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.res-cta-box {
		position: static;
	}
}
@media (max-width: 600px) {
	.res-posts-grid {
		grid-template-columns: 1fr;
	}
	.res-archive-hero-title {
		font-size: 1.7rem;
	}
	.res-entry-title {
		font-size: 1.5rem;
	}
	.res-post-nav {
		flex-direction: column;
	}
	.res-nav-link,
	.res-nav-next {
		max-width: 100%;
	}
}