/* ══ MDLM EVENTS — PAGE ÉVÉNEMENTS, VUE PHOTO ══════════════════════════════
 *
 * Styles PROPRES à la vue Photo (The Events Calendar Pro) du widget Event
 * View. Barre d'outils, menu des vues, navigation de date (précédent / suivant
 * / « Aujourd'hui » / « À venir »), datepicker, messages, prix, navigation bas
 * et abonnement sont communs à toutes les vues et ne sont PAS réécrits ici :
 * mdlm-events-common.css.
 *
 * Visuel UNIQUEMENT : aucun gabarit TEC surchargé, aucun script ajouté, aucune
 * URL modifiée (placeholder compris).
 *
 * ── SCOPE ─────────────────────────────────────────────────────────────────
 *
 *     :is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo
 *
 * Poids 0,5,0 : au-dessus des sélecteurs TEC Pro de la vue Photo (jusqu'à
 * 0,4,0) et de la grille commune de TEC (gouttières, largeurs de colonnes),
 * sans !important.
 *
 * ── MARQUAGE ET STYLES TEC PRO — relevés sur la page réelle, pas supposés ─
 * (/events/photo/ : un événement mis en avant avec image, un événement
 *  multi-jours sans image)
 *
 * - div.tribe-events-pro-photo > ul.tribe-common-g-row.--gutters
 *     > li.tribe-common-g-col.tribe-events-pro-photo__event (--featured)
 *         > article
 *             > __event-featured-image-wrapper > a.__event-featured-image-link > img
 *             > __event-details-wrapper
 *                 > __event-date-tag.tribe-common-g-col > time > __month + __daynum
 *                 > __event-details > h3.__event-title, __event-datetime, __event-cost
 * - TEC Pro : colonnes à 50 % (xsmall) / 33 % (medium), gouttières négatives
 *   sur la rangée, rembourrages sur les colonnes, marge basse de 24 / 48 px.
 *   Remplacés par une vraie grille.
 * - Sans image : TEC Pro rend son image de remplacement
 *   (…/tribe-event-placeholder-image.svg) et l'événement NE porte PAS
 *   .has-post-thumbnail. C'est ce contrat — et non l'URL — qui est ciblé :
 *   .tribe-events-pro-photo__event:not(.has-post-thumbnail).
 * - Mis en avant : __event-datetime-featured-icon (signet) +
 *   __event-datetime-featured-text « Mis en avant », texte VISIBLE en Photo
 *   (à la différence de la liste et du jour).
 * - Ordre des détails : TEC Pro range date (order 1) avant le titre (3), et
 *   laisse le prix à order 0. Réordonné : titre, date, catégories, prix.
 *
 * ── GRILLE ────────────────────────────────────────────────────────────────
 * Colonnes selon les points de rupture de TEC, mesurés sur la VUE (donc sur la
 * largeur Elementor), bornés par la fenêtre pour la tablette :
 *   vue « mobile »                         1 colonne
 *   vue « medium »                         2 colonnes
 *   vue « full » et fenêtre > 1024 px      3 colonnes
 *   vue « full » et fenêtre ≤ 1024 px      2 colonnes
 * Cartes d'une même rangée à la même hauteur ; image toujours en 16:9 ; prix
 * ramené en bas de la carte.
 *
 * ── SOMMAIRE ──────────────────────────────────────────────────────────────
 *  1. Grille
 *  2. Carte
 *  3. Image
 *  4. Événement sans image
 *  5. Contenu et bloc date
 *  6. Titre, date / heure, mis en avant, prix
 *  7. Mouvement réduit
 */


