/* WA HivePress Listings (Elementor) — base layout.
   Visual styling (colors, type, borders) is controlled in Elementor.
   These rules only establish structure so cards never render unstyled. */

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

.wa-hp-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	overflow: hidden;
	height: 100%;
}

.wa-hp-card__media { display: block; line-height: 0; }
.wa-hp-card__media img { width: 100%; height: auto; object-fit: cover; display: block; }

.wa-hp-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px;
	flex: 1 1 auto;
}

.wa-hp-card__meta {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.75;
}

.wa-hp-card__title { margin: 0; font-size: 1.15rem; line-height: 1.25; }
.wa-hp-card__title a { text-decoration: none; }

.wa-hp-card__details { display: flex; flex-direction: column; gap: 2px; font-size: 0.9rem; }

.wa-hp-card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.wa-hp-tag {
	display: inline-block;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: 0.72rem;
	background: #eef1f5;
	color: inherit;
}
.wa-hp-card__excerpt { margin: 0; font-size: 0.95rem; line-height: 1.5; }

.wa-hp-card__content { font-size: 0.95rem; line-height: 1.5; }
.wa-hp-card__content p { margin: 0 0 8px; }
.wa-hp-card__content p:last-child { margin-bottom: 0; }
.wa-hp-card__content a { text-decoration: underline; word-break: break-word; }

.wa-hp-card__btn {
	align-self: flex-start;
	margin-top: auto;
	padding: 8px 16px;
	border-radius: 6px;
	background: #1d3557;
	color: #fff;
	text-decoration: none;
	font-size: 0.9rem;
}
.wa-hp-card__btn:hover { opacity: 0.9; }

/* Sponsor treatment */
.wa-hp-card--sponsor { box-shadow: inset 0 0 0 2px #e63946; }

.wa-hp-badge {
	position: absolute;
	top: var(--wa-badge-inset, 10px);
	left: var(--wa-badge-inset, 10px);
	z-index: 2;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background: #1d3557;
	color: #fff;
}

/* Badge corner positioning (driven by the "Badge position" control's prefix class) */
.wa-hp-badgepos-tr .wa-hp-badge {
	left: auto;
	right: var(--wa-badge-inset, 10px);
	top: var(--wa-badge-inset, 10px);
	bottom: auto;
}
.wa-hp-badgepos-bl .wa-hp-badge {
	top: auto;
	bottom: var(--wa-badge-inset, 10px);
	left: var(--wa-badge-inset, 10px);
	right: auto;
}
.wa-hp-badgepos-br .wa-hp-badge {
	top: auto;
	bottom: var(--wa-badge-inset, 10px);
	left: auto;
	right: var(--wa-badge-inset, 10px);
}

/* Inline badge placements — sit in the text flow, never overlap artwork */
.wa-hp-badge--inline_top,
.wa-hp-badge--inline_desc {
	position: static;
	top: auto;
	left: auto;
	right: auto;
	bottom: auto;
	display: inline-block;
	align-self: flex-start;
	margin: 0 0 8px;
}

/* Sponsor strip (full-width band across columns) */
.wa-hp-strip {
	margin: 0 0 28px;
	padding: 20px;
	border-radius: 10px;
	background: #f6f7f9;
}
.wa-hp-strip:last-child { margin: 28px 0 0; }
.wa-hp-strip__title {
	margin: 0 0 14px;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.wa-hp-strip__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 18px;
}

/* Compact variant: no media, tighter body */
.wa-hp-card--grid_compact .wa-hp-card__body { padding: 14px 16px; }

/* Detailed/list variant: horizontal on wider screens */
@media (min-width: 768px) {
	.wa-hp-card--list_detailed { flex-direction: row; }
	.wa-hp-card--list_detailed .wa-hp-card__media { flex: 0 0 38%; max-width: 38%; }
	.wa-hp-card--list_detailed .wa-hp-card__media img { height: 100%; }
}
