/* Portfolio sections (/entreprises/, /particuliers-familles/).
   Builds on homepage.css (.asa-home, .asa-hero, .asa-btn). Transparent so
   Ashade's own background (black + spotlight) shows through.
   Text #f2f2f2 / #cfcfcf on #000–#151517: ≥ 12:1 (WCAG AA). */

.asa-home .asa-hub__hero {
	min-height: 0;
	padding: clamp(7rem, 14vw, 10rem) 1.5rem clamp(2.5rem, 6vw, 4rem);
}

.asa-hub__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
	gap: 1.5rem;
}

.asa-hub-card {
	display: flex;
	flex-direction: column;
	min-height: 44px;
	background: #151517;
	border: 1px solid #232326;
	border-radius: 4px;
	overflow: hidden;
	color: #f2f2f2 !important;
	text-decoration: none !important;
	transition: border-color 0.2s ease, transform 0.2s ease;
}

.asa-hub-card:hover,
.asa-hub-card:focus-visible {
	border-color: #f2f2f2;
	transform: translateY(-3px);
}

.asa-hub-card:focus-visible {
	outline: 2px solid #f2f2f2 !important;
	outline-offset: 3px !important;
}

.asa-hub-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #0b0b0c;
}

.asa-hub-card__media img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.asa-hub-card:hover .asa-hub-card__media img {
	transform: scale(1.03);
}

.asa-hub-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 0.5rem;
	padding: 1.5rem;
}

/* Pages without a photo: a taller, typographic card. */
.asa-hub-card--text .asa-hub-card__body {
	justify-content: flex-end;
	min-height: 220px;
	background: radial-gradient(circle at 0% 0%, #28282e 0%, rgba(40, 40, 46, 0) 70%);
}

.asa-hub-card__title {
	margin: 0 !important;
	font-size: 1.25rem !important;
	line-height: 1.3 !important;
	color: #f2f2f2 !important;
}

.asa-hub-card__desc {
	margin: 0 !important;
	color: #cfcfcf;
	font-size: 0.92rem;
	line-height: 1.55;
}

.asa-hub-card__more {
	margin-top: auto;
	padding-top: 0.75rem;
	color: #cfcfcf;
	font-size: 0.85rem;
	letter-spacing: 0.04em;
}

.asa-hub__next .asa-hero__ctas {
	justify-content: center;
}

@media (prefers-reduced-motion: reduce) {
	.asa-hub-card,
	.asa-hub-card__media img {
		transition: none !important;
	}
	.asa-hub-card:hover,
	.asa-hub-card:focus-visible,
	.asa-hub-card:hover .asa-hub-card__media img {
		transform: none !important;
	}
}
