/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 1.1.0
Updated: 2026-03-16 13:53:52

*/

/* ==========================================================================
   GLOBAL DESIGN TOKENS
   Edit colours here to update the entire site.
   ========================================================================== */

:root {
	/* --- Brand colours --- */
	--hm-red:              #FF2400;
	--hm-red-hover:        #C30000;
	--hm-dark:             #111118;
	--hm-navy:             #1a1a2e;
	--hm-mid:              #2d2d44;

	/* --- Text --- */
	--hm-text:             #1a1a2e;
	--hm-text-secondary:   #5a5a72;

	/* --- Borders & backgrounds --- */
	--hm-border:           #e2e2ea;
	--hm-bg:               #ffffff;
	--hm-bg-soft:          #f6f6f9;
	--hm-bg-warm:          #faf9f7;
	--hm-tag-bg:           #f0f0f5;

	/* --- Partner / accent --- */
	--hm-partner-bg:       #fef9f0;
	--hm-partner-border:   #f0e0c0;
	--hm-partner-gold:     #D36200;
	--hm-partner-gold-mid: #D36200;

	/* --- Ad placeholders --- */
	--ad-bg:               #f0f0f4;
	--ad-border:           #d8d8e0;
	--ad-text:             #999;

	/* --- Typography --- */
	--font-display:        'Poppins', -apple-system, sans-serif;
	--font-body:           'Poppins', -apple-system, sans-serif;

	/* --- Layout --- */
	--max-width:           1200px;
	--nav-height:          52px;
}


/* ==========================================================================
   GLOBAL RESET & BASE
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	font-family: var(--font-body);
	color: var(--hm-text);
	background: var(--hm-bg);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

/* Strip GeneratePress default layout chrome on our custom templates */
body.page-template-front-page #page,
body.home #page,
body.single #page,
body.archive #page,
body.category #page,
body.tag #page,
body.author #page,
body.date #page,
body.page #page {
	margin: 0;
	padding: 0;
}

body.page-template-front-page .site-content,
body.home .site-content,
body.page-template-front-page .content-area,
body.home .content-area,
body.single .site-content,
body.single .content-area,
body.archive .site-content,
body.archive .content-area,
body.category .site-content,
body.category .content-area,
body.tag .site-content,
body.tag .content-area,
body.author .site-content,
body.author .content-area,
body.date .site-content,
body.date .content-area,
body.page .site-content,
body.page .content-area {
	padding: 0;
	margin: 0;
	max-width: 100%;
}


/* ==========================================================================
   NAVIGATION
   ========================================================================== */

.hm-nav-wrapper {
	position: sticky;
	top: 0;
	z-index: 200;
	background: var(--hm-dark);
	border-bottom: 2px solid var(--hm-red);
}

.hm-nav {
	max-width: var(--max-width);
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: var(--nav-height);
	gap: 24px;
	position: relative; /* needed for mobile logo centering */
}

/* --- Logo --- */
.hm-nav__logo {
	display: flex;
	align-items: baseline;
	gap: 3px;
	text-decoration: none;
	flex-shrink: 0;
}

.hm-nav__hi {
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 700;
	color: var(--hm-red);
	letter-spacing: -1px;
	line-height: 1;
	position: relative;
}

.hm-nav__dot {
	display: inline-block;
	width: 5px;
	height: 5px;
	background: var(--hm-red);
	border-radius: 50%;
	position: relative;
	top: -12px;
	margin-left: -1px;
}

.hm-nav__wordmark {
	font-family: var(--font-display);
	font-size: 18px;
	font-weight: 600;
	color: #ffffff;
	letter-spacing: -0.3px;
}

/* --- Custom logo (uploaded via Appearance > Customize > Site Identity) --- */
.hm-nav__logo--image {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.hm-nav__logo--image .custom-logo-link {
	display: flex;
	align-items: center;
}

.hm-nav__logo--image .custom-logo {
	max-height: 25px;
	width: auto;
	display: block;
}

/* --- Nav links --- */
.hm-nav__links {
	display: flex;
	align-items: center;
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1;
	justify-content: center;
}

.hm-nav__links a {
	color: #c0c0cc;
	text-decoration: none;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.4px;
	text-transform: uppercase;
	transition: color 0.2s;
	white-space: nowrap;
}

.hm-nav__links a:hover,
.hm-nav__links .current-menu-item > a,
.hm-nav__links .current_page_item > a {
	color: #ffffff;
}

/* --- More dropdown --- */
.hm-nav__more-item {
	position: relative;
	list-style: none;
}

.hm-nav__more-btn {
	display: flex;
	align-items: center;
	gap: 4px;
	background: none;
	border: none;
	color: #c0c0cc;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.4px;
	text-transform: uppercase;
	cursor: pointer;
	padding: 0;
	white-space: nowrap;
	transition: color 0.2s;
}

.hm-nav__more-item.is-open .hm-nav__more-btn,
.hm-nav__more-btn:hover {
	color: #ffffff;
}

.hm-nav__more-chevron {
	transition: transform 0.2s;
	flex-shrink: 0;
}

.hm-nav__more-item.is-open .hm-nav__more-chevron {
	transform: rotate(180deg);
}

.hm-nav__more-dropdown {
	position: absolute;
	top: calc(100% + 14px);
	left: 50%;
	transform: translateX(-50%);
	min-width: 340px;
	background: var(--hm-dark);
	border: 1px solid #2a2a3a;
	border-top: 2px solid var(--hm-red);
	padding: 12px 16px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2px 24px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.18s, visibility 0.18s;
	z-index: 201;
}

.hm-nav__more-item.is-open .hm-nav__more-dropdown {
	opacity: 1;
	visibility: visible;
	pointer-events: all;
}

.hm-nav__more-dropdown a {
	display: block;
	padding: 8px 0;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	color: #aaaabc;
	text-decoration: none;
	border-bottom: 1px solid #1e1e2e;
	transition: color 0.15s;
}

.hm-nav__more-dropdown a:hover {
	color: #ffffff;
}

@media (max-width: 768px) {
	.hm-nav__more-item {
		display: block;
	}

	.hm-nav__more-btn {
		display: none;
	}

	.hm-nav__more-dropdown {
		position: static;
		opacity: 1;
		visibility: visible;
		pointer-events: all;
		transform: none;
		background: transparent;
		border: none;
		border-radius: 0;
		padding: 0;
		width: auto;
		min-width: 0;
		display: block;
		box-shadow: none;
	}

	.hm-nav__more-dropdown a {
		display: block;
		padding: 12px 20px;
		color: #ccccdd;
		font-size: 14px;
		border-radius: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.06);
		text-align: left;
	}

	.hm-nav__more-dropdown a:hover {
		background: rgba(255, 255, 255, 0.04);
	}
}

/* Add class "partner-nav-link" to the Partner Content menu item
   via Appearance > Menus > CSS Classes to get the red highlight */
.hm-nav__links .partner-nav-link > a {
	color: var(--hm-red);
	font-weight: 600;
}

/* --- Right side --- */
.hm-nav__right {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-shrink: 0;
}

