@charset "utf-8";
/* CSS Document */

html, body {
	height: 100%;
	scroll-behavior: smooth;
}

body {
	background: #fff;
	font-size: 1vw;
	font-family: 'Open Sans', sans-serif;
	font-weight: 500;
	line-height: 1.8vw;
	color: #000;
	margin: 0;
	overflow-x: hidden;
}

a {
	text-decoration: none;
	font-weight: 800;
	color: #000;
}

.filtre-actif { color: #f0f; }

a:hover { color: #f0f; }

img {
	width: 100%;
	height: auto;
	display: block;
}

.presentation-toggle {
	position: fixed;
	top: 5vw;
	left: 24vw;
	height: 3.5vw;
	width: 3.5vw;
	z-index: 10;
	border-radius: 0.25vw;
	background-size: cover;
	background-position: center;
	background-color: #f0f;
	opacity: 0.7;
	transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.presentation-toggle:hover {
	background-color: #70f;
	opacity: 1;
}

.filtrage-toggle {
	position: fixed;
	top: 0;
	left: 15vw;
	z-index: 10;
	font-weight: 800;
	color: #fff;
	background-color: #f0f;
	padding: 0.5vw 1vw 0.2vw 1vw;
	opacity: 0.7;
	transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.filtrage-toggle:hover {
	color: #fff;
	opacity: 1;
}

.exposition {
	position: relative;
	width: 100%;
	margin-bottom: 1vh;
	z-index: 0;
}

.exposition .captation {
	position: absolute;
	bottom: 5%;
	left: 2%;
	width: 96%;
}

.captation .titre {
	font-size: 6vw;
	font-weight: 800;
	text-align: right;
	color: #fff;
	text-shadow: 2px 2px 2px black;
	margin-bottom: 2%;
	opacity: 0.9;
}

.captation .sousTitre {
	font-size: 2vw;
	font-weight: 800;
	text-align: right;
	color: #fff;
	text-shadow: 2px 2px 2px black;
	margin-bottom: 2%;
	opacity: 0.9;
}

.captation .resume {
	position: relative;
	left: 65%;
	width: 31%;
	font-size: 1.2vw;
	font-weight: 500;
	background-color: rgba(255, 255, 255, 0.9);
	padding-top: 2vw;
	padding-left: 2vw;
	padding-right: 2vw;
	padding-bottom: 0.4vw;
}

.suite {
	position: relative;
	color: #FFF;
	padding: 1vw;
	line-height: 4vw;
	background-color: #999;
}

.row {
	padding-top: 4vw;
	display: flex;
	flex-wrap: wrap;
}

.column { box-sizing: border-box; }

.content { width: 100%; }

.column.annee {
	padding-left: 2vw;
	width: 13%;
}

.column.lieu { width: 45%; }

.column.texte {
	width: 35%;
	font-size: 1.1vw;
	line-height: 1.75vw;
}

.section { margin-bottom: 3vw; }

.theme {
	font-size: 2vw;
	font-weight: 800;
	padding-top: 3vh;
	padding-bottom: 3vh;
}

.enTete .titre {
	position: absolute;
	top: 3vw;
	right: 1%;
	font-size: 8vw;
	font-weight: 800;
	line-height: 0vw;
	text-shadow: 2px -2px 3px #FFFFFF;
	z-index: 3;
}

.enTete .titre a {
	font-size: 8vw;
	font-weight: 800;
}

.enTete .titre a:hover { color: #f0f; }

.enTete .sousTitre {
	position: absolute;
	top: 4vw;
	right: 1%;
	line-height: 5vw;
	text-shadow: 2px -2px 3px #FFFFFF;
	z-index: 5;
}

.enTete .sousTitre a {
	font-size: 3vw;
	font-weight: 800;
}

.enTete .expo {
	position: absolute;
	top: 7vw;
	right: 1%;
	color: white;
	line-height: 5vw;
	font-size: 3vw;
	font-weight: 800;
	width: auto;
	z-index: 4;
}

.enTete .lieu {
	position: absolute;
	top: 12vw;              /* sous .expo (7 + ~5) */
	right: 1%;
	color: white;
	line-height: 3.2vw;
	font-size: 2vw;         /* un peu plus petit */
	font-weight: 800;
	width: auto;
	z-index: 4;
}

.enTete .expo:first-of-type { top: 7vw; }

.enTete .expo:nth-of-type(2) { top: 12vw; /* 7vw + une ligne (≈5vw) */ }

.index .texte .titre {
	font-size: 3vw;
	font-weight: 800;
	line-height: 3vw;
	margin-bottom: 1vw;
}

.index .texte .sousTitre {
	font-size: 1.5vw;
	font-weight: 800;
	line-height: 3vw;
	margin-bottom: 1vw;
}

/* =========================
   Footer 5 colonnes (5/25/25/40/5)
   ========================= */
.footer-5cols{
	display: grid;
	grid-template-columns: 5% 25% 25% 40% 5%;
	gap: 0;
	width: 100%;
	margin: 3vw 0;
	align-items: start;
}

/* colonnes */
.footer-5cols .fcol{ padding: 0; }

/* typographie (reprend tes tailles existantes) */
.footer-5cols .titre{
	font-size: 3vw;
	font-weight: 800;
	line-height: 3vw;
	margin-bottom: 1vw;
}

.footer-5cols .sousTitre {
	font-size: 1.5vw;
	font-weight: 800;
	line-height: 1.5vw;
	margin-bottom: 1vw;
}

.footer-5cols .text{
	font-size: 1.1vw;
	line-height: 1.75vw;
}

.expo {
	vertical-align: top;
	display: inline-block;
	width: 31%;
	height: auto;
	margin: 1vw;
}

.videosLabel {
	position: relative;
	left: 0;
	font-size: 10vw;
	text-decoration: none;
	font-weight: 800;
	color: #999;
	padding-top: 5vw;
	padding-bottom: 3vw;
}

/* =========================================================
   Scroll buttons (base en vw)
   ========================================================= */
.scroll-cmd {
	position: fixed;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6vw;

	font-weight: 800;
	font-size: 1vw;
	line-height: 1;

	background: #f0f;
	color: #fff;
	border: 0;
	cursor: pointer;
	user-select: none;
	opacity: 0.7;
	z-index: 50;
	transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
}

.scroll-cmd:hover {
	opacity: 1;
	background: #70f;
	transform: translateY(-0.2vw);
}

/* DOWN : texte uniquement (bouton auto) */
.scroll-down-cmd {
	top: 1.2vw;
	left: 1.2vw;
	padding: 1vw 2vw 1vw 2vw;
	border-radius: 0.35vw;
}

/* TOP : rond + flèche SVG */
.scroll-top-cmd {
	right: 1.2vw;
	bottom: 1.2vw;
	width: 3.4vw;
	height: 3.4vw;
	padding: 0;
	border-radius: 999vw;
}

/* BACK : rond + flèche SVG */
.scroll-back-cmd{
	right: 5.2vw;
	bottom: 1.2vw;
	width: 3.4vw;
	height: 3.4vw;
	padding: 0;
	border-radius: 999vw;
}

/* SVG : seulement TOP & BACK (gros) */
.scroll-top-cmd svg,
.scroll-back-cmd svg {
	width: 70%;
	height: 70%;
	display: block;
	fill: currentColor;
}

/* Portrait : on adapte SANS casser les ronds
   ✅ FIX : limité aux tablettes pour ne pas toucher smartphone
*/
@media (orientation: portrait) and (min-width: 700px) {
	.scroll-down-cmd {
		top: 3vw;
		left: 3vw;
		padding: 2vw 3vw;
		font-size: 3.6vw;
		border-radius: 1vw;
	}

	.scroll-top-cmd {
		right: 3vw;
		bottom: 3vw;
		width: 12vw;
		height: 12vw;
		border-radius: 999vw;
	}

	.scroll-back-cmd{
		right: 18vw;
		bottom: 3vw;
		width: 12vw;
		height: 12vw;
		border-radius: 999vw;
	}

	.scroll-top-cmd svg,
	.scroll-back-cmd svg {
		width: 75%;
		height: 75%;
	}

	.filtrage-toggle {
		font-size: 4vw;
		line-height: 5vw;
	}
}

/* =========================================================
   MEDIAS (plein écran) + labels (identique référence)
   ========================================================= */
figure.media-fullwidth{
	position: relative;
	margin: 0 0 1vw;
}

/* media en fond */
figure.media-fullwidth img,
figure.media-fullwidth video{
	position: relative;
	z-index: 1;
	display: block;
	width: 100vw;
	max-width: 100vw;
	height: auto;
}

/* label */
figcaption.file-label{
	position: absolute;
	top: 85%;
	left: 2.5%;
	transform: translateY(-50%);
	padding: 0.25vw 0.6vw;
	background: rgba(30,30,30,0.9);
	color: #fff;
	font-size: 0.95rem;
	border-radius: 2px;
	pointer-events: none;
	z-index: 5;
	max-width: 92vw;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

audio.audio-player{
	position: absolute;
	top: 80%;
	left: 2.5%;
	width: 50%;
	height: 5%;
	z-index: 6;
}

figure.media-fullwidth .audio-fallback{
	width: 100vw;
	max-width: 100vw;
	height: 56vw;
	background: #111;
}

.youtube_iframe_conteneur {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	margin: 0 0 1vw 0;
}

.youtube_iframe_conteneur iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* =========================================================
   Scroll buttons : tailles stables selon device/orientation
   (override des valeurs en vw)
   ✅ FIX :
     - suppression du doublon
     - 1.1vw -> 1.1rem (évite texte minuscule sur smartphone)
     - smartphone : taille fixée sur .scroll-cmd pour Menu = Edito/Vidéo
   ========================================================= */

/* Base : on sort du "tout en vw" */
.scroll-cmd{
	font-size: clamp(12px, 1.1rem, 18px);
	gap: clamp(6px, 0.6vw, 10px);
}

/* MENU (texte) */
.scroll-down-cmd{
	padding: clamp(8px, 0.9vw, 14px) clamp(12px, 1.6vw, 22px);
	border-radius: clamp(6px, 0.5vw, 12px);
	top: clamp(10px, 1.2vw, 18px);
	left: clamp(10px, 1.2vw, 18px);
}

/* TOP + BACK (ronds) */
.scroll-top-cmd,
.scroll-back-cmd{
	width: clamp(44px, 3.4vw, 62px);
	height: clamp(44px, 3.4vw, 62px);
	border-radius: 999px;
}

.scroll-top-cmd{
	right: clamp(12px, 1.2vw, 18px);
	bottom: clamp(12px, 1.2vw, 18px);
}

.scroll-back-cmd{
	right: calc(clamp(12px, 1.2vw, 18px) + clamp(56px, 4.2vw, 78px));
	bottom: clamp(12px, 1.2vw, 18px);
}

.scroll-top-cmd svg,
.scroll-back-cmd svg{
	width: 72%;
	height: 72%;
}

/* =========================================================
   1) Smartphone portrait
   ========================================================= */
@media (orientation: portrait) and (max-width: 699px){
  .scroll-cmd{ font-size: 15px !important; }

  .scroll-down-cmd{
    padding: 10px 14px;
    border-radius: 10px;
    top: 14px;
    left: 14px;
  }

  .scroll-top-cmd,
  .scroll-back-cmd{
    width: 50px;
    height: 50px;
  }

  .scroll-top-cmd{ right: 14px; bottom: 14px; }
  .scroll-back-cmd{ right: 72px; bottom: 14px; }

  .scroll-top-cmd svg,
  .scroll-back-cmd svg{
    width: 75%;
    height: 75%;
  }
	
  figcaption.file-label{
  font-size: 0.3rem;     /* au lieu de 0.95rem */
  padding: 0.1rem 0.2rem; /* un peu plus compact */
  }
}


/* =========================================================
   2) Smartphone paysage
   ========================================================= */
@media (orientation: landscape) and (max-width: 1023px){
  .scroll-cmd{ font-size: 16px !important; }

  .scroll-down-cmd{
    padding: 10px 16px;
    border-radius: 11px;
    top: 12px;
    left: 12px;
  }

  .scroll-top-cmd,
  .scroll-back-cmd{
    width: 54px;
    height: 54px;
  }

  .scroll-top-cmd{ right: 12px; bottom: 12px; }
  .scroll-back-cmd{ right: 78px; bottom: 12px; }

  .scroll-top-cmd svg,
  .scroll-back-cmd svg{
    width: 72%;
    height: 72%;
  }
  figcaption.file-label{
  font-size: 0.5rem;     /* au lieu de 0.95rem */
  padding: 0.1rem 0.2rem; /* un peu plus compact */
  }

}


/* =========================================================
   3) Tablette portrait
   ========================================================= */
@media (orientation: portrait) and (min-width: 700px){
	.scroll-cmd{ font-size: 16px; }

	.scroll-down-cmd{
		padding: 10px 14px;
		border-radius: 10px;
		top: 16px;
		left: 16px;
	}

	.scroll-top-cmd,
	.scroll-back-cmd{
		width: 52px;
		height: 52px;
	}

	.scroll-top-cmd{ right: 16px; bottom: 16px; }
	.scroll-back-cmd{ right: 76px; bottom: 16px; }

	.scroll-top-cmd svg,
	.scroll-back-cmd svg{
		width: 72%;
		height: 72%;
	}
}

/* =========================================================
   4) Tablette paysage
   ========================================================= */
@media (orientation: landscape) and (min-width: 1024px){
	.scroll-cmd{ font-size: 18px; }

	.scroll-down-cmd{
		padding: 12px 18px;
		border-radius: 12px;
	}

	.scroll-top-cmd,
	.scroll-back-cmd{
		width: 60px;
		height: 60px;
	}

	.scroll-top-cmd{ right: 18px; bottom: 18px; }
	.scroll-back-cmd{ right: 96px; bottom: 18px; }

	.scroll-top-cmd svg,
	.scroll-back-cmd svg{
		width: 72%;
		height: 72%;
	}
}
