/* ==========================================================================
   Liittyvät kategoriat — pieni bannerityylinen osio artikkelin loppuun
   (Core-lisäosan moduuli 58). Sama tumma "Dossier"-kehys kuin Liittyvät
   artikkelit -osiossa (ks. hb-related-posts.css), jotta osiot tuntuvat
   samalta tuoteperheeltä jos molemmat joskus näkyvät samalla sivulla —
   mutta kortit itse käyttävät samaa palvelinpuolista SVG-bannerigrafiikkaa
   ja väripalettia kuin etusivun Kategoriabannerit-karuselli (ks. Core-
   lisäosan hb-kategoriabannerit.css / hb_core_catban_svg()), jotta osio
   näyttää heti tutulta kategorioita selattaessa.

   Ladataan VAIN yksittäisen artikkelin sivuilla, ks.
   hb_core_relcat_enqueue_assets(). Oma nimiavaruus ".hb-relcat-*" — ei
   kosketa mitään muuta osiota, tumma väritys on tarkoituksella kiinteä
   eikä riipu sivuston tumma/vaalea-kytkimestä (sama ratkaisu kuin
   Liittyvät artikkelit -osiossa: erikoisosio on aina "oma saarekkeensa").
   ========================================================================== */

.hb-relcat-wrapper {
	--hbrc-red: #d6111e;
	--hbrc-gold: #ddc76d;
	margin: 32px 0 24px;
	padding: 28px;
	border-radius: 16px;
	background: #000000 !important;
	background-image: none !important;
	border: 1px solid #2e2e2e;
	box-shadow: 0 12px 32px rgba(0, 0, 0, .5);
	position: relative;
	isolation: isolate;
}

.hb-relcat-wrapper::before {
	content: "";
	position: absolute;
	top: 0;
	left: 28px;
	right: 28px;
	height: 2px;
	background: var(--hbrc-gold);
	border-radius: 999px;
}

.hb-relcat-header {
	margin-bottom: 20px;
	padding-top: 6px;
}

.hb-relcat-heading {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 1.15rem;
	font-weight: 600;
	letter-spacing: -.01em;
	color: #ffffff;
	line-height: 1.2;
}

.hb-relcat-icon {
	font-size: 1em;
	opacity: .9;
}

.hb-relcat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 18px;
}

.hb-relcat-card {
	display: flex;
	flex-direction: column;
	background: #0c0c0c;
	border: 1px solid #232323;
	border-radius: 14px;
	overflow: hidden;
	text-decoration: none !important;
	color: inherit;
	box-shadow: 0 2px 0 rgba(0, 0, 0, .3);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.hb-relcat-card:hover,
.hb-relcat-card:focus-visible {
	transform: translateY(-4px);
	border-color: var(--hbrc-red);
	box-shadow: 0 0 0 1px var(--hbrc-red), 0 18px 36px -20px rgba(0, 0, 0, .7);
	outline: none;
}

.hb-relcat-card:focus-visible {
	outline: 3px solid var(--hbrc-gold);
	outline-offset: 2px;
}

.hb-relcat-art {
	display: block;
	line-height: 0;
}

.hb-relcat-art svg {
	display: block;
	width: 100%;
	height: auto;
}

.hb-relcat-body {
	padding: 14px 16px 4px;
}

.hb-relcat-title {
	display: block;
	font-weight: 800;
	font-size: 15.5px;
	letter-spacing: -.01em;
	color: #ffffff;
	margin-bottom: 3px;
}

.hb-relcat-count {
	display: block;
	font-size: 12.5px;
	color: #a8a8a8;
}

.hb-relcat-cta {
	display: block;
	padding: 10px 16px 14px;
	font-size: 12.5px;
	font-weight: 700;
	color: var(--hbrc-red);
	transition: color .15s;
}

.hb-relcat-card:hover .hb-relcat-cta,
.hb-relcat-card:focus-visible .hb-relcat-cta {
	color: var(--hbrc-gold);
}

@media (max-width: 480px) {
	.hb-relcat-wrapper { padding: 18px 14px; margin: 24px 0 16px; border-radius: 10px; }
	.hb-relcat-grid { grid-template-columns: 1fr; gap: 14px; }
	.hb-relcat-heading { font-size: 1.05rem; }
}

@media (prefers-reduced-motion: reduce) {
	.hb-relcat-card { transition: none; }
}

@media print {
	.hb-relcat-wrapper { display: none; }
}