.hm-nav__search {
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	color: #888888;
	cursor: pointer;
	padding: 4px;
	transition: color 0.2s;
	text-decoration: none;
}

.hm-nav__search:hover {
	color: #ffffff;
}

.hm-nav__subscribe {
	display: inline-block;
	background: var(--hm-red);
	color: #ffffff;
	padding: 6px 16px;
	font-size: 11px;
	font-weight: 600;
	font-family: var(--font-body);
	letter-spacing: 0.6px;
	text-transform: uppercase;
	border-radius: 3px;
	text-decoration: none;
	transition: background 0.2s;
	white-space: nowrap;
}

.hm-nav__subscribe:hover {
	background: var(--hm-red-hover);
	color: #ffffff;
}

/* --- Hamburger (hidden on desktop) --- */
.hm-nav__hamburger {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 6px;
	flex-shrink: 0;
}

.hm-nav__bar {
	display: block;
	width: 22px;
	height: 2px;
	background: #cccccc;
	border-radius: 2px;
	transition: transform 0.25s ease, opacity 0.2s ease;
}

/* Animate hamburger → X when active */
.hm-nav__hamburger.is-active .hm-nav__bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.hm-nav__hamburger.is-active .hm-nav__bar:nth-child(2) {
	opacity: 0;
	transform: scaleX(0);
}
.hm-nav__hamburger.is-active .hm-nav__bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}


/* ==========================================================================
   NAVIGATION — RESPONSIVE
   ========================================================================== */

@media (max-width: 768px) {

	/* Center logo between search (left) and hamburger (right) */
	.hm-nav__logo,
	.hm-nav__logo--image {
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		z-index: 1;
	}

	.hm-nav__right {
		order: -1; /* moves search to far left */
	}

	.hm-nav__hamburger {
		display: flex;
	}

	.hm-nav__links {
		display: none;
		position: absolute;
		top: var(--nav-height);
		left: 0;
		right: 0;
		background: var(--hm-dark);
		border-bottom: 2px solid var(--hm-red);
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
		padding: 8px 0;
		z-index: 199;
	}

	.hm-nav__links.is-open {
		display: flex;
	}

	.hm-nav__links li {
		width: 100%;
	}

	.hm-nav__links a {
		display: block;
		padding: 12px 24px;
		font-size: 13px;
		border-bottom: 1px solid #1e1e2e;
	}

	.hm-nav__links li:last-child a {
		border-bottom: none;
	}
}


/* ==========================================================================
   FOOTER
   ========================================================================== */

.hm-footer {
	background: var(--hm-dark);
	border-top: 3px solid var(--hm-red);
	padding: 48px 24px 0;
}

/* --- 4-column grid --- */
.hm-footer__inner {
	max-width: var(--max-width);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.5fr;
	gap: 48px;
	padding-bottom: 40px;
	border-bottom: 1px solid #2a2a3e;
}

/* --- Brand column --- */
.hm-footer__logo {
	margin-bottom: 14px;
}

.hm-footer__logo .custom-logo-link {
	display: inline-flex;
	align-items: center;
}

.hm-footer__logo .custom-logo {
	max-height: 40px;
	width: auto;
}

.hm-footer__logo-text {
	font-family: var(--font-display);
	font-size: 22px;
	font-weight: 700;
	color: #ffffff;
	text-decoration: none;
	letter-spacing: -0.5px;
}

.hm-footer__hi {
	color: var(--hm-red);
}

.hm-footer__brand p {
	font-size: 13px;
	color: #777777;
	line-height: 1.65;
}

/* --- Sections / Company columns --- */
.hm-footer__col-title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #888888;
	margin-bottom: 14px;
}

.hm-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hm-footer__links li {
	margin-bottom: 9px;
}

.hm-footer__links a {
	color: #aaaaaa;
	text-decoration: none;
	font-size: 13px;
	transition: color 0.2s;
}

.hm-footer__links a:hover {
	color: #ffffff;
}

/* --- Newsletter column --- */
.hm-footer__newsletter p {
	font-size: 13px;
	color: #888888;
	margin-bottom: 14px;
	line-height: 1.55;
}

.hm-footer__form {
	display: flex;
	gap: 6px;
}

.hm-footer__form input {
	flex: 1;
	padding: 9px 12px;
	background: #1e1e30;
	border: 1px solid #333344;
	color: #ffffff;
	font-family: var(--font-body);
	font-size: 13px;
	border-radius: 3px;
	outline: none;
	transition: border-color 0.2s;
}

.hm-footer__form input::placeholder {
	color: #555566;
}

.hm-footer__form input:focus {
	border-color: var(--hm-red);
}

.hm-footer__form button {
	padding: 9px 18px;
	background: var(--hm-red);
	color: #ffffff;
	border: none;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 600;
	border-radius: 3px;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
}

.hm-footer__form button:hover {
	background: var(--hm-red-hover);
}

/* --- Bottom bar --- */
.hm-footer__bottom {
	max-width: var(--max-width);
	margin: 0 auto;
	padding: 20px 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid #1a1a2a;
}

.hm-footer__bottom p {
	font-size: 11px;
	color: #555566;
}

.hm-footer__bottom-links {
	display: flex;
	gap: 18px;
}

.hm-footer__bottom-links a {
	font-size: 11px;
	color: #555566;
	text-decoration: none;
	transition: color 0.2s;
}

.hm-footer__bottom-links a:hover {
	color: #888888;
}

/* --- Credit line --- */
.hm-footer__credit {
	max-width: var(--max-width);
	margin: 0 auto;
	padding: 14px 0 20px;
	text-align: center;
	font-size: 10px;
	color: #444455;
}

.hm-footer__credit a {
	color: #666677;
	text-decoration: none;
	transition: color 0.2s;
}

.hm-footer__credit a:hover {
	color: #aaaaaa;
}


/* ==========================================================================
   FOOTER — RESPONSIVE
   ========================================================================== */

@media (max-width: 768px) {

	.hm-footer__inner {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.hm-footer__bottom {
		flex-direction: column;
		gap: 10px;
		text-align: center;
	}
}


/* ==========================================================================
   AD SLOTS
   Fixed min-heights prevent Cumulative Layout Shift (CLS).
   All slots show as styled placeholders until real ad code is inserted.
   ========================================================================== */

/* --- Base slot styles --- */
.ad-slot {
	background: #eeeef5;
	border: 2px dashed #aaaacc;
	border-radius: 6px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	position: relative;
	overflow: hidden;
	box-sizing: border-box;
}

/* Diagonal stripe pattern for visual weight */
.ad-slot::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient(
		-45deg,
		transparent,
		transparent 8px,
		rgba(0, 0, 0, 0.018) 8px,
		rgba(0, 0, 0, 0.018) 16px
	);
	pointer-events: none;
}

/* "AD SPACE" badge pinned to top-right */
.ad-slot::before {
	content: 'Ad Space';
	position: absolute;
	top: 8px;
	right: 10px;
	background: var(--hm-red);
	color: #fff;
	font-family: var(--font-body);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	padding: 2px 7px;
	border-radius: 2px;
	z-index: 1;
}

