/**
 * Amplus Partner: Kartenraster
 *
 * Nutzt die Variablen von Automatic.css. Die Werte nach dem Komma
 * sind Fallbacks, falls eine Variable nicht definiert ist.
 *
 * Mobile:  horizontale Karten (Bild links, Text rechts)
 * ab 36em: 2 Spalten, vertikale Karten
 * ab 64em: Spaltenzahl aus dem Shortcode (Standard 4)
 */

.amplus-partner {
	--amplus-partner-cols: 4;

	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--grid-gap, var(--content-gap, 1.5rem));
}

.amplus-partner__card {
	display: grid;
	grid-template-columns: 6rem minmax(0, 1fr);
	align-items: start;
	gap: var(--space-s, 1rem);
	margin: 0;
	padding: var(--space-s, 1rem);
	background-color: var(--white, #fff);
	border: 1px solid var(--secondary-light, #e5e5e0);
	border-radius: var(--card-radius, 0.5rem);
}

/* ---------- Bild ---------- */
.amplus-partner__img,
.amplus-partner__placeholder {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--radius, 0.375rem);
}

.amplus-partner__img--center { object-position: center center; }
.amplus-partner__img--top    { object-position: center top; }
.amplus-partner__img--left   { object-position: left center; }
.amplus-partner__img--right  { object-position: right center; }

.amplus-partner__placeholder {
	display: grid;
	place-items: center;
	background-color: var(--primary-ultra-light, #e3ebf7);
	color: var(--primary-dark, #1b2b4a);
	font-size: var(--text-l, 1.25rem);
	font-weight: 600;
}

/* ---------- Text ---------- */
.amplus-partner__body {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	min-width: 0;
}

/* Keine automatische Silbentrennung, auch wenn das Theme sie für p oder h3 setzt */
.amplus-partner__body,
.amplus-partner__body * {
	-webkit-hyphens: manual;
	hyphens: manual;
	overflow-wrap: break-word;
}

.amplus-partner__role {
	margin: 0;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.3;
	color: var(--primary, #1b2b4a);
}

.amplus-partner__name {
	margin: 0;
	font-size: var(--text-l, 1.25rem);
	line-height: 1.25;
}

.amplus-partner__text {
	margin: 0;
	font-size: var(--text-s, 0.875rem);
	line-height: 1.55;
	color: var(--text-muted, var(--neutral-dark, #5a6068));
}

/* ---------- Links ---------- */
.amplus-partner__links {
	list-style: none;
	margin: auto 0 0;
	padding: var(--space-xs, 0.5rem) 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.amplus-partner__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
	min-inline-size: 2.5rem;
	block-size: 2.5rem;
	padding-inline: 0.75rem;
	border: 1px solid var(--secondary-light, #e5e5e0);
	border-radius: var(--radius, 0.375rem);
	color: var(--primary, #1b2b4a);
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.amplus-partner__link--icon {
	inline-size: 2.5rem;
	padding-inline: 0;
}

.amplus-partner__link:hover,
.amplus-partner__link:focus-visible {
	background-color: var(--primary-ultra-light, #e3ebf7);
	border-color: var(--primary-light, #c9d3e3);
}

.amplus-partner__link svg {
	display: block;
	inline-size: 1rem;
	block-size: 1rem;
	flex-shrink: 0;
}

/* ---------- Tablet: 2 Spalten, vertikale Karten ---------- */
@media (min-width: 36em) {
	.amplus-partner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.amplus-partner__card {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto 1fr;
		align-items: stretch;
		padding: var(--space-s, 1rem) var(--space-s, 1rem) var(--space-m, 1.5rem);
	}
}

/* ---------- Desktop: Spaltenzahl aus dem Shortcode ---------- */
@media (min-width: 64em) {
	.amplus-partner {
		grid-template-columns: repeat(var(--amplus-partner-cols), minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	.amplus-partner__link { transition: none; }
}

/* ==========================================================
   Block mit optionalem Titel, Text und Link
   ========================================================== */
.amplus-partner-block {
	display: flex;
	flex-direction: column;
	gap: var(--space-m, 1.5rem);
}

.amplus-partner-block__head {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs, 0.5rem);
	max-width: 60ch;
}

.amplus-partner-block__title,
.amplus-partner-block__text,
.amplus-partner-block__cta {
	margin: 0;
}

.amplus-partner-block__text {
	color: var(--text-muted, var(--neutral-dark, #5a6068));
}

.amplus-partner-block__cta {
	display: flex;
	margin-top: var(--space-xs, 0.5rem);
}

/* ==========================================================
   Kompakte Variante für Landingpages
   Kleine Zeilen ohne Beschreibung, auf allen Breiten horizontal
   ========================================================== */
.amplus-partner--kompakt {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	gap: var(--space-s, 1rem);
}

.amplus-partner--kompakt .amplus-partner__card {
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto auto;
	align-items: stretch;
	gap: var(--space-xs, 0.5rem);
	padding: var(--space-xs, 0.5rem) var(--space-xs, 0.5rem) var(--space-s, 1rem);
}

.amplus-partner--kompakt .amplus-partner__img,
.amplus-partner--kompakt .amplus-partner__placeholder {
	aspect-ratio: 1;
}

.amplus-partner--kompakt .amplus-partner__body {
	gap: 0.15rem;
	padding-inline: var(--space-2xs, 0.25rem);
}

.amplus-partner--kompakt .amplus-partner__name {
	font-size: var(--text-m, 1rem);
}

.amplus-partner--kompakt .amplus-partner__links {
	margin-top: var(--space-xs, 0.5rem);
}