/* ══ 1. GRILLE ═════════════════════════════════════════════════════════════ */

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo > ul.tribe-common-g-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.25rem;
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo.tribe-common--breakpoint-medium .tribe-events-pro-photo > ul.tribe-common-g-row {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo.tribe-common--breakpoint-full .tribe-events-pro-photo > ul.tribe-common-g-row {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.625rem;
}

/* Colonne TEC : largeur, gouttière et marge remplacées par la case de grille.
   En flex colonne, pour que la carte s'étire à la hauteur de la rangée. */
:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo li.tribe-events-pro-photo__event {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}


/* ══ 2. CARTE ══════════════════════════════════════════════════════════════
 * L'article est la carte : blanche, bordure bleu pâle, rayon 18, image jusqu'aux
 * bords. overflow: hidden rogne l'image au rayon de la carte — un seul rayon,
 * aucun sur l'image. Survol : bordure plus soutenue, ombre très légère, 2 px
 * de montée au plus. */

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event > article {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	box-sizing: border-box;
	height: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--mdlm-ev-line);
	border-radius: 18px;
	background: var(--mdlm-ev-white);
	box-shadow: none;
	transition: border-color var(--mdlm-ev-transition), box-shadow var(--mdlm-ev-transition), transform var(--mdlm-ev-transition);
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event > article:is(:hover, :focus-within) {
	border-color: var(--mdlm-ev-line-strong);
	box-shadow: var(--mdlm-el-shadow-card);
	transform: translateY(-2px);
}


/* ══ 3. IMAGE ══════════════════════════════════════════════════════════════
 * Le lien porte le cadre 16:9 ; l'image le remplit (object-fit: cover), en
 * position absolue — que la variante « --grid » de TEC Pro soit active ou non,
 * son rembourrage de 56,25 % est neutralisé et la hauteur ne double jamais.
 * Survol : zoom de 2 %, retiré si l'utilisateur réduit les animations. */

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-featured-image-wrapper {
	flex: none;
	width: 100%;
	margin: 0;
	padding: 0;
	background: var(--mdlm-ev-map-placeholder);
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo a.tribe-events-pro-photo__event-featured-image-link {
	position: relative;
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	aspect-ratio: 16 / 9;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	background: transparent;
	box-shadow: none;
	opacity: 1;
	transition: none;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo a.tribe-events-pro-photo__event-featured-image-link:is(:hover, :focus, :active) {
	opacity: 1;
	outline: none;
}

/* La carte rogne ses bords : l'anneau de focus est donc intérieur. */
:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo a.tribe-events-pro-photo__event-featured-image-link:focus-visible {
	outline: 3px solid var(--mdlm-ev-blue);
	outline-offset: -3px;
	box-shadow: none;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo img.tribe-events-pro-photo__event-featured-image {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	object-fit: cover;
	object-position: center;
	transition: transform .35s ease;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event > article:hover img.tribe-events-pro-photo__event-featured-image {
	transform: scale(1.02);
}


/* ══ 4. ÉVÉNEMENT SANS IMAGE ═══════════════════════════════════════════════
 * Image de remplacement de TEC Pro : présentée petite et discrète au centre
 * d'un cadre bleu très pâle du même 16:9, au lieu d'un grand visuel gris.
 * Ciblée par l'absence de .has-post-thumbnail (contrat relevé dans le DOM),
 * jamais par l'URL du fichier. */

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event:not(.has-post-thumbnail) .tribe-events-pro-photo__event-featured-image-wrapper {
	background: var(--mdlm-ev-panel);
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event:not(.has-post-thumbnail) img.tribe-events-pro-photo__event-featured-image {
	padding: 14% 32%;
	object-fit: contain;
	opacity: .45;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event:not(.has-post-thumbnail) > article:hover img.tribe-events-pro-photo__event-featured-image {
	transform: none;
}


/* ══ 5. CONTENU ET BLOC DATE ═══════════════════════════════════════════════
 *   ╭─────╮  Matinée Nettoyage Citoyen
 *   │ SEP │  (🔖 MIS EN AVANT) 10h30
 *   │ 26  │
 *   ╰─────╯  (Gratuit)
 * Bas de carte en flex : la date à gauche, les informations à droite, qui
 * s'étirent jusqu'au bas de la carte pour y ramener le prix. */

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-details-wrapper {
	display: flex;
	flex: 1 1 auto;
	align-items: stretch;
	gap: .875rem;
	box-sizing: border-box;
	min-width: 0;
	margin: 0;
	padding: 1rem;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo.tribe-common--breakpoint-medium .tribe-events-pro-photo__event-details-wrapper {
	padding: 1.125rem 1.25rem 1.25rem;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-date-tag {
	flex: none;
	align-self: flex-start;
	width: auto;
	min-width: 3.5rem;
	margin: 0;
	padding: 0;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-date-tag-datetime {
	display: flex;
	flex-direction: column;
	align-items: center;
	box-sizing: border-box;
	padding: .5rem .625rem .5625rem;
	border: 1px solid var(--mdlm-ev-line);
	border-radius: 12px;
	background: var(--mdlm-ev-tint);
	text-align: center;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-date-tag-month {
	margin: 0;
	color: var(--mdlm-ev-blue-ink);
	font-family: var(--mdlm-ev-font-text);
	font-size: .6875rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .06em;
	text-transform: uppercase;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-date-tag-daynum {
	margin: .1875rem 0 0;
	color: var(--mdlm-ev-navy);
	font-family: var(--mdlm-ev-font-title);
	font-size: 1.625rem;
	font-weight: 800;
	line-height: 1;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-details {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	margin: 0;
}


/* ══ 6. TITRE, DATE / HEURE, MIS EN AVANT, PRIX ════════════════════════════ */

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-details .tribe-events-pro-photo__event-title {
	order: 1;
	margin: 0;
	padding: 0;
	color: var(--mdlm-ev-navy);
	font-family: var(--mdlm-ev-font-title);
	font-size: 1.125rem;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -.005em;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo.tribe-common--breakpoint-medium .tribe-events-pro-photo__event-details .tribe-events-pro-photo__event-title {
	font-size: 1.1875rem;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo a.tribe-events-pro-photo__event-title-link,
:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo a.tribe-events-pro-photo__event-title-link:visited {
	border: 0;
	background: transparent;
	box-shadow: none;
	color: var(--mdlm-ev-navy);
	font: inherit;
	text-decoration: none;
	overflow-wrap: break-word;
	transition: color var(--mdlm-ev-transition);
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo a.tribe-events-pro-photo__event-title-link:is(:hover, :focus, :active) {
	border: 0;
	background: transparent;
	color: var(--mdlm-ev-blue-ink);
	font: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
	outline: none;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo a.tribe-events-pro-photo__event-title-link:focus-visible {
	border-radius: 3px;
	outline: 2px solid var(--mdlm-ev-blue);
	outline-offset: 2px;
	box-shadow: none;
}

/* Date / heure sous le titre ; texte TEC inchangé (multi-jours compris). */
:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-details .tribe-events-pro-photo__event-datetime {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	row-gap: .375rem;
	order: 2;
	margin: .4375rem 0 0;
	color: var(--mdlm-ev-muted);
	font-family: var(--mdlm-ev-font-text);
	font-size: .8125rem;
	font-weight: 600;
	line-height: 1.4;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo.tribe-common--breakpoint-medium .tribe-events-pro-photo__event-details .tribe-events-pro-photo__event-datetime {
	font-size: .875rem;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-datetime :is(time, span:not([class*="featured"])) {
	color: inherit;
	font: inherit;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-details .tec-events-calendar-photo__event-categories {
	order: 3;
}

/* Mis en avant : signet et texte (visible chez TEC Pro) soudés en une pastille
   ambre, comme dans la liste. */
:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-datetime-featured-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	height: 1.5rem;
	margin: 0;
	padding: 0 .3125rem 0 .5625rem;
	border: 1px solid var(--mdlm-ev-amber-line);
	border-right: 0;
	border-radius: var(--mdlm-ev-radius-pill) 0 0 var(--mdlm-ev-radius-pill);
	background: var(--mdlm-ev-amber-tint);
	color: var(--mdlm-ev-amber-ink);
	line-height: 1;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-datetime-featured-icon-svg {
	display: block;
	width: 8px;
	height: 10px;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-datetime-featured-icon-svg path {
	fill: currentColor;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-datetime-featured-text {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	height: 1.5rem;
	margin: 0 .5rem 0 0;
	padding: 0 .625rem 0 0;
	border: 1px solid var(--mdlm-ev-amber-line);
	border-left: 0;
	border-radius: 0 var(--mdlm-ev-radius-pill) var(--mdlm-ev-radius-pill) 0;
	background: var(--mdlm-ev-amber-tint);
	color: var(--mdlm-ev-amber-ink);
	font-family: var(--mdlm-ev-font-text);
	font-size: .6875rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* Prix : badge vert de la feuille commune ; ramené en bas de la carte. */
:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event-details .tribe-events-c-small-cta.tribe-events-pro-photo__event-cost {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-self: flex-start;
	gap: .375rem .5rem;
	order: 4;
	margin: auto 0 0;
	padding: .75rem 0 0;
	font-size: .8125rem;
	line-height: 1.3;
}

:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-c-small-cta.tribe-events-pro-photo__event-cost > * {
	margin: 0;
}


/* ══ 7. MOUVEMENT RÉDUIT ═══════════════════════════════════════════════════
 * Ni montée de carte, ni zoom d'image, ni transition. */

@media (prefers-reduced-motion: reduce) {
	:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo :is(.tribe-events-pro-photo__event > article, img.tribe-events-pro-photo__event-featured-image, a.tribe-events-pro-photo__event-title-link) {
		transition: none;
	}

	:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event > article:is(:hover, :focus-within),
	:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo .tribe-events-pro-photo__event > article:hover img.tribe-events-pro-photo__event-featured-image {
		transform: none;
	}
}


/* ══ GRILLE — TABLETTE ═════════════════════════════════════════════════════
 * Vue « full » dans une fenêtre de tablette : deux colonnes au lieu de trois,
 * pour garder des cartes confortables. Écrit en fin de feuille : l'emporte sur
 * la règle « full » de même poids. */

@media (max-width: 1024px) {
	:is(.mdlm-events-view, .mdlm-events-list, .mdlm-events-category, .mdlm-events-tag-view) .tribe-common.tribe-events.tribe-events-view.tribe-events-view--photo.tribe-common--breakpoint-full .tribe-events-pro-photo > ul.tribe-common-g-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem;
	}
}