.ad-slot__label {
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.4px;
	color: #888899;
	position: relative;
	z-index: 1;
}

.ad-slot__size {
	font-size: 11px;
	color: #aaaabc;
	font-weight: 400;
	position: relative;
	z-index: 1;
}

/* --- Leaderboard: header & mid-page (728×90) --- */
.ad-slot--header-leaderboard,
.ad-slot--midpage-leaderboard {
	min-height: 90px;
	width: 100%;
	max-width: 728px;
}

/* --- Leaderboard wrapper strip --- */
.hm-ad-strip {
	background: var(--hm-bg-soft);
	border-bottom: 1px solid var(--hm-border);
	padding: 12px 24px;
}

.hm-ad-strip__inner {
	max-width: var(--max-width);
	margin: 0 auto;
	display: flex;
	justify-content: center;
}

/* --- In-feed native (300×250) --- */
.ad-slot--infeed-native {
	min-height: 250px;
	width: 100%;
}

/* In-feed wrapper sits between story cards */
.hm-infeed-ad {
	padding: 18px 0;
	border-bottom: 1px solid var(--hm-border);
}

/* --- Sidebar primary (300×600) --- */
.ad-slot--sidebar-primary {
	min-height: 600px;
	width: 100%;
}

/* --- Sidebar secondary (300×250) --- */
.ad-slot--sidebar-secondary {
	min-height: 250px;
	width: 100%;
}

/* Mid-page ad wrapper (between category strips) */
.hm-midpage-ad {
	padding: 24px 0;
}

.hm-midpage-ad__inner {
	display: flex;
	justify-content: center;
}

/* --- Responsive: reduce sidebar ad heights on mobile --- */
@media (max-width: 768px) {

	.ad-slot--sidebar-primary {
		min-height: 250px;
	}

	.hm-ad-strip {
		padding: 10px 16px;
	}
}


/* ==========================================================================
   SHARED UTILITIES
   Reused across hero, story cards, and category strips.
   ========================================================================== */

/* --- Category tag --- */
.hm-tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	color: var(--hm-red);
	text-decoration: none;
	margin-bottom: 8px;
	transition: opacity 0.2s;
}

.hm-tag:hover {
	opacity: 0.75;
	color: var(--hm-red);
}

/* --- Meta row (author · time · read time) --- */
.hm-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 5px;
	font-size: 12px;
	color: #999999;
}

.hm-meta__author {
	font-weight: 600;
	color: var(--hm-text-secondary);
}

.hm-meta__sep {
	color: #cccccc;
}


/* ==========================================================================
   HERO STORY
   ========================================================================== */

.hm-hero {
	margin-bottom: 32px;
}

/* --- 16:9 image --- */
.hm-hero__image-wrap {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 6px;
	margin-bottom: 16px;
	background: var(--hm-bg-soft);
}

.hm-hero__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}

.hm-hero__image-wrap:hover .hm-hero__image {
	transform: scale(1.02);
}

.hm-hero__image--placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--hm-navy) 0%, var(--hm-mid) 100%);
}

/* --- Content --- */
.hm-hero__content {
	padding: 0;
}

.hm-hero__title {
	font-family: var(--font-display);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--hm-text);
	margin-bottom: 10px;
	letter-spacing: -0.3px;
}

.hm-hero__title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s;
}

.hm-hero__title a:hover {
	color: var(--hm-red);
}

.hm-hero__excerpt {
	font-size: 15px;
	color: var(--hm-text-secondary);
	line-height: 1.65;
	margin-bottom: 12px;
}

/* --- Responsive --- */
@media (max-width: 768px) {

	.hm-hero__title {
		font-size: 24px;
	}
}


/* ==========================================================================
   LAYOUT — CONTAINER & MAIN GRID
   ========================================================================== */

.hm-container {
	max-width: var(--max-width);
	margin: 0 auto;
	padding: 0 24px;
}

.hm-main {
	padding-bottom: 48px;
	flex: 1;
}

.hm-main-grid {
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 40px;
	padding-top: 32px;
}

.hm-main-col {
	min-width: 0; /* prevent grid blowout */
}

/* Sidebar */
.hm-sidebar__sticky {
	position: sticky;
	top: calc( var(--nav-height) + 16px );
}

.hm-sidebar__ad {
	margin-bottom: 28px;
}

@media (max-width: 1024px) {
	.hm-main-grid {
		grid-template-columns: 1fr 280px;
		gap: 28px;
	}
}

@media (max-width: 768px) {
	.hm-main-grid {
		grid-template-columns: 1fr;
	}

	.hm-sidebar__sticky {
		position: static;
	}

	.hm-container {
		padding: 0 16px;
	}
}


/* ==========================================================================
   NEWSLETTER BANNER
   ========================================================================== */

.hm-newsletter {
	background: var(--hm-dark);
	padding: 28px 24px;
	position: relative;
	overflow: hidden;
}

.hm-newsletter::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -5%;
	width: 400px;
	height: 400px;
	background: radial-gradient( circle, rgba(232, 54, 79, 0.07) 0%, transparent 70% );
	pointer-events: none;
}

.hm-newsletter__inner {
	max-width: var(--max-width);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	position: relative;
}

.hm-newsletter__copy {
	flex: 1;
}

.hm-newsletter__heading {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 600;
	color: #ffffff;
	margin-bottom: 4px;
	letter-spacing: -0.2px;
}

.hm-newsletter__copy p {
	color: #9090a8;
	font-size: 14px;
	margin-bottom: 0px;
}

.hm-newsletter__form {
	display: flex;
	gap: 8px;
	flex-shrink: 0;
}

.hm-newsletter__form input {
	padding: 10px 16px;
	border: 1px solid #3a3a52;
	background: #12121e;
	color: #ffffff;
	font-family: var(--font-body);
	font-size: 14px;
	border-radius: 4px;
	width: 260px;
	outline: none;
	transition: border-color 0.2s;
}

.hm-newsletter__form input::placeholder {
	color: #555566;
}

.hm-newsletter__form input:focus {
	border-color: var(--hm-red);
}

.hm-newsletter__form button {
	padding: 10px 22px;
	background: var(--hm-red);
	color: #ffffff;
	border: none;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	border-radius: 4px;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
}

.hm-newsletter__form button:hover {
	background: var(--hm-red-hover);
}

.hm-newsletter__form button:disabled {
	opacity: 0.65;
	cursor: default;
}

.hm-newsletter__feedback {
	font-size: 14px;
	font-weight: 500;
	margin: 0;
}

.hm-newsletter__feedback--success {
	color: #2ecc71;
}

.hm-newsletter__feedback--error {
	color: #ff6b6b;
	margin-top: 8px;
	width: 100%;
}

@media (max-width: 768px) {

	.hm-newsletter {
		padding: 24px 16px;
	}

	.hm-newsletter__inner {
		flex-direction: column;
		text-align: left;
		align-items: flex-start;
		gap: 20px;
	}

	.hm-newsletter__form {
		width: 100%;
		flex-direction: column;
	}

	.hm-newsletter__form input {
		width: 100%;
	}
}


/* ==========================================================================
   FEED HEADER (Latest News)
   ========================================================================== */

