/* Hélion – Catalogue des œuvres. Styles volontairement sobres : typographie et couleurs héritées du thème. */

/* ---------- Fiche ---------- */
/* Le titre de l'œuvre n'est pas répété dans le bandeau du thème : il figure déjà dans la fiche. */
.helion-fiche .eltdf-title-holder .eltdf-page-title { display: none; }
.helion-oeuvre {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 2.5em;
	align-items: start;
}
.helion-oeuvre__image { margin: 0; }
.helion-oeuvre__image img { display: block; width: 100%; height: auto; }
.helion-oeuvre__media { position: sticky; top: 2em; }
.helion-oeuvre__galerie {
	list-style: none;
	margin: 1em 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .6em;
}
.helion-oeuvre__galerie li { margin: 0; }
.helion-oeuvre__galerie a { display: block; aspect-ratio: 1; background: rgba(0, 0, 0, .04); cursor: zoom-in; }
.helion-oeuvre__galerie img { display: block; width: 100%; height: 100%; object-fit: contain; }
.helion-oeuvre__titre { margin: 1.4em 0 .4em; text-transform: uppercase; }
.helion-oeuvre__rubrique:first-child .helion-oeuvre__titre { margin-top: 0; }
.helion-oeuvre__valeur p { margin: 0 0 .5em; }
.helion-oeuvre__similaires { margin-top: 2em; padding-top: 1em; border-top: 1px solid rgba(0, 0, 0, .12); }

@media (max-width: 782px) {
	.helion-oeuvre { grid-template-columns: 1fr; gap: 1.5em; }
	.helion-oeuvre__media { position: static; }
}

/* ---------- Fiche, nouvelle présentation ---------- */
/* Le cartel remplace le titre et la date de publication affichés par le thème. */
.helion-fiche-nouvelle .eltdf-post-info-top,
.helion-fiche-nouvelle .eltdf-post-text-main > .eltdf-post-title { display: none; }

