/* =====================================================================
   Produits Structurés — cartes DATA-LED (style FCPI, SANS image), .ielp-struct-cards.
   Badge type + fenêtre de commercialisation + coupon héros + lignes clés +
   émetteur/NOTATION visible (AMF) + énoncé clair de protection du capital.
   Harmonisé sur les jetons --ie-* (navy ET orange ; vert de statut), rayons/ombres
   partagés, garde-fou interligne. RELIEF style AV/capi/FCPI : ombres de carte, coupon
   héros en dégradé + ombre, badge type + pastille notation en dégradé navy, pastille
   CTA navy→orange. STATUTS conservés sémantiques : fenêtre de commercialisation
   (vert/gris) et protection du capital (vert/orange/rouge) restent des pastilles
   teintées (pas de dégradé) — leur sens prime. Aucune valeur produit codée ici (ACF).
   ===================================================================== */
.ielp-struct-cards {
	/* JETONS LUS PAR LES COMPOSANTS PARTAGES. La feuille css/cards-grid-ico.css
	   dessine la pastille ronde avec background:var(--tint), border:1px solid
	   var(--tint-bd) et color:var(--acc2) ; la grille de base lit --divider et
	   --r-box. Ces noms n etaient declares nulle part sous .ielp-struct-cards :
	   la regle s appliquait, mais les variables ne resolvaient rien, d ou un
	   glyphe sombre et sans pastille. Valeurs reprises TELLES QUELLES de
	   per-cards.css:8-11, pour que la cellule soit identique a celle des cartes
	   PER, assurance vie et capitalisation. */
	/* ------------------------------------------------------------------
	   LES JETONS PARTAGES SONT REPRIS ICI, POUR QUE CETTE FEUILLE SOIT
	   AUTOPORTANTE, SUR LE MODELE DE scpi-cards.css.

	   AJOUT PUREMENT ADDITIF : aucune declaration existante n est retiree ni
	   modifiee. Sur le tableau de bord, ie-tokens.css continue de fournir ces
	   memes noms depuis :root, avec EXACTEMENT les memes valeurs ; les copies
	   ci-dessous, plus specifiques, resolvent donc a l identique et le rendu ne
	   bouge pas. C est la condition de sortie de la tranche.

	   CE QUE CELA PERMET : la carte peut etre rendue sur une page publique en
	   chargeant cette seule feuille, sans tirer la chaine de 113 ko du
	   catalogue (ie-tokens, ie-card-kit, tdb-landing, per-cards,
	   cartes-immo-fractionne), dont la carte n utilise presque rien.

	   MESURE : le composant carte consomme 18 jetons --ie-*, tous des valeurs
	   litterales sans dependance entre elles, verifie par fermeture transitive.
	   Les cinq --struct-img-* manquants ne sont pas des jetons : ils sont poses
	   en style inline par produit pour le filigrane de l emetteur.

	   A RESYNCHRONISER si ie-tokens.css change l une de ces valeurs.
	   ------------------------------------------------------------------ */
	--ie-border: #dfe4ee;
	--ie-divider: #eceff5;
	--ie-font: "Plus Jakarta Sans", "Inter", system-ui, sans-serif;
	--ie-green: #16A34A;
	--ie-ink: #0f172a;
	--ie-navy: #07124A;
	--ie-orange: #F18815;
	--ie-radius-box: 12px;
	--ie-radius-card: 18px;
	--ie-radius-pill: 30px;
	--ie-s100: #f1f5f9;
	--ie-s200: #e2e8f0;
	--ie-s400: #94a3b8;
	--ie-s500: #64748b;
	--ie-s700: #334155;
	--ie-shadow-hover: 0 22px 42px -18px rgba(9,17,54,.28);
	--ie-shadow-rest: 0 1px 2px rgba(9,17,54,.05), 0 12px 26px -16px rgba(9,17,54,.18);
	--ie-transition: .22s;

	--acc1: #F9A23E;
	--acc2: #E0700E;
	--tint: #FFF6EE;
	--tint-bd: #FBE3CB;
	--divider: #eceff5;
	--panel: #f6f8fc;
	--r-box: 12px;
	--s500: var(--ie-s500);
	--navy2: var(--ie-navy);
	--ink: var(--ie-ink);

	/* Marque → jetons partagés (navy ET orange ; vert de statut). */
	--struct-navy: var(--ie-navy);
	--struct-navy2: var(--ie-navy);
	--struct-orange: var(--ie-orange);
	--struct-grey: var(--ie-s500);
	--struct-text: var(--ie-s700);
	--struct-border: var(--ie-border);
	--struct-divider: var(--ie-divider);
	/* Teintes dérivées des jetons. */
	--struct-orange-t1: color-mix(in srgb, var(--ie-orange) 11%, #fff);
	--struct-orange-t2: color-mix(in srgb, var(--ie-orange) 20%, #fff);
	--struct-orange-bd: color-mix(in srgb, var(--ie-orange) 34%, #fff);
	--struct-navy-tint: color-mix(in srgb, var(--ie-navy) 6%, #fff);
	--struct-hover-bd:  color-mix(in srgb, var(--ie-navy) 22%, #fff);
	/* Dégradés de RELIEF (mêmes stops que AV/capi/FCPI). */
	--struct-or1: #f9a23e; --struct-or2: #e0700e;
	--struct-nv1: #1d3e86; --struct-nv2: var(--ie-navy);
	--struct-font: var(--ie-font);
	font-family: var(--ie-font);
	line-height: 1.45;            /* garde-fou : neutralise body{line-height:2em} d'Elementor */
	width: 100%;
}
.ielp-struct-cards *,
.ielp-struct-cards *::before,
.ielp-struct-cards *::after { box-sizing: border-box; font-family: var(--struct-font); }

.ielp-struct-cards .struct-grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 18px; align-items: start;
}
.ielp-struct-cards .struct-empty { color: var(--struct-grey); font-size: 14px; padding: 24px 0; }

.ielp-struct-cards .ielp-struct-card { position: relative; display: block; text-decoration: none; color: inherit; } /* position:relative ancre le badge remise. */
.ielp-struct-cards .struct-card {
	display: flex; flex-direction: column; gap: 12px; height: 100%;
	background: #fff; border: 1.5px solid var(--struct-border); border-radius: var(--ie-radius-card); padding: 18px 20px;
	box-shadow: var(--ie-shadow-rest);
	transition: box-shadow var(--ie-transition) ease, transform var(--ie-transition) ease, border-color var(--ie-transition) ease;
}
.ielp-struct-cards .ielp-struct-card:hover .struct-card { box-shadow: var(--ie-shadow-hover); transform: translateY(-3px); border-color: var(--struct-hover-bd); }

/* En-tête : badge type + fenêtre de commercialisation. */
.ielp-struct-cards .struct-card__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
/* Badge de type : pastille CLAIRE, alignee sur .m-pill des cartes de
   capitalisation et d assurance vie. Il portait un navy plein a texte blanc,
   seul de tout le tableau de bord a le faire. */
.ielp-struct-cards .struct-card__badge {
	display: inline-flex; align-items: center; line-height: 1;
	background: #fff; color: var(--ie-s500);
	border: 1px solid var(--ie-s200);
	font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	padding: 4px 9px; border-radius: var(--ie-radius-pill);
	white-space: nowrap; box-shadow: none;
}
.ielp-struct-cards .struct-card__commerc {
	display: inline-flex; align-items: center; gap: 6px; font-size: 10.5px; font-weight: 700;
	padding: 4px 10px; border-radius: 30px;
}
.ielp-struct-cards .struct-card__commerc::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.ielp-struct-cards .struct-card__commerc--encours { background: color-mix(in srgb, var(--ie-green) 12%, #fff); color: var(--ie-green); }
.ielp-struct-cards .struct-card__commerc--cloture { background: var(--ie-s100); color: var(--ie-s400); }

.ielp-struct-cards .struct-card__name { font-size: 17px; font-weight: 800; color: var(--struct-navy); margin: 0; line-height: 1.25; }

/* Émetteur + notation de crédit (visible, AMF). */
.ielp-struct-cards .struct-card__issuer { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: -4px 0 0; font-size: 12px; }
.ielp-struct-cards .struct-card__issuer-n { color: var(--struct-grey); }
.ielp-struct-cards .struct-card__rating {
	display: inline-flex; align-items: center; background: linear-gradient(135deg, var(--struct-nv1), var(--struct-nv2)); color: #fff;
	font-size: 11px; font-weight: 800; letter-spacing: .02em; padding: 2px 9px; border-radius: 6px;
	box-shadow: 0 3px 8px -4px rgba(7,18,74,.5);
}

/* En-tête : empilement par défaut (rendu data-led actuel, sans image). */
.ielp-struct-cards .struct-card__head { display: flex; flex-direction: column; gap: 12px; }
.ielp-struct-cards .struct-card__titlewrap { display: flex; flex-direction: column; gap: 5px; }
.ielp-struct-cards .struct-card__titlewrap .struct-card__issuer { margin: 0; }

/* --- Mode MÉDIA : image de couverture optionnelle en fond du haut de carte ; le
   texte (nom + émetteur) la chevauche en blanc, au-dessus du bloc orange du coupon.
   Activé par .struct-card--media (image renseignée) — sinon en-tête classique. --- */
.ielp-struct-cards .struct-card--media .struct-card__head {
	position: relative;
	/* « blanc bleuté » du site (tons clairs, cf. soft des bandes hero) — en composantes
	   RGB pour un dégradé alpha propre, sans color-mix imbriqué. */
	--struct-paleblue: 214, 220, 233;
	margin: -18px -20px 0;          /* plein cadre : annule le padding du haut/côtés */
	padding: 13px 16px;
	min-height: 150px;              /* hauteur FIXE du cadre image (la photo zoome à l'intérieur) */
	justify-content: space-between; /* badge en haut, titre/émetteur en bas */
	gap: 10px;
	border-radius: calc(var(--ie-radius-card) - 1.5px) calc(var(--ie-radius-card) - 1.5px) 0 0;
	overflow: hidden;
	/* Repli (image lente) : dégradé blanc bleuté clair. */
	background: linear-gradient(135deg, rgba(var(--struct-paleblue),.65), rgba(var(--struct-paleblue),1));
}
/* La photo remplit le cadre (cover) et se ZOOME à l'intérieur via --struct-img-zoom
   (réglable par produit). Le cadre garde overflow:hidden → le zoom recadre, il
   n'agrandit jamais la carte. */
/* La regle « photo de fond plein cadre » qui vivait ici est SUPPRIMEE. Elle
   posait inset:0, donc top/right/bottom/left a 0. La regle de filigrane plus
   bas redeclare right et bottom mais pas top ni left : ceux-ci restaient a 0 et,
   avec une largeur et une hauteur explicites, ils l emportaient en lecture de
   gauche a droite. Le logo s ancrait donc en HAUT A GAUCHE et les variables de
   position ne servaient a rien, alors qu elles sont bien vivantes sur les cartes
   d assurance vie, dont la regle ne declare que position et z-index. */
/* Le voile blanc bleute et les surcharges de couleur qui vivaient ici sont
   SUPPRIMES : ils etaient penses pour une photo pleine largeur sous un titre a
   lire, pas pour un filigrane a 10 ou 50 % d opacite. Le voile posait en outre
   une couche a z-index 1 par-dessus le logo. Les selecteurs .struct-card__titlewrap
   et .struct-card__issuer-n qu ils ciblaient n existent plus dans le balisage. */

/* Héros : coupon conditionnel. */
.ielp-struct-cards .struct-card__hl {
	display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
	background: linear-gradient(135deg, var(--struct-orange-t1) 0%, var(--struct-orange-t2) 100%); border: 1px solid var(--struct-orange-bd); border-radius: var(--ie-radius-box); padding: 9px 13px;
	box-shadow: 0 7px 18px -12px rgba(224,112,14,.5), inset 0 1px 0 rgba(255,255,255,.6);
}
.ielp-struct-cards .struct-card__hl-val {
	font-size: 22px; font-weight: 800; line-height: 1; letter-spacing: -0.3px;
	background: linear-gradient(135deg, var(--struct-or1), var(--struct-or2));
	-webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--struct-or2);
}
.ielp-struct-cards .struct-card__hl-label { font-size: 10px; line-height: 1.25; color: var(--struct-grey); text-align: right; }
.ielp-struct-cards .struct-card__hl-label strong { color: var(--struct-navy); font-weight: 700; }

/* Lignes clés. */
.ielp-struct-cards .struct-card__rows { display: flex; flex-direction: column; }
.ielp-struct-cards .struct-card__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 12.5px; line-height: 1.3; padding: 5px 0; border-bottom: 1px solid var(--struct-divider); }
.ielp-struct-cards .struct-card__row:last-child { border-bottom: none; }
.ielp-struct-cards .struct-card__row-k { color: var(--struct-text); }
.ielp-struct-cards .struct-card__row-v { color: var(--struct-navy); font-weight: 700; text-align: right; }

/* Énoncé clair de protection du capital. */
.ielp-struct-cards .struct-card__capital {
	display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700;
	border-radius: 10px; padding: 9px 12px;
}
.ielp-struct-cards .struct-card__capital::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.ielp-struct-cards .struct-card__capital--ok   { background: color-mix(in srgb, var(--ie-green) 10%, #fff); color: var(--ie-green); }
.ielp-struct-cards .struct-card__capital--cond { background: color-mix(in srgb, var(--ie-orange) 12%, #fff); color: #b45309; }
.ielp-struct-cards .struct-card__capital--ko   { background: rgba(220,38,38,.10); color: #dc2626; }

/* Pied : Voir la fiche + flèche. */
.ielp-struct-cards .struct-card__foot { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--struct-divider); display: flex; align-items: center; justify-content: space-between; }
.ielp-struct-cards .struct-card__cta-label { font-size: 12.5px; font-weight: 700; color: var(--struct-navy); }
.ielp-struct-cards .struct-card__cta-circle { width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, var(--struct-nv1), var(--struct-nv2)); color: #fff; box-shadow: 0 6px 14px -7px rgba(7,18,74,.55); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.ielp-struct-cards .struct-card__cta-circle svg { width: 16px; height: 16px; }
.ielp-struct-cards .ielp-struct-card:hover .struct-card__cta-circle { background: linear-gradient(135deg, var(--struct-or1), var(--struct-or2)); transform: translateX(2px); box-shadow: 0 8px 16px -7px rgba(224,112,14,.5); }

/* =====================================================================
   VARIANTE A VALIDEE : carte compacte, alignee sur les cartes AV et
   capitalisation. En-tete a deux lignes, grille 2 x 2, deux boutons.
   Les enonces longs (sous-jacent, barriere, rappel) sortent de la carte :
   ils restent dans les champs et s affichent sur la fiche.
   ===================================================================== */

/* La carte n est plus un <a> englobant : un lien de couverture absolu rend
   toute la surface cliquable, et le pied porte deux vrais boutons. */
.ielp-struct-cards .ielp-struct-card .card-cover-link {
	position: absolute; inset: 0; z-index: 1;
	display: block; border: 0; padding: 0; margin: 0;
	background: transparent; font-size: 0;
	/* CASCADE : le kit global pose font-family, font-weight et text-decoration
	   sur un « a » nu a la specificite (0,1,1). On reprend la main par la
	   SPECIFICITE, via le scope de la carte, jamais en nommant
	   .elementor-kit-N dont l identifiant differe en production. */
	font-family: var(--struct-font);
	font-weight: 400;
	color: inherit;
	background-color: transparent;
	box-shadow: none;
	text-decoration: none;
}
.ielp-struct-cards .ielp-struct-card > .struct-card { position: relative; z-index: 2; pointer-events: none; }
.ielp-struct-cards .ielp-struct-card .scpi-sel-ctas,
.ielp-struct-cards .ielp-struct-card .scpi-sel-ctas a { pointer-events: auto; }

/* En-tete : badge et statut sur UNE ligne. */
.ielp-struct-cards .struct-card__top {
	display: flex; align-items: center; justify-content: space-between;
	gap: 8px; flex-wrap: nowrap;
}

/* Statut compact : la date seule, sur une ligne, jamais coupee. */
.ielp-struct-cards .struct-card__statut {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 10.5px; font-weight: 700; line-height: 1;
	padding: 4px 10px; border-radius: 30px; white-space: nowrap;
}
.ielp-struct-cards .struct-card__statut::before {
	content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor;
}
.ielp-struct-cards .struct-card__statut--encours {
	background: color-mix(in srgb, var(--ie-green) 12%, #fff); color: var(--ie-green);
}
.ielp-struct-cards .struct-card__statut--cloture {
	background: var(--ie-s100); color: var(--ie-s400);
}

/* Ligne grise : emetteur et notation reunis, sous le titre. */
.ielp-struct-cards .struct-card__sub {
	margin: 2px 0 0; margin-block-start: 2px; margin-block-end: 0; padding: 0;
	font-family: var(--struct-font);
	font-size: 11.5px; font-weight: 500; font-style: normal;
	line-height: 1.35; letter-spacing: normal; text-align: left; text-transform: none;
	color: var(--ie-s500);
}

/* Atouts : deux lignes a coche, sans encadrement. Le second peut etre un
   avertissement a puce ORANGE, jamais rouge : c est une mise en garde de
   produit, pas une erreur. */
.ielp-struct-cards .ck { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ielp-struct-cards .ck .m-check {
	display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 0;
	font-family: var(--struct-font);
	font-size: 11.5px; font-weight: 500; font-style: normal;
	line-height: 1.35; letter-spacing: normal; text-align: left; text-transform: none;
	color: var(--struct-text);
}
.ielp-struct-cards .ck .m-check .dot {
	flex: 0 0 auto; display: inline-grid; place-items: center;
	width: 15px; height: 15px; margin-top: 1px; border-radius: 50%;
	background: color-mix(in srgb, var(--ie-green) 14%, #fff); color: var(--ie-green);
}
.ielp-struct-cards .ck .m-check .dot svg { width: 9px; height: 9px; display: block; stroke: currentColor; stroke-width: 2; fill: none; }
.ielp-struct-cards .ck .m-check--warn .dot {
	background: color-mix(in srgb, var(--ie-orange) 15%, #fff); color: var(--ie-orange);
}
.ielp-struct-cards .ck .m-check--warn .dot svg { stroke-width: 2.4; stroke-linecap: round; }

/* Grille partagee : rien a styler, seulement la marge propre a cette carte. */
.ielp-struct-cards .grid2.grid2--ico { margin: 0; }

/* Deux boutons : disposition seule, le style vient du greffon scpi-cards.
   font-family redeclaree ici pour la meme raison de cascade que ci-dessus. */
.ielp-struct-cards .scpi-sel-ctas {
	display: flex; flex-direction: column; gap: 8px; margin-top: auto; padding-top: 2px;
}
.ielp-struct-cards .scpi-sel-ctas .scpi-sel-btn-primary,
.ielp-struct-cards .scpi-sel-ctas .scpi-sel-btn-secondary {
	font-family: var(--struct-font);
}

/* Le pied a la fleche ronde n existe plus dans le balisage ; on le neutralise
   pour qu un balisage herite ne le fasse pas reapparaitre. */
.ielp-struct-cards .struct-card__foot { display: none; }

@media (max-width: 600px) {
	.ielp-struct-cards .scpi-sel-ctas { gap: 7px; }
	.ielp-struct-cards .struct-card__top { flex-wrap: wrap; }
}

/* Marges logiques du titre et des puces : hello-reset pose margin-block-* sur
   « p » et « li » nus. Nos raccourcis gagnent deja par la specificite ; on
   nomme les proprietes pour lever toute ambiguite de lecture. */
.ielp-struct-cards .struct-card__name {
	margin-block-start: 0;
	margin-block-end: 0;
}
.ielp-struct-cards .ck .m-check {
	margin-block-start: 0;
	margin-block-end: 0;
	background: transparent;
	border: 0;
	outline: 0;
	list-style: none;
	vertical-align: baseline;
}

/* =====================================================================
   CONTENEUR DE LA GRILLE 2 x 2.

   DEFAUT CORRIGE : les quatre metriques s empilaient en colonne. La feuille
   partagee css/cards-grid-ico.css ne style que les CELLULES, jamais le
   conteneur : son en-tete le dit explicitement, et chaque categorie declare
   son propre .grid2 (av-cards.css:64, capi-cards.css:205, art-card.css:454).
   Aucune ne couvrait .ielp-struct-cards, donc .grid2 restait un bloc ordinaire
   et les cellules retombaient en flux normal.

   On suit donc la convention de la maison plutot que de recopier les regles de
   cellule : une seule declaration de conteneur, calquee sur celle de la
   capitalisation. minmax(0, 1fr) et non 1fr : 1fr vaut minmax(auto, 1fr), et
   une valeur un peu longue ferait gonfler sa colonne au detriment de l autre.
   ===================================================================== */
/* Conteneur : la declaration de per-cards.css:77-81, reprise a l identique et
   sans !important (aucune regle concurrente ici). Les cellules, la pastille et
   la typographie viennent entierement de css/cards-grid-ico.css : rien n est
   redeclare ci-dessous. */
.ielp-struct-cards.ielp-cards-scope .grid2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--divider);
	border: 1px solid var(--divider);
	border-radius: var(--r-box);
	overflow: hidden;
	margin: 0;
}
.ielp-struct-cards.ielp-cards-scope .grid2 .cell {
	background: #fff;
	min-width: 0;
}

@media (max-width: 600px) {
	/* Une seule colonne sous 600px, comme la capitalisation. */
	.ielp-struct-cards.ielp-cards-scope .grid2 { grid-template-columns: minmax(0, 1fr); }
}

/* =====================================================================
   EN-TETE, DISPOSITION FINALE (maquette v4).
   Ligne 1 : badge a gauche, pastille de date a droite.
   Ligne 2 : titre.
   Ligne 3 : emetteur et notations a gauche, logo a droite.
   ===================================================================== */

/* Ligne 3. Le logo est pousse a droite par la gouttiere automatique ; quand il
   n est pas emis, la ligne se referme d elle-meme sur le texte seul, sans
   espace reserve. */
.ielp-struct-cards .struct-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 2px 0 0;
}
.ielp-struct-cards .struct-card__meta .struct-card__sub {
	margin: 0;
	margin-block-start: 0;
	margin-block-end: 0;
	min-width: 0;
	flex: 1 1 auto;
}

/* T4 : la valeur du heros ne se coupe plus. « jusqu a 7,70 % » passait sur deux
   lignes, le pourcent seul sur la seconde. La valeur reste insecable et garde
   sa largeur ; c est le LIBELLE qui se replie a droite. */
.ielp-struct-cards .struct-card__hl {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: nowrap;
}
.ielp-struct-cards .struct-card__hl-val {
	flex: 0 0 auto;
	white-space: nowrap;
}
.ielp-struct-cards .struct-card__hl-label {
	flex: 1 1 auto;
	min-width: 0;
	text-align: right;
	text-wrap: balance;
}

@media (max-width: 600px) {

}

/* =====================================================================
   EN-TETE : LOGO EN FILIGRANE, mecanique des cartes d assurance vie.

   Valeurs reprises de av-cards.css:111-144 (direction << filigrane >>,
   av-tunnel-62). Le logo de l emetteur n est pas une vignette : c est un fond
   d en-tete, contenu et jamais recadre, estompe, place par defaut dans le coin
   bas-droit. Le texte reste net par-dessus. Champ vide : aucune classe
   --media, l en-tete garde son rendu plat, aucune regle ci-dessous ne
   s applique.

   Une seule valeur adaptee, et elle est signalee au rapport : la hauteur
   minimale est de 112px au lieu de 96px chez AV, l en-tete portant ici TROIS
   lignes (badge et date, titre, emetteur et notations) contre deux chez AV.
   Le reste, marges negatives, rayon, bordure basse, degrade, boite du
   filigrane, opacite et flou, est identique.
   ===================================================================== */
.ielp-struct-cards .struct-card--media .struct-card__head {
	position: relative;
	overflow: hidden;
	margin: -16px -16px 0;                 /* AV */
	padding: 16px;                         /* AV */
	min-height: 96px;                      /* AV */
	border-radius: 18px 18px 0 0;          /* AV */
	border-bottom: 1px solid #e6eaf3;      /* AV */
	background: linear-gradient(135deg, #fbfcfe, #f2f5fb);  /* AV */
	display: block;                        /* AV */
}

/* Le filigrane. Cadrage par decalages REELS depuis le bas-droit, comme chez AV :
   posx 100 % colle a droite, 0 % colle a gauche, au-dela le logo deborde et
   overflow:hidden le rogne. Taille pilotee par le zoom, logo CONTENU dans la
   boite, jamais de transform:scale qui recadrerait. */
.ielp-struct-cards .struct-card--media .struct-card__media-img {
	position: absolute; z-index: 0;
	right: calc(100% - var(--struct-img-posx, 100%));
	bottom: calc(100% - var(--struct-img-posy, 100%));
	width: calc(var(--struct-img-zoom, 1.8) * 100px);
	height: calc(var(--struct-img-zoom, 1.8) * 46px);
	object-fit: contain; object-position: center;
	opacity: var(--struct-img-opacity, .10);
	filter: blur(var(--struct-img-blur, 0px));
	pointer-events: none;
}

/* Texte net par-dessus le filigrane. pointer-events:none pour que le clic
   traverse jusqu au lien de couverture, exactement comme chez AV. */
.ielp-struct-cards .struct-card--media .struct-card__top,
.ielp-struct-cards .struct-card--media .struct-card__name,
.ielp-struct-cards .struct-card--media .struct-card__meta {
	position: relative;
	z-index: 1;
}