.hm-feed-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--hm-border);
}

.hm-feed-header__title {
	font-family: var(--font-display);
	font-size: 28px;
	font-weight: 700;
	color: var(--hm-text);
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}


/* ==========================================================================
   BREADCRUMBS
   Rendered inside .hm-single__header (single posts) and above the archive
   header (archives). Single-line with ellipsis truncation on the current item.
   ========================================================================== */

.breadcrumb-nav {
	margin: 0 0 14px;
	padding: 0;
	text-align: left;
	max-width: 100%;
	overflow: hidden;
}

.hm-breadcrumbs {
	list-style: none;
	margin: 0;
	padding: 0;
	padding-inline-start: 0;
	display: flex;
	flex-wrap: nowrap;
	justify-content: flex-start;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: #888899;
	min-width: 0;
}

.hm-breadcrumbs__item {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	min-width: 0;
}

.hm-breadcrumbs__item:not(:last-child)::after {
	content: '›';
	margin-left: 6px;
	color: #aaaabb;
	font-size: 14px;
	line-height: 1;
}

.hm-breadcrumbs__link {
	color: #888899;
	text-decoration: none;
	transition: color 0.15s;
}

.hm-breadcrumbs__link:hover {
	color: var(--hm-red);
}

/* Current (last) item: shrink and ellipsis-truncate to fit available width */
.hm-breadcrumbs__item--current {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
}

.hm-breadcrumbs__item--current span {
	color: var(--hm-text);
	font-weight: 500;
	display: inline-block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}


/* ==========================================================================
   STORY CARD (feed)
   ========================================================================== */

.hm-story-card {
	display: grid;
	grid-template-columns: 1fr 140px;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px solid var(--hm-border);
}

.hm-story-card__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.hm-story-card__title {
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--hm-text);
	margin-bottom: 6px;
	letter-spacing: -0.1px;
}

.hm-story-card__title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s;
}

.hm-story-card__title a:hover {
	color: var(--hm-red);
}

.hm-story-card__excerpt {
	font-size: 13px;
	color: var(--hm-text-secondary);
	line-height: 1.55;
	margin-bottom: 8px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.hm-story-card__image-wrap {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 4px;
	background: var(--hm-bg-soft);
	flex-shrink: 0;
}

.hm-story-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.hm-story-card__image-wrap:hover .hm-story-card__image {
	transform: scale(1.04);
}

.hm-story-card__image--placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #e0e0ea 0%, #ccccda 100%);
}

@media (max-width: 480px) {
	.hm-story-card {
		grid-template-columns: 1fr 90px;
		gap: 12px;
	}
}

/* Partner content variant of the story card */
.hm-story-card--partner {
	background: var(--hm-partner-bg);
	border-bottom-color: var(--hm-partner-border);
	border-left: 3px solid var(--hm-partner-gold);
	padding-left: 14px;
	padding-right: 14px;
}

.hm-story-card--partner .hm-story-card__title a:hover {
	color: var(--hm-partner-gold);
}

.hm-story-card__sponsor-label {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	color: var(--hm-partner-gold);
	margin-bottom: 6px;
}

.hm-story-card__sponsor-label::before {
	content: '';
	display: inline-block;
	width: 7px;
	height: 7px;
	background: var(--hm-partner-gold);
	border-radius: 2px;
	flex-shrink: 0;
}


/* ==========================================================================
   SIDEBAR SECTIONS
   ========================================================================== */

.hm-sidebar-section {
	margin-bottom: 28px;
}

.hm-sidebar-section__title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--hm-text);
	padding-bottom: 10px;
	border-bottom: 2px solid var(--hm-dark);
	margin-bottom: 4px;
}

/* Most Read list */
.hm-trending {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hm-trending__item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--hm-border);
}

.hm-trending__number {
	font-family: var(--font-display);
	font-size: 26px;
	font-weight: 700;
	color: var(--hm-border);
	line-height: 1;
	flex-shrink: 0;
	width: 26px;
	text-align: center;
}

.hm-trending__body {
	flex: 1;
	min-width: 0;
}

.hm-trending__title {
	display: block;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--hm-text);
	text-decoration: none;
	margin-bottom: 4px;
	transition: color 0.2s;
}

.hm-trending__title:hover {
	color: var(--hm-red);
}


/* ==========================================================================
   SIDEBAR PARTNER CONTENT
   ========================================================================== */

.hm-partner-sidebar {
	background: var(--hm-partner-bg);
	border: 1px solid var(--hm-partner-border);
	border-radius: 6px;
	padding: 16px;
	margin-bottom: 28px;
}

.hm-partner-sidebar__title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--hm-partner-gold);
	margin-bottom: 14px;
	display: flex;
	align-items: center;
	gap: 6px;
}

.hm-partner-sidebar__title::before {
	content: '';
	display: inline-block;
	width: 8px;
	height: 8px;
	background: var(--hm-partner-gold-mid);
	border-radius: 2px;
	flex-shrink: 0;
}

.hm-partner-card {
	display: flex;
	gap: 10px;
	padding: 10px 0;
}

.hm-partner-card + .hm-partner-card {
	border-top: 1px solid var(--hm-partner-border);
}

.hm-partner-card__image-wrap {
	flex-shrink: 0;
	display: block;
	width: 56px;
	height: 56px;
	overflow: hidden;
	border-radius: 4px;
}

.hm-partner-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hm-partner-card__image--placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #f0e0c0, #e8d0a0);
}

.hm-partner-card__body {
	flex: 1;
	min-width: 0;
}

.hm-partner-card__title {
	display: block;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--hm-text);
	text-decoration: none;
	margin-bottom: 4px;
	transition: color 0.2s;
}

.hm-partner-card__title:hover {
	color: var(--hm-partner-gold);
}

.hm-partner-card__label {
	font-size: 10px;
	color: var(--hm-partner-gold);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-weight: 600;
}


/* ==========================================================================
   CATEGORY STRIPS
   ========================================================================== */

.hm-category-strips {
	background: var(--hm-bg-soft);
	border-top: 1px solid var(--hm-border);
	padding: 48px 0;
}

.hm-category-strip {
	margin-bottom: 44px;
}

.hm-category-strip:last-child {
	margin-bottom: 0;
}

.hm-category-strip__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
}

.hm-category-strip__title {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 700;
	color: var(--hm-text);
}

.hm-category-strip__link {
	font-size: 11px;
	font-weight: 600;
	color: var(--hm-red);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: opacity 0.2s;
}

.hm-category-strip__link:hover {
	opacity: 0.7;
	color: var(--hm-red);
}

.hm-strip-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

/* Strip card */
.hm-strip-card__image-wrap {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 5px;
	margin-bottom: 12px;
	background: var(--hm-bg-soft);
}

.hm-strip-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.hm-strip-card__image-wrap:hover .hm-strip-card__image {
	transform: scale(1.04);
}

.hm-strip-card__image--placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #e0e0ea 0%, #ccccda 100%);
}

.hm-strip-card__content {
	padding: 0;
}

.hm-tag--small {
	font-size: 10px;
}