.helion-oeuvre--nouvelle { display: block; }
.helion-oeuvre__haut {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(16em, 2fr);
	gap: 3.5em;
	align-items: start;
}
.helion-oeuvre--nouvelle .helion-oeuvre__media { position: static; }
.helion-oeuvre--nouvelle .helion-oeuvre__image a {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2.5em;
	background: rgba(0, 0, 0, .035);
}
.helion-oeuvre--nouvelle .helion-oeuvre__image img {
	width: auto;
	max-width: 100%;
	max-height: 75vh;
	box-shadow: 0 .4em 1.6em rgba(0, 0, 0, .18);
}
.helion-oeuvre--nouvelle .helion-oeuvre__galerie { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.helion-oeuvre__cartel { position: sticky; top: 2em; padding-top: .5em; }
.helion-oeuvre__nom {
	margin: 0 0 .8em;
	font-size: 2em;
	line-height: 1.15;
	letter-spacing: .08em;
}
.helion-oeuvre__cartel p { margin: 0 0 .35em; font-size: 1.1em; }
.helion-oeuvre__cartel-date { font-style: italic; }
.helion-oeuvre__cartel-dimensions { opacity: .75; }
.helion-oeuvre--nouvelle .helion-oeuvre__similaires { margin-top: 2.2em; padding-top: 1.2em; }
.helion-oeuvre--nouvelle .helion-oeuvre__similaires ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .5em;
}
.helion-oeuvre--nouvelle .helion-oeuvre__similaires li { margin: 0; }
.helion-oeuvre--nouvelle .helion-oeuvre__similaires a {
	display: inline-block;
	padding: .35em .9em;
	border: 1px solid currentColor;
	color: inherit;
	font-size: .9em;
	text-decoration: none;
	transition: background .2s, color .2s;
}
.helion-oeuvre--nouvelle .helion-oeuvre__similaires a:hover { background: #000; border-color: #000; color: #fff; }

.helion-oeuvre__intitule {
	margin: 0 0 .6em;
	font-size: .8em;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	opacity: .6;
}
.helion-oeuvre__notice { margin-top: 4em; border-top: 1px solid rgba(0, 0, 0, .15); }
.helion-oeuvre__ligne {
	display: grid;
	grid-template-columns: 12em minmax(0, 46em);
	gap: 2em;
	padding: 1.6em 0;
	border-bottom: 1px solid rgba(0, 0, 0, .08);
}
.helion-oeuvre__ligne .helion-oeuvre__intitule { margin: .25em 0 0; }
.helion-oeuvre__ligne .helion-oeuvre__valeur p { margin: 0 0 .6em; }
.helion-oeuvre__ligne .helion-oeuvre__valeur p:last-child { margin-bottom: 0; }

@media (max-width: 782px) {
	.helion-oeuvre__haut { grid-template-columns: 1fr; gap: 2em; }
	.helion-oeuvre--nouvelle .helion-oeuvre__image a { padding: 1em; }
	.helion-oeuvre--nouvelle .helion-oeuvre__galerie { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.helion-oeuvre__cartel { position: static; }
	.helion-oeuvre__nom { font-size: 1.6em; }
	.helion-oeuvre__notice { margin-top: 2.5em; }
	.helion-oeuvre__ligne { grid-template-columns: 1fr; gap: .2em; padding: 1.2em 0; }
}

/* ---------- Fiche, présentation immersive ---------- */
.helion-fiche-immersive .eltdf-post-info-top,
.helion-fiche-immersive .eltdf-post-text-main > .eltdf-post-title { display: none; }
body.helion-fiche-immersive { overflow-x: clip; } /* bandeaux en pleine largeur (100vw) */
/* La scène suit directement l'en-tête du site (le thème réserve 70 à 130 px au-dessus du contenu). */
body.helion-fiche-immersive .eltdf-content .eltdf-content-inner > .eltdf-container > .eltdf-container-inner { padding-top: 0; }
.helion-fiche-immersive .eltdf-blog-single .eltdf-post-heading { display: none; }
.helion-fiche-immersive .eltdf-blog-single .eltdf-post-text { display: block; }

.helion-oeuvre--immersive { display: block; }

/* Scène : image sur fond sombre, flou tiré de l'œuvre */
.helion-immersif__scene {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	box-sizing: border-box;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	padding: clamp(2em, 6vw, 5em) 1em clamp(1.5em, 3vw, 2.5em);
	background: #121212;
	text-align: center;
}
.helion-immersif__scene::before {
	content: "";
	position: absolute;
	inset: -10%;
	z-index: -1;
	background: var(--helion-fond) center / cover no-repeat;
	filter: blur(60px) saturate(1.3) brightness(.35);
	transform: scale(1.1);
}
.helion-immersif__image { position: relative; width: fit-content; max-width: 100%; margin: 0 auto; }
.helion-immersif__image a { display: block; cursor: zoom-in; }
.helion-immersif__image img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: min(78vh, 900px);
	margin: 0 auto;
	box-shadow: 0 1.5em 4em rgba(0, 0, 0, .55), 0 .3em 1em rgba(0, 0, 0, .35);
	transition: opacity .35s ease, transform .6s ease;
}
.helion-immersif__image a:hover img { transform: scale(1.01); }
.helion-immersif__image img.is-changement { opacity: .15; }
.helion-immersif__agrandir {
	position: absolute;
	right: .6em;
	bottom: .6em;
	width: 2.2em;
	height: 2.2em;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, .55);
	color: #fff;
	font-size: 1.1em;
	line-height: 2.2em;
	cursor: pointer;
	opacity: 0;
	transition: opacity .25s;
}
.helion-immersif__image:hover .helion-immersif__agrandir,
.helion-immersif__agrandir:focus-visible { opacity: 1; }
.helion-immersif__vignettes {
	list-style: none;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: .6em;
	margin: 1.8em 0 0;
	padding: 0;
}
.helion-immersif__vignettes li { margin: 0; }
.helion-immersif__vignettes a {
	display: block;
	width: 64px;
	height: 64px;
	opacity: .5;
	outline: 1px solid rgba(255, 255, 255, .25);
	outline-offset: 3px;
	transition: opacity .2s, outline-color .2s;
}
.helion-immersif__vignettes a:hover { opacity: .85; }
.helion-immersif__vignettes a.is-active { opacity: 1; outline-color: #fff; }
.helion-immersif__vignettes img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* En-tête : identité à gauche, fiche technique à droite */
.helion-immersif__entete {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 1.5em 4em;
	align-items: end;
	padding: clamp(2.5em, 5vw, 4.5em) 0 2.5em;
	border-bottom: 1px solid rgba(0, 0, 0, .12);
}
.helion-immersif__surtitre {
	margin: 0 0 .8em;
	font-size: .78em;
	letter-spacing: .25em;
	text-transform: uppercase;
	opacity: .55;
}
.helion-immersif__titre {
	margin: 0;
	font-size: clamp(2em, 4.5vw, 3.6em);
	line-height: 1.05;
	letter-spacing: .04em;
}
.helion-immersif__date { margin: .5em 0 0; font-size: 1.4em; font-style: italic; opacity: .7; }
.helion-immersif__faits {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10em, 1fr));
	gap: 1.4em 2em;
	margin: 0;
}
.helion-immersif__faits div { padding-top: .8em; border-top: 2px solid currentColor; }
.helion-immersif__faits dt {
	margin: 0 0 .35em;
	font-size: .72em;
	letter-spacing: .2em;
	text-transform: uppercase;
	opacity: .55;
}
.helion-immersif__faits dd { margin: 0; font-size: 1.1em; line-height: 1.4; }
.helion-immersif__faits dd span { display: block; font-size: .85em; opacity: .6; }
.helion-immersif__similaires {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6em 1em;
	margin: 0;
	padding: 0;
	border: 0;
}
.helion-immersif__similaires > span { font-size: .72em; letter-spacing: .2em; text-transform: uppercase; opacity: .55; }
.helion-immersif__similaires ul { list-style: none; display: flex; flex-wrap: wrap; gap: .5em; margin: 0; padding: 0; }
.helion-immersif__similaires li { margin: 0; }
.helion-immersif__similaires a {
	display: inline-block;
	padding: .4em 1.1em;
	border: 1px solid rgba(0, 0, 0, .25);
	border-radius: 2em;
	color: inherit;
	font-size: .9em;
	text-decoration: none;
	transition: background .2s, color .2s, border-color .2s;
}
.helion-immersif__similaires a:hover { background: #121212; border-color: #121212; color: #fff; }

/* Notice avec sommaire */
.helion-immersif__corps {
	display: grid;
	grid-template-columns: 13em minmax(0, 48em);
	gap: 4em;
	padding: 3.5em 0 2em;
}
.helion-immersif__sommaire { position: sticky; top: 2em; align-self: start; }
.helion-immersif__sommaire p { margin: 0 0 1em; font-size: .72em; letter-spacing: .2em; text-transform: uppercase; opacity: .55; }
.helion-immersif__sommaire ul { list-style: none; margin: 0; padding: 0; border-left: 1px solid rgba(0, 0, 0, .12); }
.helion-immersif__sommaire li { margin: 0; }
.helion-immersif__sommaire a {
	display: block;
	margin-left: -1px;
	padding: .35em 0 .35em 1em;
	border-left: 2px solid transparent;
	color: inherit;
	text-decoration: none;
	opacity: .6;
	transition: opacity .2s, border-color .2s;
}
.helion-immersif__sommaire a:hover,
.helion-immersif__sommaire a.is-courant { opacity: 1; border-left-color: currentColor; }
.helion-immersif__section { padding-bottom: 2.8em; scroll-margin-top: 2em; }
.helion-immersif__section h3 { margin: 0 0 .8em; font-size: 1.6em; letter-spacing: .06em; }
.helion-immersif__section .helion-oeuvre__valeur { font-size: 1.12em; line-height: 1.75; }
.helion-immersif__section .helion-oeuvre__valeur p { margin: 0 0 .7em; }
.helion-immersif__chrono { list-style: none; margin: 0; padding: 0; }
.helion-immersif__chrono li {
	position: relative;
	display: grid;
	grid-template-columns: 5.5em minmax(0, 1fr);
	gap: 1em;
	margin: 0;
	padding: .75em 0 .75em 1.4em;
	border-left: 1px solid rgba(0, 0, 0, .15);
}
.helion-immersif__chrono li::before {
	content: "";
	position: absolute;
	left: -5px;
	top: 1.35em;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: currentColor;
}
.helion-immersif__annee { font-weight: 700; font-size: 1.05em; }

/* Œuvres proches : bandeau défilant */
.helion-immersif__proches { padding: 3em 0 1em; border-top: 1px solid rgba(0, 0, 0, .12); }
.helion-immersif__proches-tete { display: flex; justify-content: space-between; align-items: baseline; gap: 1em; margin-bottom: 1.5em; }
.helion-immersif__proches-tete h3 { margin: 0; font-size: 1.6em; letter-spacing: .06em; }
.helion-immersif__proches-tete a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.helion-immersif__proches ul {
	list-style: none;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(200px, 1fr);
	gap: 1.5em;
	margin: 0;
	padding: 0 0 1em;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}
.helion-immersif__proches li { margin: 0; scroll-snap-align: start; }
.helion-immersif__proches a { display: block; color: inherit; text-decoration: none; }
.helion-immersif__carte-image { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: rgba(0, 0, 0, .04); }
.helion-immersif__carte-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.helion-immersif__proches a:hover img { transform: scale(1.06); }
.helion-immersif__carte-titre { display: block; margin-top: .7em; font-weight: 600; }
.helion-immersif__carte-date { display: block; font-size: .88em; font-style: italic; opacity: .65; }

/* Apparition au défilement (seulement si le script est actif et les animations acceptées) */
@media (prefers-reduced-motion: no-preference) {
	.helion-anim .helion-revele { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
	.helion-anim .helion-revele.is-visible { opacity: 1; transform: none; }
}

@media (max-width: 960px) {
	.helion-immersif__entete { grid-template-columns: 1fr; align-items: start; }
	.helion-immersif__corps { grid-template-columns: 1fr; gap: 1.5em; }
	.helion-immersif__sommaire { position: static; }
	.helion-immersif__sommaire ul { display: flex; flex-wrap: wrap; gap: .3em 1.2em; border: 0; }
	.helion-immersif__sommaire a { padding: .2em 0; border: 0; margin: 0; text-decoration: underline; }
}
@media (max-width: 600px) {
	.helion-immersif__vignettes a { width: 52px; height: 52px; }
	.helion-immersif__agrandir { opacity: 1; }
	.helion-immersif__chrono li { grid-template-columns: 1fr; gap: .1em; }
	.helion-immersif__proches ul { grid-auto-columns: 62%; }
}

/* ---------- Catalogue ---------- */
.helion-bascule {
	display: inline-flex;
	flex-wrap: wrap;
	margin: 0 0 1.5em;
	border: 1px solid #000;
}
.helion-bascule__choix {
	padding: .65em 1.4em;
	color: inherit;
	text-decoration: none;
	transition: background .2s, color .2s;
}
.helion-bascule__choix + .helion-bascule__choix { border-left: 1px solid #000; }
.helion-bascule__choix small { margin-left: .4em; opacity: .6; }
.helion-bascule__choix:hover { background: rgba(0, 0, 0, .06); }
.helion-bascule__choix.is-active { background: #000; color: #fff; }
.helion-bascule__choix.is-active:hover { background: #000; }
@media (max-width: 600px) {
	.helion-bascule { display: flex; }
	.helion-bascule__choix { flex: 1; text-align: center; padding: .65em .6em; }
	.helion-bascule__choix small { display: block; margin: 0; }
}

.helion-catalogue { padding: 3em 0 4em; }
.helion-catalogue__titre { margin: 0 0 .8em; }

.helion-recherche { margin-bottom: 2.5em; }
.helion-recherche fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.helion-recherche legend { font-weight: 600; margin-bottom: .5em; padding: 0; }
.helion-recherche input[type="search"],
.helion-recherche input[type="text"],
.helion-recherche input[type="number"],
.helion-recherche select {
	width: 100%;
	box-sizing: border-box;
	padding: .55em .7em;
	border: 1px solid rgba(0, 0, 0, .2);
	background: #fff;
	font: inherit;
	margin: .25em 0 0;
}
.helion-recherche__ligne { display: flex; gap: 1em; align-items: center; flex-wrap: wrap; }
.helion-recherche__ligne--texte { margin-bottom: 1.5em; }
.helion-recherche__libre { flex: 1 1 18em; }
.helion-recherche__libre input { margin: 0; font-size: 1.1em; }
.helion-recherche__bouton {
	padding: .75em 2em;
	border: 0;
	background: #000;
	color: #fff;
	font: inherit;
	cursor: pointer;
}
.helion-recherche__grille {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13em, 1fr));
	gap: 1.5em 2em;
}
.helion-recherche__duo { display: flex; gap: .75em; }
.helion-recherche__duo label { flex: 1; }
.helion-recherche__tolerance { display: block; margin-top: .5em; }
.helion-recherche__case { display: block; margin: .2em 0; cursor: pointer; }
.helion-recherche__case small { opacity: .6; }
.helion-recherche__champ { display: block; }
.helion-recherche__avance { margin-top: 1.5em; }
.helion-recherche__filtres > summary { display: none; cursor: pointer; font-weight: 600; margin-bottom: 1em; }
.helion-recherche__avance summary { cursor: pointer; font-weight: 600; margin-bottom: 1em; }
.helion-recherche__ligne--pied { justify-content: space-between; margin-top: 1.5em; padding-top: 1em; border-top: 1px solid rgba(0, 0, 0, .12); }
.helion-recherche__ligne--pied select { width: auto; margin-left: .5em; }
.helion-recherche__total { margin: 0; }

.helion-resultats {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 2em 1.5em;
}
.helion-carte { margin: 0; }
.helion-carte__lien { display: block; color: inherit; text-decoration: none; }
.helion-carte__image {
	display: block;
	aspect-ratio: 1;
	background: rgba(0, 0, 0, .04);
	overflow: hidden;
}
.helion-carte__image img { width: 100%; height: 100%; object-fit: contain; transition: transform .3s; }
.helion-carte__lien:hover img { transform: scale(1.03); }
.helion-carte__titre { display: block; margin-top: .7em; font-weight: 600; }
.helion-carte__meta { display: block; font-size: .85em; opacity: .7; }

.helion-pagination { margin-top: 3em; text-align: center; }
.helion-pagination .page-numbers { display: inline-block; padding: .3em .7em; }
.helion-pagination .current { font-weight: 700; }
.helion-resultats__vide { padding: 2em 0; }
.helion-a-faire { padding: 3em 0 6em; font-size: 1.6em; text-align: center; }

@media (max-width: 782px) {
	.helion-recherche__filtres > summary { display: list-item; }
}

@media (max-width: 600px) {
	.helion-resultats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5em 1em; }
}

/* ---------- Visionneuse ---------- */
.helion-oeuvre__image a { cursor: zoom-in; display: block; }
.helion-visionneuse {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(10, 10, 10, .94);
	overflow: auto;
}
.helion-visionneuse.is-ouverte { display: flex; }
.helion-visionneuse__image {
	max-width: 100vw;
	max-height: 100vh;
	width: auto;
	height: auto;
	object-fit: contain;
	cursor: zoom-in;
}
.helion-visionneuse.is-reelle { display: block; }
.helion-visionneuse.is-reelle .helion-visionneuse__image { max-width: none; max-height: none; cursor: zoom-out; }
.helion-visionneuse__fermer {
	position: fixed;
	top: .5em;
	right: .6em;
	z-index: 1;
	width: 1.6em;
	height: 1.6em;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, .55);
	color: #fff;
	font: 2em/1 sans-serif;
	cursor: pointer;
}
.helion-visionneuse__nav {
	position: fixed;
	top: 50%;
	z-index: 1;
	width: 1.6em;
	height: 1.6em;
	margin-top: -.8em;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, .55);
	color: #fff;
	font: 2em/1 sans-serif;
	cursor: pointer;
}
.helion-visionneuse__nav--prec { left: .6em; }
.helion-visionneuse__nav--suiv { right: .6em; }
.helion-visionneuse__nav[hidden] { display: none; }
html.helion-visionneuse-active { overflow: hidden; }