.hm-strip-card__title {
	font-family: var(--font-display);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--hm-text);
	margin-bottom: 6px;
	letter-spacing: -0.1px;
}

.hm-strip-card__title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s;
}

.hm-strip-card__title a:hover {
	color: var(--hm-red);
}

/* Strip responsive */
@media (max-width: 1024px) {
	.hm-strip-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 768px) {
	.hm-category-strips {
		padding: 32px 0;
	}

	.hm-strip-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}
}

@media (max-width: 480px) {
	.hm-strip-grid {
		grid-template-columns: 1fr;
	}
}


/* ==========================================================================
   SINGLE POST — HEADER
   ========================================================================== */

.hm-single__header {
	padding: 28px 0 20px;
	border-bottom: 2px solid var(--hm-dark);
	margin-bottom: 24px;
}

.hm-single__title {
	font-family: var(--font-display);
	font-size: 36px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.5px;
	color: var(--hm-text);
	margin: 10px 0 14px;
}

.hm-single__meta {
	font-size: 13px;
}

@media (max-width: 768px) {
	.hm-single__title {
		font-size: 26px;
	}

	.hm-single__header {
		padding: 20px 0 16px;
	}
}


/* ==========================================================================
   SINGLE POST — FEATURED IMAGE
   ========================================================================== */

.hm-single__image-wrap {
	width: 100%;
	border-radius: 6px;
	overflow: hidden;
	margin-bottom: 28px;
	background: var(--hm-bg-soft);
}

.hm-single__image {
	width: 100%;
	height: auto;
	display: block;
}


/* ==========================================================================
   SINGLE POST — ARTICLE BODY
   Long-form reading typography.
   ========================================================================== */

.hm-single__body {
	font-size: 17px;
	line-height: 1.75;
	color: var(--hm-text);
	margin-bottom: 40px;
}

.hm-single__body p {
	margin-bottom: 1.4em;
}

.hm-single__body h2 {
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.2px;
	color: var(--hm-text);
	margin: 1.8em 0 0.6em;
}

.hm-single__body h3 {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--hm-text);
	margin: 1.6em 0 0.5em;
}

.hm-single__body h4 {
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 700;
	color: var(--hm-text);
	margin: 1.4em 0 0.4em;
}

.hm-single__body a {
	color: var(--hm-red);
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: opacity 0.2s;
}

.hm-single__body a:hover {
	opacity: 0.75;
}

.hm-single__body strong,
.hm-single__body b {
	font-weight: 700;
}

.hm-single__body em,
.hm-single__body i {
	font-style: italic;
}

.hm-single__body ul,
.hm-single__body ol {
	padding-left: 1.5em;
	margin-bottom: 1.4em;
}

.hm-single__body li {
	margin-bottom: 0.4em;
}

.hm-single__body blockquote {
	border-left: 4px solid var(--hm-red);
	margin: 1.8em 0;
	padding: 12px 0 12px 24px;
	background: var(--hm-bg-soft);
	border-radius: 0 4px 4px 0;
}

.hm-single__body blockquote p {
	font-size: 18px;
	font-style: italic;
	color: var(--hm-text-secondary);
	margin-bottom: 0;
}

.hm-single__body figure {
	margin: 1.8em 0;
}

.hm-single__body figure img {
	border-radius: 4px;
}

.hm-single__body figcaption {
	font-size: 12px;
	color: var(--hm-text-secondary);
	margin-top: 8px;
	text-align: center;
}

.hm-single__body hr {
	border: none;
	border-top: 1px solid var(--hm-border);
	margin: 2em 0;
}

/* Mid-article ad wrapper */
.hm-single__mid-ad {
	margin: 28px auto;
	display: flex;
	justify-content: center;
}

.ad-slot--mid-article {
	min-height: 250px;
	width: 100%;
	max-width: 300px;
}

@media (max-width: 768px) {
	.hm-single__body {
		font-size: 16px;
	}

	.hm-single__body h2 {
		font-size: 21px;
	}

	.hm-single__body h3 {
		font-size: 18px;
	}
}


/* ==========================================================================
   SINGLE POST — AUTHOR BIO
   ========================================================================== */

.hm-author-bio {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	background: var(--hm-bg-soft);
	border: 1px solid var(--hm-border);
	border-radius: 6px;
	padding: 20px;
	margin-bottom: 40px;
}

.hm-author-bio__img {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	display: block;
	flex-shrink: 0;
	object-fit: cover;
}

.hm-author-bio__body {
	flex: 1;
	min-width: 0;
}

.hm-author-bio__name {
	display: block;
	font-family: var(--font-display);
	font-size: 15px;
	font-weight: 700;
	color: var(--hm-text);
	text-decoration: none;
	margin-bottom: 6px;
	transition: color 0.2s;
}

.hm-author-bio__name:hover {
	color: var(--hm-red);
}

.hm-author-bio__desc {
	font-size: 13px;
	color: var(--hm-text-secondary);
	line-height: 1.6;
	margin: 0;
}

@media (max-width: 480px) {
	.hm-author-bio {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
}


/* ==========================================================================
   SINGLE POST — RELATED ARTICLES
   ========================================================================== */

.hm-related {
	border-top: 2px solid var(--hm-dark);
	padding-top: 24px;
}

.hm-related__header {
	margin-bottom: 20px;
}

.hm-related__title {
	font-family: var(--font-display);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--hm-text);
}

.hm-related__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

@media (max-width: 768px) {
	.hm-related__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}
}

@media (max-width: 480px) {
	.hm-related__grid {
		grid-template-columns: 1fr;
	}
}


/* ==========================================================================
   ARCHIVE HEADER
   ========================================================================== */

.hm-archive-header {
	background: var(--hm-bg-soft);
	border-bottom: 1px solid var(--hm-border);
	padding: 32px 0 28px;
}

.hm-archive-header__label {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--hm-red);
	margin-bottom: 8px;
}

.hm-archive-header__title {
	font-family: var(--font-display);
	font-size: 32px;
	font-weight: 700;
	letter-spacing: -0.4px;
	line-height: 1.2;
	color: var(--hm-text);
	margin-bottom: 10px;
}

.hm-archive-header__desc {
	font-size: 15px;
	color: var(--hm-text-secondary);
	line-height: 1.65;
	max-width: 600px;
}

@media (max-width: 768px) {
	.hm-archive-header {
		padding: 24px 0 20px;
	}

	.hm-archive-header__title {
		font-size: 24px;
	}
}


/* ==========================================================================
   ARCHIVE — EMPTY STATE
   ========================================================================== */

.hm-archive__empty {
	padding: 40px 0;
	font-size: 15px;
	color: var(--hm-text-secondary);
}

.hm-search-empty {
	padding: 40px 0;
}

.hm-search-empty__message {
	font-size: 15px;
	color: var(--hm-text-secondary);
	margin-bottom: 24px;
	line-height: 1.6;
}

.hm-search-empty__message strong {
	color: var(--hm-text);
	font-weight: 600;
}


/* ==========================================================================
   PAGINATION
   ========================================================================== */

.hm-pagination,
.navigation.pagination {
	margin: 40px 0 8px;
}

.hm-pagination .nav-links,
.navigation.pagination .nav-links {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.hm-pagination .page-numbers,
.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	color: var(--hm-text-secondary);
	border: 1px solid var(--hm-border);
	border-radius: 4px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
	background: var(--hm-bg);
}

.hm-pagination .page-numbers:hover,
.navigation.pagination .page-numbers:hover {
	background: var(--hm-bg-soft);
	color: var(--hm-text);
	border-color: #c8c8d8;
}

.hm-pagination .page-numbers.current,
.navigation.pagination .page-numbers.current {
	background: var(--hm-dark);
	color: #ffffff;
	border-color: var(--hm-dark);
}

.hm-pagination .page-numbers.dots,
.navigation.pagination .page-numbers.dots {
	border-color: transparent;
	background: transparent;
	cursor: default;
}

.hm-pagination .prev,
.hm-pagination .next,
.navigation.pagination .prev,
.navigation.pagination .next {
	font-size: 12px;
	padding: 0 14px;
}

@media (max-width: 480px) {
	.hm-pagination .page-numbers,
	.navigation.pagination .page-numbers {
		min-width: 32px;
		height: 32px;
		font-size: 12px;
	}
}


/* ==========================================================================
   STATIC PAGE
   ========================================================================== */

/* Vertically pad the page area a bit more than article pages */
.hm-main--page {
	padding-top: 0;
	padding-bottom: 64px;
}

/* Narrow centred column — ideal reading width for long-form static content */
.hm-page-wrap {
	max-width: 740px;
	margin: 0 auto;
	padding-top: 48px;
}

/* Page header */
.hm-page__header {
	margin-bottom: 32px;
	padding-bottom: 24px;
	border-bottom: 2px solid var(--hm-dark);
}

.hm-page__title {
	font-family: var(--font-display);
	font-size: 36px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.5px;
	color: var(--hm-text);
}

/* Optional featured image */
.hm-page__image-wrap {
	width: 100%;
	border-radius: 6px;
	overflow: hidden;
	margin-bottom: 32px;
	background: var(--hm-bg-soft);
}

.hm-page__image {
	width: 100%;
	height: auto;
	display: block;
}

/* Page body — same long-form typography as single.php */
.hm-page__body {
	font-size: 17px;
	line-height: 1.75;
	color: var(--hm-text);
}

.hm-page__body p {
	margin-bottom: 1.4em;
}

.hm-page__body h2 {
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.2px;
	color: var(--hm-text);
	margin: 1.8em 0 0.6em;
}

.hm-page__body h3 {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--hm-text);
	margin: 1.6em 0 0.5em;
}

.hm-page__body h4 {
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 700;
	color: var(--hm-text);
	margin: 1.4em 0 0.4em;
}

.hm-page__body a {
	color: var(--hm-red);
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: opacity 0.2s;
}

.hm-page__body a:hover {
	opacity: 0.75;
}

.hm-page__body strong,
.hm-page__body b {
	font-weight: 700;
}

.hm-page__body em,
.hm-page__body i {
	font-style: italic;
}

.hm-page__body ul,
.hm-page__body ol {
	padding-left: 1.5em;
	margin-bottom: 1.4em;
}

.hm-page__body li {
	margin-bottom: 0.4em;
}

.hm-page__body blockquote {
	border-left: 4px solid var(--hm-red);
	margin: 1.8em 0;
	padding: 12px 0 12px 24px;
	background: var(--hm-bg-soft);
	border-radius: 0 4px 4px 0;
}

.hm-page__body blockquote p {
	font-size: 18px;
	font-style: italic;
	color: var(--hm-text-secondary);
	margin-bottom: 0;
}

.hm-page__body figure {
	margin: 1.8em 0;
}

.hm-page__body figure img {
	border-radius: 4px;
}

.hm-page__body figcaption {
	font-size: 12px;
	color: var(--hm-text-secondary);
	margin-top: 8px;
	text-align: center;
}

.hm-page__body hr {
	border: none;
	border-top: 1px solid var(--hm-border);
	margin: 2em 0;
}

/* Tables — useful for Privacy Policy / legal pages */
.hm-page__body table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	margin-bottom: 1.4em;
}

.hm-page__body th,
.hm-page__body td {
	text-align: left;
	padding: 10px 14px;
	border: 1px solid var(--hm-border);
}

.hm-page__body th {
	font-weight: 700;
	background: var(--hm-bg-soft);
	color: var(--hm-text);
}

.hm-page__body td {
	color: var(--hm-text-secondary);
}

@media (max-width: 768px) {
	.hm-page-wrap {
		padding-top: 32px;
	}

	.hm-page__title {
		font-size: 26px;
	}

	.hm-page__body {
		font-size: 16px;
	}

	.hm-page__body h2 {
		font-size: 21px;
	}

	.hm-page__body h3 {
		font-size: 18px;
	}
}


/* ==========================================================================
   SOCIAL SHARE BAR (single.php)
   ========================================================================== */

.hm-share {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 0 24px;
	border-bottom: 1px solid var(--hm-border);
	margin-bottom: 28px;
}

.hm-share__badge img {
	display: block;
	opacity: 0.85;
	transition: opacity 0.2s;
}

.hm-share__badge:hover img {
	opacity: 1;
}

.hm-share__icons {
	display: flex;
	align-items: center;
	gap: 8px;
}

.hm-share__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid var(--hm-border);
	border-radius: 50%;
	color: var(--hm-text-secondary);
	text-decoration: none;
	background: none;
	cursor: pointer;
	padding: 0;
	font-family: inherit;
	transition: border-color 0.2s, color 0.2s;
	flex-shrink: 0;
}

.hm-share__btn:hover {
	border-color: var(--hm-red);
	color: var(--hm-red);
}

.hm-share__btn--copied,
.hm-share__btn--copied:hover {
	border-color: #2ecc71;
	color: #2ecc71;
}

@media (max-width: 540px) {
	.hm-share {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
}


/* ==========================================================================
   NEWSLETTER POPUP (slide-up bar)
   ========================================================================== */

.hm-popup {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 300;
	transform: translateY(100%);
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
	box-shadow: 0 -4px 32px rgba(0, 0, 0, 0.35);
}

.hm-popup.is-visible {
	transform: translateY(0);
}

.hm-popup__bar {
	background: var(--hm-dark);
	border-top: 3px solid var(--hm-red);
	padding: 18px 24px;
}

.hm-popup__inner {
	max-width: var(--max-width);
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 24px;
	position: relative;
	padding-right: 44px;
}

.hm-popup__heading {
	font-family: var(--font-display);
	font-size: 15px;
	font-weight: 600;
	color: #ffffff;
	flex-shrink: 0;
	margin: 0;
}

.hm-popup__inner .hm-newsletter__form {
	flex: 1;
}

.hm-popup__inner .hm-newsletter__form input {
	flex: 1;
	width: auto;
	min-width: 160px;
}

.hm-popup__close {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	color: #666677;
	cursor: pointer;
	padding: 6px;
	transition: color 0.2s;
}

.hm-popup__close:hover {
	color: #ffffff;
}

@media (max-width: 768px) {
	.hm-popup__bar {
		padding: 12px 16px;
	}

	.hm-popup__heading {
		display: none;
	}

	.hm-popup__inner {
		flex-direction: row;
		align-items: center;
		gap: 8px;
		padding-right: 0;
	}

	.hm-popup__inner .hm-newsletter__form {
		flex: 1;
		flex-direction: row;
		gap: 6px;
	}

	.hm-popup__inner .hm-newsletter__form input {
		flex: 1;
		min-width: 0;
		padding: 9px 12px;
		font-size: 13px;
	}

	.hm-popup__inner .hm-newsletter__form button {
		padding: 9px 14px;
		font-size: 13px;
		white-space: nowrap;
		flex-shrink: 0;
	}

	.hm-popup__close {
		position: static;
		transform: none;
		flex-shrink: 0;
	}

	.hm-popup__inner .hm-newsletter__form input {
		width: 100%;
	}

	.hm-popup__close {
		top: 14px;
		transform: none;
	}
}


/* ==========================================================================
   SEARCH OVERLAY
   ========================================================================== */

/* Prevent body scroll when overlay is open */
body.search-overlay-open {
	overflow: hidden;
}

/* Full-screen overlay container */
.hm-search-overlay {
	position: fixed;
	inset: 0;
	z-index: 500;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.hm-search-overlay.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: all;
}

/* Dark backdrop */
.hm-search-overlay__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(8, 8, 14, 0.88);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

/* Floating panel — dark themed */
.hm-search-overlay__panel {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 660px;
	margin: 0 24px;
	background: #1c1c28;
	border: 1px solid #2e2e42;
	border-radius: 10px;
	box-shadow: 0 32px 80px rgba(0, 0, 0, 0.6);
	overflow: hidden;
	transform: translateY(-16px);
	transition: transform 0.22s ease;
}

.hm-search-overlay.is-open .hm-search-overlay__panel {
	transform: translateY(0);
}

/* Search form row */
.hm-search-overlay__form {
	display: flex;
	align-items: center;
	padding: 0 16px 0 0;
	border-bottom: 1px solid #2e2e42;
}

.hm-search-overlay__icon {
	flex-shrink: 0;
	color: #666680;
	display: block;
	line-height: 0;
	/* 20px left + 22px icon + 20px right = 62px zone; icon is centred within it */
	margin: 0 20px;
}

.hm-search-overlay__input {
	flex: 1;
	border: none;
	outline: none;
	font-family: var(--font-body);
	font-size: 18px;
	font-weight: 400;
	color: #ffffff;
	background: transparent;
	padding: 22px 0;
	line-height: 1;
	caret-color: var(--hm-red);
}

.hm-search-overlay__input::placeholder {
	color: #444460;
}

/* Hide browser's built-in search clear button */
.hm-search-overlay__input::-webkit-search-cancel-button {
	display: none;
}

/* Submit / go arrow button */
.hm-search-overlay__submit {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	padding: 8px 12px;
	cursor: pointer;
	color: #555570;
	transition: color 0.2s;
	line-height: 0;
}

.hm-search-overlay__submit:hover {
	color: var(--hm-red);
}

/* Results container */
.hm-search-overlay__results {
	max-height: 400px;
	overflow-y: auto;
	overscroll-behavior: contain;
}

/* Scrollbar styling for dark panel */
.hm-search-overlay__results::-webkit-scrollbar {
	width: 4px;
}
.hm-search-overlay__results::-webkit-scrollbar-track {
	background: transparent;
}
.hm-search-overlay__results::-webkit-scrollbar-thumb {
	background: #3a3a52;
	border-radius: 2px;
}

/* Results list */
.hm-search-results__list {
	list-style: none;
	margin: 0;
	padding: 8px 0;
}

/* Individual result */
.hm-search-result__link {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 20px;
	text-decoration: none;
	transition: background 0.15s;
}

.hm-search-result__link:hover {
	background: #232336;
}

/* Thumbnail */
.hm-search-result__thumb {
	flex-shrink: 0;
	width: 52px;
	height: 52px;
	border-radius: 4px;
	overflow: hidden;
	background: #2a2a3e;
}

.hm-search-result__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Text */
.hm-search-result__body {
	flex: 1;
	min-width: 0;
}

.hm-search-result__cat {
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	color: var(--hm-red);
	margin-bottom: 4px;
}

.hm-search-result__title {
	display: block;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: #e8e8f0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* "See all results" footer link */
.hm-search-results__all {
	display: block;
	padding: 14px 20px;
	font-size: 13px;
	font-weight: 600;
	color: var(--hm-red);
	text-decoration: none;
	border-top: 1px solid #2e2e42;
	transition: background 0.15s;
}

.hm-search-results__all:hover {
	background: #232336;
}

/* Empty / error state */
.hm-search-results__empty {
	padding: 24px 20px;
	font-size: 14px;
	color: #666680;
}

.hm-search-results__empty strong {
	color: #aaaacc;
}

/* Mobile */
@media (max-width: 600px) {
	.hm-search-overlay {
		align-items: flex-start;
	}

	.hm-search-overlay__panel {
		margin: 0;
		border-radius: 0 0 10px 10px;
		border-top: none;
		max-width: 100%;
	}

	.hm-search-overlay__input {
		font-size: 16px; /* prevent iOS zoom on focus */
	}
}


/* ==========================================================================
   FEATURED SECTIONS (homepage — Lifestyle, Finance, Property)
   CityAM-style: 1 large post left, 2 smaller posts right.
   ========================================================================== */

.hm-featured-sections {
	background: var(--hm-bg);
	padding-bottom: 56px;
}

.hm-featured-section {
	padding: 48px 0 0;
	border-top: 1px solid var(--hm-border);
}

.hm-featured-section:first-child {
	border-top: none;
	padding-top: 48px;
}

.hm-featured-sections .hm-featured-section:first-child {
	border-top: 1px solid var(--hm-border);
}

.hm-featured-section__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
}

.hm-featured-section__title {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 700;
	color: var(--hm-text);
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
}

.hm-featured-section__dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	background: var(--hm-red);
	flex-shrink: 0;
}

/* Two-column grid: large left, two-stack right */
.hm-featured-grid {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 28px;
	align-items: start;
	padding-bottom: 48px;
}

/* Large main post */
.hm-featured-main__image-wrap {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 5px;
	margin-bottom: 16px;
	background: var(--hm-bg-soft);
}

.hm-featured-main__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.hm-featured-main__image-wrap:hover .hm-featured-main__image {
	transform: scale(1.02);
}

.hm-featured-main__image--placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #e0e0ea 0%, #ccccda 100%);
}

.hm-featured-main__title {
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.2px;
	color: var(--hm-text);
	margin: 8px 0 10px;
}

.hm-featured-main__title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s;
}

.hm-featured-main__title a:hover {
	color: var(--hm-red);
}

.hm-featured-main__excerpt {
	font-size: 14px;
	color: var(--hm-text-secondary);
	line-height: 1.65;
	margin: 0;
}

/* Two smaller side posts */
.hm-featured-aside {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.hm-featured-aside__image-wrap {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 4px;
	margin-bottom: 10px;
	background: var(--hm-bg-soft);
}

.hm-featured-aside__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.hm-featured-aside__image-wrap:hover .hm-featured-aside__image {
	transform: scale(1.03);
}

.hm-featured-aside__image--placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #e0e0ea 0%, #ccccda 100%);
}

.hm-featured-aside__title {
	font-family: var(--font-display);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--hm-text);
	margin: 6px 0 0;
}

.hm-featured-aside__title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s;
}

.hm-featured-aside__title a:hover {
	color: var(--hm-red);
}

@media (max-width: 768px) {
	.hm-featured-grid {
		grid-template-columns: 1fr;
		gap: 0;
		padding-bottom: 32px;
	}

	.hm-featured-aside {
		flex-direction: row;
		gap: 16px;
		margin-top: 20px;
	}

	.hm-featured-aside__card {
		flex: 1;
	}

	.hm-featured-main__title {
		font-size: 20px;
	}
}

@media (max-width: 480px) {
	.hm-featured-aside {
		flex-direction: column;
	}
}


/* ==========================================================================
   CONTACT FORM
   ========================================================================== */

.hm-contact-wrap {
	margin-top: 48px;
	padding-top: 40px;
	border-top: 2px solid var(--hm-dark);
}

.hm-contact__heading {
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.2px;
	color: var(--hm-text);
	margin-bottom: 28px;
}

.hm-contact-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.hm-contact-form__row--two {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.hm-contact-form__group {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.hm-contact-form__label {
	font-size: 13px;
	font-weight: 600;
	color: var(--hm-text);
}

.hm-contact-form__label span {
	color: var(--hm-red);
}

.hm-contact-form__input,
.hm-contact-form__textarea {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--hm-border);
	border-radius: 4px;
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--hm-text);
	background: #ffffff;
	outline: none;
	transition: border-color 0.2s;
}

.hm-contact-form__input:focus,
.hm-contact-form__textarea:focus {
	border-color: var(--hm-red);
}

.hm-contact-form__textarea {
	resize: vertical;
	min-height: 140px;
}

.hm-contact-form__footer {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}

.hm-contact-form__btn {
	padding: 12px 32px;
	background: var(--hm-red);
	color: #ffffff;
	border: none;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	border-radius: 4px;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
}

.hm-contact-form__btn:hover {
	background: var(--hm-red-hover);
}

.hm-contact-form__btn:disabled {
	opacity: 0.65;
	cursor: default;
}

.hm-contact-form__feedback {
	font-size: 14px;
	font-weight: 500;
	margin: 0;
}

.hm-contact-form__feedback--success { color: #2ecc71; }
.hm-contact-form__feedback--error   { color: #ff6b6b; }

@media (max-width: 600px) {
	.hm-contact-form__row--two {
		grid-template-columns: 1fr;
	}
}


/* ==========================================================================
   KEY POINTS
   Editor-defined bullet summary, rendered above the article body.
   ========================================================================== */

.hm-key-points {
	background: #f7f7f4;
	border-left: 4px solid var(--hm-red);
	padding: 18px 22px 18px 24px;
	margin: 0 0 28px;
	border-radius: 0 4px 4px 0;
}

.hm-key-points__heading {
	font-family: var(--font-display);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--hm-text);
	margin: 0 0 10px;
}

.hm-key-points__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hm-key-points__list li {
	position: relative;
	padding-left: 18px;
	margin-bottom: 6px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--hm-text);
}

.hm-key-points__list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.65em;
	width: 6px;
	height: 6px;
	background: var(--hm-red);
	border-radius: 50%;
}

.hm-key-points__list li:last-child {
	margin-bottom: 0;
}


/* ==========================================================================
   AD RENDERING (house ads + AdSense wrapper)
   ========================================================================== */

.hm-ad {
	text-align: center;
	margin: 0;
	max-width: 100%;
}

.hm-ad img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

.hm-ad__label {
	display: block;
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: #999;
	margin-bottom: 6px;
}


/* ==========================================================================
   SUBSCRIBE LANDING PAGE
   ========================================================================== */

.hm-subscribe {
	max-width: 720px;
	margin: 0 auto;
	padding: 56px 0 72px;
}

.hm-subscribe__intro {
	text-align: center;
	margin-bottom: 40px;
}

.hm-subscribe__eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--hm-red);
	margin-bottom: 16px;
}

.hm-subscribe__heading {
	font-family: var(--font-display);
	font-size: 44px;
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.5px;
	margin: 0 0 18px;
	color: var(--hm-text);
}

.hm-subscribe__lede {
	font-size: 17px;
	line-height: 1.6;
	color: #555;
	margin: 0;
}

.hm-subscribe__benefits {
	list-style: none;
	margin: 0 0 36px;
	padding: 0;
}

.hm-subscribe__benefits li {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 24px;
	align-items: baseline;
	padding: 18px 0;
	border-top: 1px solid var(--hm-border);
}

.hm-subscribe__benefits li:last-child {
	border-bottom: 1px solid var(--hm-border);
}

.hm-subscribe__benefits strong {
	font-size: 14px;
	font-weight: 700;
	color: var(--hm-text);
}

.hm-subscribe__benefits span {
	font-size: 15px;
	color: #555;
	line-height: 1.55;
}

.hm-subscribe__form-wrap {
	background: var(--hm-bg-soft);
	padding: 32px 28px;
	border-radius: 6px;
	text-align: center;
}

.hm-subscribe__form {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin: 0 auto;
}

.hm-subscribe__form input {
	flex: 1;
	max-width: 320px;
	padding: 12px 16px;
	border: 1px solid var(--hm-border);
	background: #fff;
	color: var(--hm-text);
	font-size: 15px;
	border-radius: 4px;
	transition: border-color 0.2s;
}

.hm-subscribe__form input::placeholder {
	color: #999;
}

.hm-subscribe__form input:focus {
	outline: none;
	border-color: var(--hm-red);
}

.hm-subscribe__form button {
	padding: 12px 22px;
	background: var(--hm-red);
	color: #fff;
	border: none;
	border-radius: 4px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
}

.hm-subscribe__form button:hover {
	background: var(--hm-red-hover);
}

.hm-subscribe__form button:disabled {
	opacity: 0.65;
	cursor: default;
}

.hm-subscribe__legal {
	margin: 14px 0 0;
	font-size: 12px;
	color: #888;
}

.hm-subscribe__editorial {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var(--hm-border);
	font-size: 16px;
	line-height: 1.7;
	color: var(--hm-text);
}

.hm-subscribe__editorial p {
	margin-bottom: 1.4em;
}

@media (max-width: 640px) {
	.hm-subscribe {
		padding: 36px 0 56px;
	}

	.hm-subscribe__heading {
		font-size: 30px;
	}

	.hm-subscribe__lede {
		font-size: 15px;
	}

	.hm-subscribe__benefits li {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.hm-subscribe__form {
		flex-direction: column;
	}

	.hm-subscribe__form input {
		max-width: none;
	}

	.hm-subscribe__form-wrap {
		padding: 24px 18px;
	}
}

