/* ==========================================================================
   La Boue avant La Pluie — styles
   Boue (fond chaud) contre pluie (actions froides).
   ========================================================================== */

@font-face {
	font-family: "Gloock";
	src: url("../fonts/gloock.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Schibsted Grotesk";
	src: url("../fonts/schibsted-grotesk.woff2") format("woff2");
	font-weight: 400 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Schibsted Grotesk";
	src: url("../fonts/schibsted-grotesk-italic.woff2") format("woff2");
	font-weight: 400 900;
	font-style: italic;
	font-display: swap;
}

:root {
	--mud: #141312;
	--mud-deep: #0d0c0c;
	--mud-lift: #1c1a18;
	--clay: #9c938c;
	--clay-soft: #b8b1aa;
	--rain: #b9ccd4;
	--rain-bright: #d6e4ea;
	--light: #eef2f1;
	--laterite: #d0704c;
	--line: rgba(238, 242, 241, 0.13);
	--line-strong: rgba(238, 242, 241, 0.26);

	--serif: "Gloock", "Bodoni 72", Didot, "Times New Roman", serif;
	--sans: "Schibsted Grotesk", "Helvetica Neue", Arial, system-ui, sans-serif;

	--step--1: clamp(0.84rem, 0.82rem + 0.1vw, 0.9rem);
	--step-0: clamp(1rem, 0.96rem + 0.2vw, 1.1rem);
	--step-1: clamp(1.2rem, 1.1rem + 0.45vw, 1.45rem);
	--step-2: clamp(1.5rem, 1.3rem + 0.9vw, 2rem);
	--step-3: clamp(2rem, 1.6rem + 1.9vw, 3.1rem);
	--step-4: clamp(2.6rem, 1.8rem + 3.8vw, 5rem);

	--wrap: 1180px;
	--text: 68ch;
	--gap: clamp(1rem, 0.6rem + 1.6vw, 2rem);
	--section: clamp(4rem, 3rem + 5vw, 8rem);
	--header-h: 68px;
	--player-h: 0px;
	--radius: 4px;
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* Base ------------------------------------------------------------------ */

*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: calc(var(--header-h) + 1rem);
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

body {
	margin: 0;
	background: var(--mud);
	color: var(--light);
	font-family: var(--sans);
	font-size: var(--step-0);
	line-height: 1.6;
	font-feature-settings: "kern", "liga";
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	padding-bottom: var(--player-h);
	transition: padding-bottom 0.3s var(--ease);
}

/* Atmosphère : le noir ne doit jamais être plat. Deux halos très faibles
   (un chaud, un pluie) et un grain fin donnent du volume sans virer au brun. */
body::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(70% 55% at 82% 8%, rgba(208, 112, 76, 0.10) 0%, rgba(208, 112, 76, 0) 62%),
		radial-gradient(60% 50% at 12% 88%, rgba(185, 204, 212, 0.07) 0%, rgba(185, 204, 212, 0) 66%);
}
body::after {
	content: "";
	position: fixed;
	inset: -50%;
	z-index: 0;
	pointer-events: none;
	opacity: 0.035;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}
.lb-site, .lb-header, .lb-player, .lb-overlay, .lb-menu { position: relative; z-index: 1; }

@media (prefers-reduced-motion: reduce) {
	body::after { display: none; }
}

img, svg, video, canvas { display: block; max-width: 100%; }
img, video { height: auto; }

a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.22em; }
a:hover { color: var(--rain-bright); }

h1, h2, h3, h4 { margin: 0; font-weight: 400; line-height: 1.1; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }

:focus-visible {
	outline: 2px solid var(--rain);
	outline-offset: 3px;
	border-radius: 2px;
}

::selection { background: var(--rain); color: var(--mud-deep); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.lb-skip {
	position: fixed;
	top: 0.75rem; left: 0.75rem;
	z-index: 200;
	padding: 0.6rem 1rem;
	background: var(--rain);
	color: var(--mud-deep);
	transform: translateY(-200%);
}
.lb-skip:focus { transform: none; }

.lb-main:focus { outline: none; }

.lb-wrap {
	width: min(var(--wrap), 100% - 2 * var(--gap));
	margin-inline: auto;
}
.lb-wrap--text { width: min(var(--text), 100% - 2 * var(--gap)); }

.lb-svg { width: 100%; height: auto; }
.lb-icon { width: 1.25em; height: 1.25em; flex: none; }

/* Buttons --------------------------------------------------------------- */

.lb-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	padding: 0.72em 1.25em;
	border: 1px solid transparent;
	border-radius: 999px;
	background: none;
	font-weight: 600;
	font-size: var(--step-0);
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.lb-btn .lb-icon { width: 1.1em; height: 1.1em; }
.lb-btn--rain { background: var(--rain); color: var(--mud-deep); }
.lb-btn--rain:hover { background: var(--rain-bright); color: var(--mud-deep); }
.lb-btn--ghost { border-color: var(--line-strong); color: var(--light); }
.lb-btn--ghost:hover { border-color: var(--rain); color: var(--rain-bright); }
.lb-btn--large { padding: 0.95em 1.6em; font-size: var(--step-1); }
.lb-btn--small { padding: 0.5em 0.95em; font-size: var(--step--1); }

.lb-icon-btn {
	display: inline-grid;
	place-items: center;
	width: 44px; height: 44px;
	border: 0;
	border-radius: 50%;
	background: none;
	color: var(--light);
}
.lb-icon-btn:hover { background: rgba(238, 242, 241, 0.1); }

.lb-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.28em 0.7em;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	font-size: var(--step--1);
	font-weight: 500;
	text-decoration: none;
	color: var(--clay-soft);
	white-space: nowrap;
}
.lb-chip:hover { border-color: var(--rain); color: var(--rain-bright); }
.lb-chip .lb-icon { width: 1em; height: 1em; }

.lb-tag {
	display: inline-block;
	padding: 0.25em 0.7em;
	border-radius: 999px;
	font-size: var(--step--1);
	font-weight: 600;
	background: rgba(238, 242, 241, 0.08);
	color: var(--clay-soft);
}
.lb-tag--complet, .lb-tag--annule { background: rgba(208, 112, 76, 0.16); color: #f0a98c; }
.lb-tag--gratuit { background: rgba(185, 204, 212, 0.14); color: var(--rain-bright); }

/* Socials --------------------------------------------------------------- */

.lb-socials { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; }
.lb-socials a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.45rem 0.85rem 0.45rem 0.6rem;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	font-size: var(--step--1);
	font-weight: 500;
	text-decoration: none;
}
.lb-socials a:hover { border-color: var(--rain); color: var(--rain-bright); }
.lb-socials .lb-icon { width: 1.15rem; height: 1.15rem; }

.lb-socials--icons a {
	width: 46px; height: 46px;
	padding: 0;
	justify-content: center;
}
.lb-socials--icons span {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0);
}

.lb-socials--list { flex-direction: column; gap: 0; }
.lb-socials--list a {
	border: 0;
	border-bottom: 1px solid var(--line);
	border-radius: 0;
	padding: 0.8rem 0;
	width: 100%;
	font-size: var(--step-0);
}

/* Sections -------------------------------------------------------------- */

.lb-section { padding: var(--section) 0; }
.lb-section + .lb-section { border-top: 1px solid var(--line); }
.lb-section:nth-of-type(even) { background: var(--mud-deep); }

.lb-section__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: end;
	gap: 1rem 3rem;
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
.lb-section__title {
	font-family: var(--serif);
	font-size: var(--step-4);
	line-height: 0.95;
	letter-spacing: -0.01em;
}
.lb-section__intro {
	max-width: 42ch;
	margin: 0;
	color: var(--clay-soft);
	font-size: var(--step-1);
	line-height: 1.45;
}
@media (max-width: 760px) {
	.lb-section__head { grid-template-columns: 1fr; }
}

.lb-empty {
	padding: 2rem;
	border: 1px dashed var(--line-strong);
	border-radius: var(--radius);
	color: var(--clay-soft);
}
.lb-empty p { max-width: 55ch; }

.lb-more { margin-top: 2rem; }

/* Musique : albums et titres ------------------------------------------- */

.lb-album {
	display: grid;
	grid-template-columns: minmax(220px, 380px) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: start;
}
.lb-album + .lb-album,
.lb-album + .lb-singles { margin-top: clamp(3rem, 6vw, 5rem); }

.lb-cover {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--mud-lift);
}
.lb-cover__img { width: 100%; height: 100%; object-fit: cover; }
.lb-cover__generated {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	padding: 8%;
	background:
		repeating-linear-gradient(100deg, transparent 0 22px, rgba(185, 204, 212, 0.06) 22px 23px),
		linear-gradient(160deg, #6a5140, var(--mud-deep));
	color: var(--light);
}
.lb-cover__generated .lb-svg { width: 46%; opacity: 0.85; }
.lb-cover__name {
	font-family: var(--serif);
	font-size: clamp(1.5rem, 1rem + 2.2vw, 2.6rem);
	line-height: 1;
}

.lb-album__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.3rem 1rem; margin-bottom: 1rem; }
.lb-album__title { font-family: var(--serif); font-size: var(--step-3); }
.lb-album__title a { text-decoration: none; }
.lb-album__year { margin: 0; color: var(--clay); font-size: var(--step-1); font-variant-numeric: tabular-nums; }
.lb-album__excerpt { max-width: 55ch; color: var(--clay-soft); }
.lb-album__body > .lb-tracklist { margin-top: 1.5rem; }

@media (max-width: 760px) {
	.lb-album { grid-template-columns: 1fr; }
	.lb-album__cover { max-width: 320px; }
}

.lb-singles__title { font-family: var(--serif); font-size: var(--step-2); margin-bottom: 1rem; }

/* La liste des titres, façon générique de film */
.lb-tracklist { list-style: none; border-top: 1px solid var(--line); }
.lb-track {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 0.3rem 1rem;
	min-height: 64px;
	padding: 0.4rem 0;
	border-bottom: 1px solid var(--line);
	transition: background-color 0.2s;
}
.lb-track:hover { background: rgba(238, 242, 241, 0.03); }

.lb-track__play {
	position: relative;
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	border: 0;
	border-radius: 50%;
	background: none;
	color: var(--light);
}
.lb-track__num {
	font-variant-numeric: tabular-nums;
	color: var(--clay);
	font-size: var(--step-0);
}
.lb-track__play .lb-icon { position: absolute; opacity: 0; width: 1.1rem; height: 1.1rem; }
.lb-track__play:hover .lb-track__num,
.lb-track__play:focus-visible .lb-track__num { opacity: 0; }
.lb-track__play:hover .lb-icon--play,
.lb-track__play:focus-visible .lb-icon--play { opacity: 1; }
.lb-track__play--off { cursor: default; }

.lb-track__title { font-family: var(--serif); font-size: var(--step-1); line-height: 1.2; }
.lb-track__time { color: var(--clay); font-variant-numeric: tabular-nums; font-size: var(--step--1); }
.lb-track__actions { display: flex; gap: 0.4rem; justify-content: flex-end; }

.lb-track.is-current .lb-track__title { color: var(--rain-bright); }
.lb-track.is-current .lb-track__play { background: var(--rain); color: var(--mud-deep); }
.lb-track.is-current .lb-track__num { opacity: 0; }
.lb-track.is-current .lb-icon--play { opacity: 1; }
.lb-track.is-current.is-playing .lb-icon--play { opacity: 0; }
.lb-track.is-current.is-playing .lb-icon--pause { opacity: 1; }

@media (max-width: 600px) {
	.lb-track { grid-template-columns: 2.8rem minmax(0, 1fr) auto; }
	.lb-track__actions { grid-column: 2 / -1; justify-content: flex-start; padding-bottom: 0.4rem; }
}

/* Plateformes */
.lb-stream { margin-top: 2rem; }
.lb-stream__label { margin-bottom: 0.6rem; color: var(--clay); font-size: var(--step--1); }
.lb-stream__tabs { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.lb-stream__tab {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 0.95rem 0.5rem 0.7rem;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	background: none;
	font-size: var(--step--1);
	font-weight: 500;
	text-decoration: none;
}
.lb-stream__tab:hover { border-color: var(--rain); }
.lb-stream__tab[aria-pressed="true"] { background: var(--light); color: var(--mud-deep); border-color: var(--light); }
.lb-stream__tab .lb-icon { width: 1.1rem; height: 1.1rem; }
.lb-stream__frame { margin-top: 1rem; }
.lb-stream__frame iframe { width: 100%; border: 0; border-radius: 12px; background: var(--mud-deep); }

.lb-consent {
	padding: 1.4rem;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	background: rgba(238, 242, 241, 0.04);
}
.lb-consent p { max-width: 55ch; color: var(--clay-soft); font-size: var(--step--1); }
.lb-consent__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.lb-consent__alt { font-size: var(--step--1); }

/* Clips ----------------------------------------------------------------- */

.lb-clips__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--gap);
}
.lb-clips__grid--1 { grid-template-columns: 1fr; }
.lb-clip { margin: 0; }
.lb-clips__grid--3 .lb-clip--feature { grid-column: 1 / -1; }
@media (min-width: 900px) {
	.lb-clips__grid--3 {
		grid-template-columns: 2fr 1fr;
		grid-template-rows: auto auto;
	}
	.lb-clips__grid--3 .lb-clip--feature { grid-column: 1; grid-row: 1 / span 2; }
}
@media (max-width: 640px) {
	.lb-clips__grid { grid-template-columns: 1fr; }
}

.lb-yt {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #000;
}
.lb-yt img {
	width: 100%; height: 100%;
	object-fit: cover;
	filter: saturate(0.85) brightness(0.8);
	transition: filter 0.4s, transform 0.6s var(--ease);
}
.lb-yt:hover img { filter: saturate(1) brightness(0.9); transform: scale(1.02); }
.lb-yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.lb-yt__play {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	border: 0;
	background: none;
	color: var(--mud-deep);
}
.lb-yt__play .lb-icon {
	box-sizing: content-box;
	width: 28px; height: 28px;
	padding: 20px;
	border-radius: 50%;
	background: var(--rain);
	transition: transform 0.2s, background-color 0.2s;
}
.lb-yt__play:hover .lb-icon { transform: scale(1.08); background: var(--rain-bright); }
.lb-clip--feature .lb-yt__play .lb-icon { width: 36px; height: 36px; padding: 26px; }

.lb-clip__caption {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	padding-top: 0.8rem;
}
.lb-clip__title { font-family: var(--serif); font-size: var(--step-1); }
.lb-clip--feature .lb-clip__title { font-size: var(--step-2); }
.lb-yt { cursor: pointer; }
.lb-yt:has(iframe) { cursor: default; }
.lb-clip__out {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: var(--step--1);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--clay);
}
.lb-clip__out::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--rain);
}

/* Live ------------------------------------------------------------------ */

.lb-lives__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 2.5rem var(--gap);
}
.lb-live__media video,
.lb-live__media .lb-yt {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	background: #000;
}
.lb-live__text {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 0 1rem;
	padding-top: 0.8rem;
}
.lb-live__title { font-family: var(--serif); font-size: var(--step-1); }
.lb-live__where { grid-column: 1; margin: 0.2rem 0 0; color: var(--clay); font-size: var(--step--1); }
.lb-live__text .lb-chip { grid-column: 2; grid-row: 1 / span 2; }

/* Dates ----------------------------------------------------------------- */

.lb-gigs { list-style: none; border-top: 1px solid var(--line); }
.lb-gig {
	display: grid;
	grid-template-columns: 7.5rem minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem 2rem;
	padding: 1.4rem 0;
	border-bottom: 1px solid var(--line);
}
.lb-gig__date { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 0 0.5rem; }
.lb-gig__day { grid-row: span 2; font-family: var(--serif); font-size: var(--step-4); line-height: 0.85; }
.lb-gig__month { color: var(--rain-bright); font-weight: 600; }
.lb-gig__year { color: var(--clay); font-size: var(--step--1); font-variant-numeric: tabular-nums; }
.lb-gig__venue { font-family: var(--serif); font-size: var(--step-2); }
.lb-gig__venue a { text-decoration: none; }
.lb-gig__meta { margin: 0.25rem 0 0; color: var(--clay-soft); }
.lb-gig__action { display: flex; gap: 0.6rem; align-items: center; justify-content: flex-end; }
.lb-gig--annule .lb-gig__venue { text-decoration: line-through; text-decoration-thickness: 1px; }

@media (max-width: 640px) {
	.lb-gig { grid-template-columns: 5.2rem 1fr; }
	.lb-gig__action { grid-column: 2; justify-content: flex-start; }
}

.lb-past { margin-top: 2.5rem; }
.lb-past summary {
	cursor: pointer;
	display: inline-block;
	padding: 0.5rem 0;
	color: var(--clay-soft);
	font-weight: 500;
}
.lb-past summary:hover { color: var(--light); }
.lb-gigs--past { margin-top: 1rem; opacity: 0.72; }
.lb-gigs--past .lb-gig { padding: 0.9rem 0; }
.lb-gigs--past .lb-gig__day { font-size: var(--step-3); }
.lb-gigs--past .lb-gig__venue { font-size: var(--step-1); }

/* Actualités ------------------------------------------------------------ */

.lb-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 2.5rem var(--gap);
}
.lb-card__link { display: flex; flex-direction: column; gap: 0.9rem; text-decoration: none; }
.lb-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--mud-lift); }
.lb-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease); }
.lb-card__link:hover img { transform: scale(1.03); }
.lb-card__body { display: flex; flex-direction: column; gap: 0.4rem; }
.lb-card__date { color: var(--clay); font-size: var(--step--1); }
.lb-card__title { font-family: var(--serif); font-size: var(--step-2); line-height: 1.1; }
.lb-card__link:hover .lb-card__title { color: var(--rain-bright); }
.lb-card__excerpt { color: var(--clay-soft); }

/* Galerie --------------------------------------------------------------- */

.lb-gallery {
	list-style: none;
	columns: 3 280px;
	column-gap: 12px;
}
.lb-gallery__item { break-inside: avoid; margin-bottom: 12px; }
.lb-gallery__btn {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: var(--mud-lift);
	overflow: hidden;
	cursor: zoom-in;
}
.lb-gallery__btn img { width: 100%; transition: transform 0.6s var(--ease), filter 0.4s; filter: saturate(0.9); }
.lb-gallery__btn:hover img { transform: scale(1.025); filter: saturate(1.05); }

.lb-kit {
	margin-top: clamp(3rem, 6vw, 5rem);
	padding-top: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid var(--line);
}
.lb-kit__head {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem 2rem;
	margin-bottom: 2rem;
}
.lb-kit__title { font-family: var(--serif); font-size: var(--step-3); }
.lb-kit__intro { margin: 0; max-width: 50ch; color: var(--clay-soft); }
@media (max-width: 820px) {
	.lb-kit__head { grid-template-columns: 1fr; }
	.lb-kit__head .lb-btn { justify-self: start; }
}

.lb-kit__grid {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
	gap: var(--gap);
}
.lb-kit__item { display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem; }
.lb-kit__preview {
	display: grid;
	place-items: center;
	width: 100%;
	aspect-ratio: 4 / 3;
	padding: 12%;
	margin-bottom: 0.4rem;
	/* damier discret : révèle la transparence des PNG */
	background-color: #5b4a3e;
	background-image:
		linear-gradient(45deg, #4d3e33 25%, transparent 25%, transparent 75%, #4d3e33 75%),
		linear-gradient(45deg, #4d3e33 25%, transparent 25%, transparent 75%, #4d3e33 75%);
	background-size: 16px 16px;
	background-position: 0 0, 8px 8px;
}
.lb-kit__preview img { max-height: 100%; width: auto; object-fit: contain; }
.lb-kit__name { font-weight: 600; font-size: var(--step--1); }
.lb-kit__spec { color: var(--clay); font-size: var(--step--1); font-variant-numeric: tabular-nums; }

/* Visionneuse ----------------------------------------------------------- */

.lb-lightbox {
	width: 100vw; height: 100vh;
	max-width: none; max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(20, 15, 11, 0.96);
	color: var(--light);
}
.lb-lightbox[open] { display: grid; grid-template-rows: 1fr auto; }
.lb-lightbox::backdrop { background: rgba(20, 15, 11, 0.9); }
.lb-lightbox__figure {
	display: grid;
	place-items: center;
	min-height: 0;
	margin: 0;
	padding: 3vh 3vw 0;
}
.lb-lightbox__figure img { max-width: 100%; max-height: calc(100vh - 130px); width: auto; object-fit: contain; }
.lb-lightbox__figure figcaption { padding-top: 0.6rem; color: var(--clay-soft); font-size: var(--step--1); }
.lb-lightbox__bar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.8rem;
	padding: 0.8rem;
}
.lb-lightbox__count { min-width: 4.5em; text-align: center; font-variant-numeric: tabular-nums; color: var(--clay-soft); }

/* Le groupe ------------------------------------------------------------- */

.lb-groupe__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(260px, 1fr);
	gap: clamp(2rem, 6vw, 6rem);
	align-items: start;
}
.lb-groupe__layout .lb-section__head { grid-template-columns: 1fr; }
.lb-groupe__facts { display: grid; gap: 3rem; padding-top: clamp(0rem, 8vw, 7rem); }
.lb-facts__title { font-size: var(--step-0); font-weight: 600; color: var(--clay); margin-bottom: 1rem; }

.lb-members__list { list-style: none; }
.lb-members__list li {
	font-family: var(--serif);
	font-size: var(--step-3);
	line-height: 1.15;
}

.lb-timeline__list { list-style: none; border-left: 1px solid var(--line-strong); }
.lb-timeline__list li { position: relative; padding: 0 0 1.6rem 1.4rem; }
.lb-timeline__list li::before {
	content: "";
	position: absolute;
	left: -5px; top: 0.45em;
	width: 9px; height: 9px;
	border-radius: 50%;
	background: var(--rain);
}
.lb-timeline__when { display: block; font-weight: 600; color: var(--rain-bright); }
.lb-timeline__what { display: block; color: var(--clay-soft); }

@media (max-width: 900px) {
	.lb-groupe__layout { grid-template-columns: 1fr; }
	.lb-groupe__facts { padding-top: 0; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}

/* Presse ---------------------------------------------------------------- */

.lb-press { list-style: none; border-top: 1px solid var(--line); }
.lb-press__link {
	display: grid;
	grid-template-columns: minmax(0, 14rem) minmax(0, 1fr) auto;
	align-items: baseline;
	gap: 0.3rem 2rem;
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--line);
	text-decoration: none;
	transition: padding 0.3s var(--ease);
}
.lb-press__source { font-family: var(--serif); font-size: var(--step-2); line-height: 1.1; }
.lb-press__body { display: flex; flex-direction: column; gap: 0.3rem; }
.lb-press__title { font-size: var(--step-1); }
.lb-press__excerpt { color: var(--clay-soft); }
.lb-press__meta { display: flex; align-items: center; gap: 0.8rem; color: var(--clay); font-size: var(--step--1); }
.lb-press__link:hover { color: var(--light); }
.lb-press__link:hover .lb-press__title { color: var(--rain-bright); }
@media (prefers-reduced-motion: no-preference) {
	.lb-press__link:hover { padding-left: 0.6rem; }
}
@media (max-width: 760px) {
	.lb-press__link { grid-template-columns: 1fr auto; }
	.lb-press__body { grid-column: 1 / -1; }
	.lb-press__meta { grid-row: 1; grid-column: 2; }
}

/* Contact --------------------------------------------------------------- */

.lb-contact__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
	gap: clamp(2rem, 6vw, 6rem);
	align-items: start;
}
.lb-contact__layout .lb-section__head { grid-template-columns: 1fr; margin-bottom: 1.5rem; }
.lb-contact__mail { font-family: var(--serif); font-size: var(--step-2); margin-bottom: 2rem; overflow-wrap: anywhere; }
.lb-contact__mail a { text-decoration: none; border-bottom: 1px solid var(--rain); }
@media (max-width: 900px) {
	.lb-contact__layout { grid-template-columns: 1fr; }
}

.lb-form { display: grid; gap: 1.3rem; }
.lb-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.3rem; }
@media (max-width: 560px) { .lb-form__grid { grid-template-columns: 1fr; } }
.lb-form__trap { position: absolute; left: -9999px; }

.lb-field { margin: 0; display: grid; gap: 0.4rem; }
.lb-field > label, .lb-field legend { font-weight: 600; font-size: var(--step--1); color: var(--clay-soft); }
.lb-field input[type="text"],
.lb-field input[type="email"],
.lb-field textarea,
.lb-search input {
	width: 100%;
	padding: 0.85rem 1rem;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	background: rgba(0, 0, 0, 0.18);
	color: var(--light);
	transition: border-color 0.2s, background-color 0.2s;
}
.lb-field input:focus,
.lb-field textarea:focus,
.lb-search input:focus { outline: none; border-color: var(--rain); background: rgba(0, 0, 0, 0.28); }
.lb-field textarea { resize: vertical; min-height: 9rem; }
.lb-field [aria-invalid="true"] { border-color: var(--laterite); }

.lb-choices { border: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.lb-choices legend { padding: 0; margin-bottom: 0.5rem; }
.lb-choice { position: relative; }
.lb-choice input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.lb-choice span {
	display: inline-block;
	padding: 0.5rem 0.95rem;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	font-size: var(--step--1);
}
.lb-choice input:checked + span { background: var(--light); color: var(--mud-deep); border-color: var(--light); }
.lb-choice input:focus-visible + span { outline: 2px solid var(--rain); outline-offset: 2px; }

.lb-agree label { display: flex; gap: 0.7rem; align-items: flex-start; font-size: var(--step--1); color: var(--clay-soft); font-weight: 400; }
.lb-agree input { margin-top: 0.25em; accent-color: var(--rain); width: 1.1rem; height: 1.1rem; flex: none; }

.lb-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.lb-form__status { margin: 0; font-size: var(--step--1); }
.lb-form__status[data-state="ok"] { color: var(--rain-bright); }
.lb-form__status[data-state="error"] { color: #f0a98c; }
.lb-form.is-sending button[type="submit"] { opacity: 0.6; pointer-events: none; }

.lb-search { display: flex; gap: 0.6rem; margin: 1.5rem 0; }

/* Pages intérieures ----------------------------------------------------- */

.lb-page { padding-bottom: var(--section); }
.lb-page__head { padding: clamp(3rem, 8vw, 6rem) 0 clamp(2rem, 4vw, 3rem); }
.lb-page__title { font-family: var(--serif); font-size: var(--step-4); line-height: 1; letter-spacing: -0.01em; }
.lb-page__meta { color: var(--clay); margin-bottom: 1rem; }
.lb-page__meta a { color: var(--clay-soft); }
.lb-page__intro { color: var(--clay-soft); font-size: var(--step-1); max-width: 55ch; margin-top: 1rem; }
.lb-single__cover { margin: 0 auto 3rem; }
.lb-single__cover img { width: 100%; }
.lb-single__foot { margin-top: 3rem; }
.lb-page__flow > .lb-section:first-child { padding-top: 0; }

.lb-404 { text-align: left; padding-top: calc(var(--header-h) + 4rem); }
.lb-404__wolf { width: 160px; color: var(--clay); margin-bottom: 2rem; }

/* Chanson */
.lb-song__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(2rem, 6vw, 6rem);
	padding-top: clamp(3rem, 8vw, 6rem);
	align-items: start;
}
.lb-song__head { position: sticky; top: calc(var(--header-h) + 2rem); }
.lb-song__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem 1rem; margin: 2rem 0; }
.lb-song__time { color: var(--clay); font-variant-numeric: tabular-nums; }
.lb-song__label { font-size: var(--step-0); font-weight: 600; color: var(--clay); margin-bottom: 1.5rem; }
.lb-lyrics { font-family: var(--serif); font-size: var(--step-1); line-height: 1.6; }
.lb-lyrics p { margin-bottom: 1.6em; }
.lb-song__more { margin-top: var(--section); }
@media (max-width: 860px) {
	.lb-song__layout { grid-template-columns: 1fr; }
	.lb-song__head { position: static; }
}

.lb-album--page { padding-top: clamp(3rem, 8vw, 6rem); }
.lb-album--page .lb-socials { margin: 2rem 0; }

.lb-discs { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: var(--gap); }
.lb-disc a { display: grid; gap: 0.3rem; text-decoration: none; }
.lb-disc .lb-cover { margin-bottom: 0.6rem; }
.lb-disc__title { font-family: var(--serif); font-size: var(--step-2); }
.lb-disc__year { color: var(--clay); }

/* Contenu éditorial (Gutenberg) ----------------------------------------- */

.lb-prose { line-height: 1.75; }
.lb-prose > * { margin-top: 0; margin-bottom: 0; }
.lb-prose > * + * { margin-top: 1.1em; }
.lb-prose h2, .lb-prose h3 { font-family: var(--serif); margin-top: 2em; }
.lb-prose h2 { font-size: var(--step-3); }
.lb-prose h3 { font-size: var(--step-2); }
.lb-prose a { color: var(--rain-bright); }
.lb-prose ul, .lb-prose ol { padding-left: 1.3em; }
.lb-prose li + li { margin-top: 0.4em; }
.lb-prose blockquote,
.lb-prose .wp-block-quote {
	margin-left: 0;
	padding-left: 1.4rem;
	border-left: 2px solid var(--rain);
	font-family: var(--serif);
	font-size: var(--step-2);
	line-height: 1.3;
}
.lb-prose figure { margin: 2rem 0; }
.lb-prose figcaption { color: var(--clay); font-size: var(--step--1); margin-top: 0.5rem; }
.lb-prose .alignwide { width: min(1180px, 100vw - 2 * var(--gap)); margin-left: 50%; transform: translateX(-50%); max-width: none; }
.lb-prose .alignfull { width: 100vw; margin-left: 50%; transform: translateX(-50%); max-width: none; }
.lb-prose .alignleft { float: left; margin: 0.3rem 1.5rem 1rem 0; }
.lb-prose .alignright { float: right; margin: 0.3rem 0 1rem 1.5rem; }
.lb-prose .aligncenter { margin-inline: auto; }
.lb-prose hr { border: 0; border-top: 1px solid var(--line-strong); margin: 3rem 0; }
.lb-prose code { background: rgba(0, 0, 0, 0.25); padding: 0.1em 0.35em; border-radius: 3px; }
.lb-prose table { width: 100%; border-collapse: collapse; }
.lb-prose th, .lb-prose td { padding: 0.6rem; border-bottom: 1px solid var(--line); text-align: left; }
.lb-lead, .lb-prose .lb-lead { font-size: var(--step-1); color: var(--light); line-height: 1.55; }
.lb-callout { padding: 2rem; background: var(--mud-lift); border-left: 3px solid var(--rain); }

.wp-block-button__link, .wp-element-button {
	display: inline-flex;
	padding: 0.72em 1.25em;
	border-radius: 999px;
	background: var(--rain);
	color: var(--mud-deep);
	font-weight: 600;
	text-decoration: none;
}
.wp-block-button__link:hover { background: var(--rain-bright); color: var(--mud-deep); }
.is-style-outline .wp-block-button__link { background: none; border: 1px solid var(--line-strong); color: var(--light); }

.wp-caption-text, .gallery-caption { color: var(--clay); font-size: var(--step--1); }
.sticky .lb-card__title::after { content: " •"; color: var(--rain); }
.bypostauthor { }

/* Navigation d'articles, pagination, commentaires */
.lb-postnav__label { display: block; color: var(--clay); font-size: var(--step--1); }
.lb-postnav__title { font-family: var(--serif); font-size: var(--step-1); }
.post-navigation .nav-links, .posts-navigation .nav-links { display: flex; justify-content: space-between; gap: 2rem; padding: 2rem 0; border-top: 1px solid var(--line); }
.post-navigation a { text-decoration: none; }
.post-navigation .nav-next { text-align: right; margin-left: auto; }
.pagination .nav-links { display: flex; gap: 0.3rem; margin-top: 3rem; align-items: center; }
.pagination .page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; border-radius: 50%; text-decoration: none; }
.pagination .page-numbers.current { background: var(--light); color: var(--mud-deep); }
.lb-tags a { display: inline-block; margin: 0 0.4rem 0.4rem 0; }

.lb-comments { margin-top: 3rem; }
.lb-comments__title { font-family: var(--serif); font-size: var(--step-2); margin-bottom: 1.5rem; }
.lb-comments__list { list-style: none; }
.lb-comments__list .children { list-style: none; padding-left: 1.5rem; border-left: 1px solid var(--line); }
.comment-body { padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.comment-author img { float: left; margin-right: 0.8rem; border-radius: 50%; }
.comment-metadata { font-size: var(--step--1); color: var(--clay); }
.comment-form { display: grid; gap: 1rem; }
.comment-form label { display: block; font-size: var(--step--1); color: var(--clay-soft); margin-bottom: 0.3rem; }
.comment-form input:not([type="checkbox"]):not([type="submit"]),
.comment-form textarea { width: 100%; padding: 0.8rem 1rem; border: 1px solid var(--line-strong); border-radius: var(--radius); background: rgba(0, 0, 0, 0.18); }

/* Mouvement réduit ------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

@media print {
	.lb-header, .lb-player, .lb-hero__rain, .lb-footer__cols { display: none !important; }
	body { background: #fff; color: #000; }
}

/* ==========================================================================
   ROCK : grain, bord déchiré, gaffer
   ========================================================================== */

/* Grain argentique sur tout le site */
body::after {
	content: "";
	position: fixed;
	inset: -50%;
	z-index: 90;
	pointer-events: none;
	opacity: 0.09;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	mix-blend-mode: overlay;
}
@media (prefers-reduced-motion: no-preference) {
	body::after { animation: lb-grain 0.9s steps(4) infinite; }
}
@keyframes lb-grain {
	0% { transform: translate(0, 0); }
	25% { transform: translate(-3%, 2%); }
	50% { transform: translate(2%, -3%); }
	75% { transform: translate(-2%, -1%); }
	100% { transform: translate(0, 0); }
}

/* Bord déchiré sous l'ouverture */
.lb-hero + .lb-section { position: relative; }
.lb-hero + .lb-section::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: -30px;
	height: 32px;
	background: inherit;
	background-color: var(--mud-deep);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 24' preserveAspectRatio='none'%3E%3Cpath d='M0 24V14l18-6 22 9 30-11 26 7 19-9 34 12 21-8 28 5 17-10 36 13 24-9 20 6 31-12 18 9 27-5 22 8 33-13 19 10 25-6 30 9 22-11 18 7 35-8 20 11 26-9 29 6 17-10 32 12 23-7 21 5 30-12 24 10 19-6 34 9 22-10 27 7 18-8 31 11 25-9 20 6 29-10 23 12 26-7 21 4 33-11 19 9 28-6 24 8 30-12 22 10 18-5 27 7 16-9V24z' fill='%23000'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 24' preserveAspectRatio='none'%3E%3Cpath d='M0 24V14l18-6 22 9 30-11 26 7 19-9 34 12 21-8 28 5 17-10 36 13 24-9 20 6 31-12 18 9 27-5 22 8 33-13 19 10 25-6 30 9 22-11 18 7 35-8 20 11 26-9 29 6 17-10 32 12 23-7 21 5 30-12 24 10 19-6 34 9 22-10 27 7 18-8 31 11 25-9 20 6 29-10 23 12 26-7 21 4 33-11 19 9 28-6 24 8 30-12 22 10 18-5 27 7 16-9V24z' fill='%23000'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
}
.lb-hero + .lb-section { border-top: 0; }

/* Gaffer : l'étiquette de scène */
.lb-tape {
	display: inline-block;
	margin: 0 0 1.2rem;
	padding: 0.35em 0.9em 0.3em;
	background: #d9d2c3;
	color: #0b0b0b;
	font-weight: 700;
	font-size: var(--step--1);
	letter-spacing: 0.02em;
	transform: rotate(-1.6deg);
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
	clip-path: polygon(0 6%, 3% 0, 97% 4%, 100% 0, 99% 50%, 100% 96%, 96% 100%, 4% 94%, 0 100%, 1% 50%);
}
.lb-tape--small { padding: 0.25em 0.7em 0.2em; font-size: 0.78rem; margin-bottom: 0.9rem; }
h3.lb-tape { font-family: var(--sans); line-height: 1.3; }

/* Contraste plus franc des titres de section */
.lb-section__title { text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25); }

/* Bandeau pro sur l'accueil */
.lb-probanner { background: var(--light) !important; color: var(--mud-deep); }
.lb-probanner .lb-section__intro { color: #5a4638; margin-top: 1.4rem; }
.lb-probanner__grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 2rem 4rem; align-items: end; }
.lb-probanner__facts { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.lb-probanner__facts li { padding: 0.4rem 0.9rem; border: 1px solid rgba(13,12,12, 0.3); border-radius: 999px; font-weight: 600; font-size: var(--step--1); }
.lb-probanner__actions { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.lb-probanner .lb-btn--rain { background: var(--mud-deep); color: var(--light); }
.lb-probanner .lb-btn--rain:hover { background: var(--mud-lift); color: var(--light); }
.lb-probanner .lb-btn--ghost { border-color: rgba(13,12,12, 0.4); color: var(--mud-deep); }
.lb-probanner .lb-btn--ghost:hover { border-color: var(--mud-deep); color: var(--mud-deep); }
@media (max-width: 860px) { .lb-probanner__grid { grid-template-columns: 1fr; } }

.lb-dates__tools { display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; margin: 1.5rem 0 0; font-size: var(--step--1); }
.lb-dates__tools a { color: var(--clay-soft); }

/* ==========================================================================
   Espace pro
   ========================================================================== */

.lb-pro-hero {
	padding: calc(var(--header-h) + clamp(2rem, 6vw, 5rem)) 0 0;
	background:
		radial-gradient(90% 70% at 85% 10%, var(--mud-lift), transparent 60%),
		var(--mud-deep);
	border-bottom: 1px solid var(--line);
}

.lb-pro-hero__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: center; }
.lb-pro-hero__title { font-family: var(--serif); font-size: clamp(3rem, 2rem + 5vw, 6.5rem); line-height: 0.9; letter-spacing: -0.02em; }
.lb-pro-hero__lead { max-width: 46ch; margin: 1.5rem 0 2rem; font-size: var(--step-1); color: rgba(238, 242, 241, 0.88); }
.lb-pro-hero__actions { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.lb-pro-hero__delay { margin: 1.2rem 0 0; color: var(--clay-soft); font-size: var(--step--1); }
.lb-pro-hero__mark { color: var(--light); opacity: 0.92; max-width: 380px; justify-self: end; width: 100%; }
@media (max-width: 860px) {
	.lb-pro-hero__grid { grid-template-columns: 1fr; }
	.lb-pro-hero__mark { display: none; }
}

.lb-specs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	margin-top: clamp(2.5rem, 5vw, 4rem);
	margin-bottom: 0;
	border-top: 1px solid var(--line-strong);
}
.lb-specs div { padding: 1.2rem 1.2rem 1.4rem 0; border-right: 1px solid var(--line); }
.lb-specs div:last-child { border-right: 0; }
.lb-specs div + div { padding-left: 1.2rem; }
.lb-specs dt { color: var(--clay); font-size: var(--step--1); margin-bottom: 0.2rem; }
.lb-specs dd { margin: 0; font-family: var(--serif); font-size: var(--step-2); line-height: 1.1; }

.lb-pro-nav {
	position: sticky;
	top: var(--header-h);
	z-index: 40;
	background: rgba(13,12,12, 0.95);
	border-bottom: 1px solid var(--line);
	backdrop-filter: blur(8px);
}
.admin-bar .lb-pro-nav { top: calc(var(--header-h) + 32px); }
.lb-pro-nav ul { display: flex; gap: 0.2rem; list-style: none; overflow-x: auto; scrollbar-width: none; padding: 0.5rem 0; }
.lb-pro-nav a {
	display: block;
	padding: 0.45rem 0.85rem;
	border-radius: 999px;
	white-space: nowrap;
	font-size: var(--step--1);
	font-weight: 600;
	text-decoration: none;
	color: var(--clay-soft);
}
.lb-pro-nav a:hover, .lb-pro-nav a.is-current { background: var(--light); color: var(--mud-deep); }
.lb-pro .lb-section { scroll-margin-top: calc(var(--header-h) + 60px); }
.lb-pro #demande { scroll-margin-top: calc(var(--header-h) + 70px); }

/* Agenda */
.lb-agenda__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.lb-agenda__cal .lb-section__intro { margin: 1rem 0 2rem; }
@media (max-width: 960px) { .lb-agenda__grid { grid-template-columns: 1fr; } }

.lb-cal { border: 1px solid var(--line-strong); padding: 1rem; background: rgba(0, 0, 0, 0.15); }
.lb-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.6rem; }
.lb-cal__month { margin: 0; font-family: var(--serif); font-size: var(--step-2); text-transform: capitalize; }
.lb-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.lb-cal__dow { padding: 0.3rem 0; text-align: center; font-size: 0.75rem; font-weight: 600; color: var(--clay); }
.lb-cal__day {
	position: relative;
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	border: 1px solid transparent;
	border-radius: 3px;
	background: rgba(238, 242, 241, 0.05);
	font-variant-numeric: tabular-nums;
	font-size: 0.95rem;
	color: var(--light);
	text-decoration: none;
}
button.lb-cal__day { cursor: pointer; }
button.lb-cal__day:hover { border-color: var(--rain); background: rgba(185, 204, 212, 0.14); }
.lb-cal__day.is-past { opacity: 0.28; }
.lb-cal__day.is-busy { background: repeating-linear-gradient(135deg, rgba(238, 242, 241, 0.08) 0 4px, transparent 4px 8px); color: var(--clay); }
.lb-cal__day.is-gig { background: var(--rain); color: var(--mud-deep); font-weight: 700; }
.lb-cal__day.is-gig:hover { background: var(--rain-bright); }
.lb-cal__day.is-selected { outline: 2px solid var(--light); outline-offset: 1px; }
.lb-cal__day.is-today::after { content: ""; position: absolute; bottom: 5px; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
.lb-cal__legend { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; list-style: none; margin-top: 0.9rem; font-size: 0.8rem; color: var(--clay-soft); }
.lb-cal__legend li { display: flex; align-items: center; gap: 0.4rem; }
.lb-cal__dot { width: 12px; height: 12px; border-radius: 2px; }
.lb-cal__dot--free { background: rgba(238, 242, 241, 0.18); }
.lb-cal__dot--gig { background: var(--rain); }
.lb-cal__dot--busy { background: repeating-linear-gradient(135deg, rgba(238, 242, 241, 0.35) 0 2px, transparent 2px 4px); border: 1px solid var(--line-strong); }
.lb-cal__tip { margin: 0.8rem 0 0; min-height: 1.5em; font-size: var(--step--1); color: var(--rain-bright); }
.lb-agenda__ics { margin-top: 1rem; font-size: var(--step--1); }
.lb-agenda__ics a { color: var(--clay-soft); }

.lb-agenda__form { padding: clamp(1.4rem, 3vw, 2.4rem); background: var(--mud-lift); border-top: 3px solid var(--rain); }
.lb-agenda__form-title { font-family: var(--serif); font-size: var(--step-3); margin-bottom: 1.5rem; }
.lb-booking-form select,
.lb-field input[type="date"],
.lb-field input[type="tel"] {
	width: 100%;
	padding: 0.85rem 1rem;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	background: rgba(0, 0, 0, 0.22);
	color: var(--light);
	color-scheme: dark;
}
.lb-booking-form select:focus { outline: none; border-color: var(--rain); }
.lb-booking-form .lb-form__grid { grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .lb-booking-form .lb-form__grid { grid-template-columns: 1fr; } }
.lb-field.is-flash input { border-color: var(--rain); background: rgba(185, 204, 212, 0.16); transition: none; }

/* Formules */
.lb-formules__grid { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: var(--gap); }
.lb-formule {
	display: flex;
	flex-direction: column;
	padding: 1.6rem;
	background: var(--mud-lift);
	border: 1px solid var(--line);
}
.lb-formule .lb-tape { align-self: flex-start; }
.lb-formule__title { font-family: var(--serif); font-size: var(--step-2); }
.lb-formule__text { margin: 0.8rem 0 1.2rem; color: var(--clay-soft); }
.lb-formule__rows { margin: 0 0 1.4rem; border-top: 1px solid var(--line); }
.lb-formule__rows div { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding: 0.6rem 0; border-bottom: 1px solid var(--line); font-size: var(--step--1); }
.lb-formule__rows dt { color: var(--clay); }
.lb-formule__rows dd { margin: 0; }
.lb-formule__foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.lb-formule__price { margin: 0; font-family: var(--serif); font-size: var(--step-1); color: var(--rain-bright); }

/* Fiche technique : la feuille scotchée au retour */
.lb-tech__actions { display: flex; flex-wrap: wrap; gap: 0.8rem; justify-content: flex-end; }
.lb-sheet {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: 2rem 3rem;
	padding: clamp(1.4rem, 3vw, 2.6rem);
	background: #ebe6dc;
	color: #1d1611;
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.7);
	transform: rotate(-0.25deg);
}
.lb-sheet .lb-tape { background: #1d1611; color: #ebe6dc; }
.lb-sheet__facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin: 0; padding-bottom: 1.5rem; border-bottom: 2px solid #1d1611; }
.lb-sheet__facts dt { font-size: 0.8rem; font-weight: 700; color: #6a584a; }
.lb-sheet__facts dd { margin: 0; font-family: var(--serif); font-size: var(--step-2); }
.lb-sheet__block--wide { grid-column: 1 / -1; }
.lb-sheet__list { list-style: none; }
.lb-sheet__list li { padding: 0.45rem 0; border-bottom: 1px solid rgba(29, 22, 17, 0.18); }
.lb-sheet__plan img { width: 100%; background: #fff; }
.lb-table-wrap { overflow-x: auto; }
.lb-patch { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.lb-patch th { text-align: left; font-size: 0.8rem; color: #6a584a; padding: 0.4rem 0.6rem; border-bottom: 2px solid #1d1611; }
.lb-patch td { padding: 0.55rem 0.6rem; border-bottom: 1px solid rgba(29, 22, 17, 0.18); }
.lb-patch td:first-child { width: 3.5rem; font-weight: 700; }
.lb-patch tr:nth-child(even) td { background: rgba(29, 22, 17, 0.04); }

/* Bios */
.lb-bios__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: var(--gap); align-items: start; }
.lb-bio { padding: 1.6rem; border: 1px solid var(--line-strong); }
.lb-bio__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 1rem; }
.lb-bio__title { font-family: var(--serif); font-size: var(--step-2); }
.lb-bio__count { color: var(--clay); font-size: var(--step--1); font-variant-numeric: tabular-nums; }
.lb-bio__text { color: rgba(238, 242, 241, 0.88); margin-bottom: 1.2rem; }
.lb-bio__text p { margin-bottom: 0.8em; }

/* Documents */
.lb-doclist { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 0.8rem; margin-bottom: 2rem; }
.lb-doc {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 0.2rem 1rem;
	padding: 1.1rem 1.2rem;
	background: var(--mud-lift);
	border: 1px solid var(--line);
	text-decoration: none;
}
.lb-doc:hover { border-color: var(--rain); color: var(--light); }
.lb-doc__name { font-family: var(--serif); font-size: var(--step-1); }
.lb-doc__meta { grid-row: 2; color: var(--clay); font-size: var(--step--1); }
.lb-doc .lb-icon { grid-row: 1 / span 2; grid-column: 2; color: var(--rain); }
.lb-docs__zips { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-bottom: 2rem; }
.lb-press-photos { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 10px; margin-bottom: 3rem; }
.lb-press-photos a { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--mud-lift); }
.lb-press-photos img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s var(--ease); }
.lb-press-photos a:hover img { transform: scale(1.04); }
.lb-press-photos span { position: absolute; left: 8px; bottom: 8px; padding: 0.2rem 0.5rem; background: rgba(20, 15, 11, 0.8); font-size: 0.75rem; }

/* Références façon dos de t-shirt de tournée */
.lb-refs { text-align: center; }
.lb-refs__list { list-style: none; margin-top: 2.5rem; }
.lb-refs__list li {
	font-family: var(--serif);
	font-size: clamp(1.5rem, 1rem + 2.4vw, 3rem);
	line-height: 1.25;
	color: var(--light);
}
.lb-refs__list li:nth-child(even) { color: var(--clay-soft); }

/* Contact pro */
.lb-pro-contact { background: var(--rain) !important; color: var(--mud-deep); }
.lb-pro-contact__grid { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; }
.lb-pro-contact__card { display: grid; gap: 0.2rem; justify-items: start; }
.lb-pro-contact__card p { margin: 0; }
.lb-pro-contact__name { font-weight: 700; }
.lb-pro-contact__line { font-family: var(--serif); font-size: var(--step-2); text-decoration: none; }
.lb-pro-contact__line:hover { color: var(--mud-deep); text-decoration: underline; }
.lb-pro-contact .lb-btn--rain { margin-top: 1rem; background: var(--mud-deep); color: var(--light); }
@media (max-width: 760px) { .lb-pro-contact__grid { grid-template-columns: 1fr; } }

/* Impression de la fiche technique */
@media print {
	body.lb-print-tech > *:not(main),
	body.lb-print-tech .lb-main > *:not(.lb-pro),
	body.lb-print-tech .lb-pro > *:not(#technique),
	body.lb-print-tech .lb-tech__actions { display: none !important; }
	body.lb-print-tech::after { display: none; }
	body.lb-print-tech .lb-sheet { transform: none; box-shadow: none; background: #fff; }
	body.lb-print-tech .lb-section { padding: 0; }
	body.lb-print-tech .lb-section__title { color: #000; text-shadow: none; font-size: 28pt; }
}

/* ==========================================================================
   v1.2 : EN-TÊTE, MENU PLEIN ÉCRAN, ONGLETS MOBILES
   ========================================================================== */

:root { --micro-h: 40px; --bar-h: 84px; --header-h: 100px; --tab-h: 0px; }

.lb-header { position: fixed; inset: 0 0 auto; z-index: 60; transition: background-color .3s; }
.admin-bar .lb-header { top: 32px; }
body:not(.lb-home) .lb-header { background: #000000; border-bottom: 1px solid var(--line); }
body:not(.lb-home) .lb-main { padding-top: calc(var(--micro-h) + var(--bar-h)); }

.lb-micro {
	height: var(--micro-h);
	display: flex; align-items: center; gap: 28px;
	padding: 0 clamp(16px, 3.4vw, 48px);
	background: #0d0907; border-bottom: 1px solid rgba(238,242,241,.08);
	font-size: 13px; color: var(--clay-soft);
	overflow: hidden; transition: height .3s var(--ease), opacity .3s;
}
.lb-micro p { margin: 0; display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.lb-micro__now strong { color: var(--light); }
.lb-micro__next { margin-left: auto !important; }
.lb-micro a { color: var(--light); text-decoration: none; }
.lb-micro__pro { color: var(--clay-soft) !important; text-decoration: underline !important; }
.lb-eq { display: inline-flex; align-items: flex-end; gap: 2px; height: 13px; color: var(--rain); }
.lb-eq i { width: 3px; height: 40%; background: currentColor; }
.lb-eq i:nth-child(2) { height: 100%; } .lb-eq i:nth-child(3) { height: 55%; } .lb-eq i:nth-child(4) { height: 80%; }
body.lb-playing .lb-eq i { animation: lb-eq .9s ease-in-out infinite alternate; }
body.lb-playing .lb-eq i:nth-child(2) { animation-delay: -.3s; } body.lb-playing .lb-eq i:nth-child(3) { animation-delay: -.6s; } body.lb-playing .lb-eq i:nth-child(4) { animation-delay: -.15s; }
@keyframes lb-eq { from { height: 20%; } to { height: 100%; } }

.lb-tape--tiny { margin: 0; padding: 2px 8px 1px; font-size: 11px; }
.lb-tape--dark { background: #050505; color: var(--light); }

.lb-bar {
	height: var(--bar-h);
	display: flex; align-items: center; gap: clamp(20px, 3vw, 44px);
	padding: 0 clamp(16px, 3.4vw, 48px);
	transition: all .35s var(--ease);
}
.lb-brand { display: flex; align-items: center; gap: 14px; margin-right: auto; text-decoration: none; color: var(--light); }
.lb-brand__logo, .lb-brand__img { width: 56px; height: 56px; object-fit: contain; color: var(--light); }
.lb-brand__name { display: flex; flex-direction: column; font-family: var(--serif); line-height: 1; font-size: 20px; }
.lb-brand__name small { font-family: var(--sans); font-size: 11px; letter-spacing: .32em; color: var(--clay-soft); margin: 3px 0 2px 2px; }

.lb-nav__list { display: flex; gap: 30px; list-style: none; margin: 0; padding: 0; }
.lb-nav__list a { position: relative; display: block; padding: 10px 0; font-size: 16px; font-weight: 500; color: rgba(238,242,241,.8); text-decoration: none; }
.lb-nav__list a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--rain); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.lb-nav__list a:hover, .lb-nav__list .is-current > a { color: var(--light); }
.lb-nav__list a:hover::after, .lb-nav__list .is-current > a::after { transform: scaleX(1); }

.lb-bar__actions { display: flex; align-items: center; gap: 10px; }
.lb-bar__socials a { width: 44px; height: 44px; }
.lb-bar__booking { height: 48px; padding: 0 22px; font-weight: 800; }
.lb-bar__booking .lb-icon { width: 18px; height: 18px; }
.lb-burger { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; background: transparent; color: var(--light); }
.lb-burger:hover { border-color: var(--rain); }

.lb-hnow { display: flex; align-items: center; gap: 10px; padding: 5px 6px 5px 5px; border-radius: 999px; background: rgba(238,242,241,.07); }
.lb-hnow[hidden] { display: none; }
.lb-hnow img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }
.lb-hnow__meta { display: flex; flex-direction: column; gap: 5px; width: 110px; }
.lb-hnow__title { font-family: var(--serif); font-size: 15px; line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-hnow__bar { display: block; height: 3px; background: rgba(238,242,241,.2); }
.lb-hnow__bar i { display: block; height: 3px; width: 0; background: var(--rain); }
.lb-hnow__btn { width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--rain); color: var(--mud-deep); display: grid; place-items: center; }
.lb-hnow__btn .lb-icon { width: 14px; height: 14px; }
.lb-hnow__btn .lb-icon--pause, body.lb-playing .lb-hnow__btn .lb-icon--play { display: none; }
body.lb-playing .lb-hnow__btn .lb-icon--pause { display: block; }

/* Au défilement : la barre devient une pilule flottante */
.lb-header.is-scrolled { background: transparent !important; border-bottom-color: transparent !important; }
.lb-header.is-scrolled .lb-micro { height: 0; opacity: 0; border: 0; }
.lb-header.is-scrolled .lb-bar {
	height: 70px; margin: 14px clamp(10px, 1.7vw, 24px) 0; padding: 0 10px 0 14px;
	border-radius: 999px; background: rgba(17,12,9,.9); border: 1px solid rgba(238,242,241,.14);
	box-shadow: 0 18px 40px rgba(0,0,0,.45); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.lb-header.is-scrolled .lb-brand__name { display: none; }
.lb-header.is-scrolled .lb-brand__logo { width: 44px; height: 44px; }
.lb-header.is-scrolled .lb-bar__socials { display: none; }
.lb-header.is-scrolled .lb-bar__booking { background: var(--light); }

/* Menu plein écran */
.lb-overlay {
	position: fixed; inset: 0; z-index: 95; overflow-y: auto;
	background: #000000; color: var(--light);
	background-image: repeating-linear-gradient(104deg, transparent 0 60px, rgba(185,204,212,.05) 60px 61px);
	opacity: 0; transition: opacity .3s;
}
.lb-overlay.is-open { opacity: 1; }
.lb-overlay[hidden] { display: none; }
.lb-overlay__top { display: flex; align-items: center; gap: 16px; height: 92px; padding: 0 clamp(16px, 3.4vw, 48px); }
.lb-overlay__logo { width: 58px; height: 58px; color: var(--light); margin-right: auto; }
.lb-overlay__label { font-size: 14px; color: var(--clay); }
.lb-overlay__close { width: 52px; height: 52px; border: 0; border-radius: 50%; background: var(--light); color: var(--mud-deep); display: grid; place-items: center; }
.lb-overlay__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(30px, 6vw, 80px); padding: 20px clamp(16px, 3.4vw, 48px) 60px; }
.lb-overlay__list { list-style: none; margin: 0; padding: 0; }
.lb-overlay__list a { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid rgba(238,242,241,.12); text-decoration: none; }
.lb-overlay__title { font-family: var(--serif); font-size: clamp(38px, 2rem + 2.6vw, 66px); line-height: 1; transition: color .2s, transform .3s var(--ease); }
.lb-overlay__desc { font-size: 15px; color: var(--clay-soft); text-align: right; }
.lb-overlay__list a:hover .lb-overlay__title { color: var(--rain); transform: translateX(10px); }
@media (prefers-reduced-motion: no-preference) {
	.lb-overlay.is-open .lb-overlay__list li { animation: lb-rise .6s var(--ease) both; }
	.lb-overlay.is-open .lb-overlay__list li:nth-child(2) { animation-delay: .05s; } .lb-overlay.is-open .lb-overlay__list li:nth-child(3) { animation-delay: .1s; }
	.lb-overlay.is-open .lb-overlay__list li:nth-child(4) { animation-delay: .15s; } .lb-overlay.is-open .lb-overlay__list li:nth-child(5) { animation-delay: .2s; } .lb-overlay.is-open .lb-overlay__list li:nth-child(n+6) { animation-delay: .25s; }
}
.lb-overlay__side { display: flex; flex-direction: column; gap: 18px; }
.lb-overlay__album { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 18px; align-items: center; padding: 18px; background: #0d0c0c; }
.lb-overlay__cover { width: 120px; height: 120px; }
.lb-overlay__album-title { margin: 0 0 12px; font-family: var(--serif); font-size: 28px; line-height: 1; }
.lb-overlay__pro { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px; background: var(--rain); color: var(--mud-deep); text-decoration: none; }
.lb-overlay__pro strong { display: block; font-family: var(--serif); font-weight: 400; font-size: 28px; }
.lb-overlay__pro small { font-size: 14px; font-weight: 600; }
.lb-overlay__pro:hover { background: var(--rain-bright); color: var(--mud-deep); }
body.lb-menu-open { overflow: hidden; }

/* Billet réutilisable */
.lb-ticket { display: grid; grid-template-columns: 120px minmax(0, 1fr); min-height: 120px; background: #0d0c0c; }
.lb-ticket__stub { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 10px 0; background: #d9d2c3; color: #0b0b0b; border-right: 3px dashed #000000; text-decoration: none; }
.lb-ticket__wd { font-size: 12px; font-weight: 700; color: #5a4638; }
.lb-ticket__day { font-family: var(--serif); font-size: 46px; line-height: .9; }
.lb-ticket__day--soon { font-size: 26px; }
.lb-ticket__mo { font-size: 13px; font-weight: 700; }
.lb-ticket__body { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 14px 20px; }
.lb-ticket__kicker { font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--clay); }
.lb-ticket__venue { font-family: var(--serif); font-size: 26px; line-height: 1.05; color: var(--light); text-decoration: none; }
.lb-ticket__meta { font-size: 14px; color: var(--clay-soft); }
.lb-ticket--big { grid-template-columns: 150px minmax(0, 1fr); min-height: 176px; background: #d9d2c3; color: #050505; transform: rotate(1.5deg); box-shadow: 0 30px 60px rgba(0,0,0,.55); }
.lb-ticket--big .lb-ticket__stub { background: #050505; color: var(--light); border-right-color: #d9d2c3; }
.lb-ticket--big .lb-ticket__wd { color: var(--clay-soft); }
.lb-ticket--big .lb-ticket__day { font-size: 66px; }
.lb-ticket--big .lb-ticket__venue { font-size: 32px; color: #050505; }
.lb-ticket--big .lb-ticket__meta { color: #1c1a18; font-weight: 600; }
.lb-ticket--big .lb-ticket__kicker { color: #5a4638; }

/* Onglets mobiles */
.lb-tabbar { display: none; }

@media (max-width: 1180px) {
	.lb-nav, .lb-bar__socials, .lb-hnow { display: none !important; }
}
@media (max-width: 860px) {
	.lb-overlay__grid { grid-template-columns: 1fr; }
	.lb-overlay__desc { display: none; }
}
@media (max-width: 760px) {
	:root { --micro-h: 0px; --bar-h: 64px; --tab-h: calc(70px + env(safe-area-inset-bottom, 0px)); --header-h: 76px; }
	.lb-micro { display: none; }
	.lb-brand__name { display: none; }
	.lb-brand__logo, .lb-brand__img { width: 46px; height: 46px; }
	.lb-bar__booking { height: 42px; padding: 0 16px; font-size: 14px; }
	.lb-burger { width: 44px; height: 44px; }
	.lb-header.is-scrolled .lb-bar { height: 60px; margin-top: 8px; }
	body { padding-bottom: calc(var(--tab-h) + var(--player-h)); }
	.lb-tabbar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
		display: flex; height: var(--tab-h); padding: 0 6px env(safe-area-inset-bottom, 0px);
		background: rgba(0,0,0,.94); border-top: 1px solid rgba(238,242,241,.1);
		backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
	}
	.lb-tabbar a { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; font-size: 11px; font-weight: 700; color: rgba(238,242,241,.55); text-decoration: none; }
	.lb-tabbar a.is-on { color: var(--rain); }
	.lb-tabbar .lb-icon { width: 24px; height: 24px; }
}

/* ==========================================================================
   OUVERTURE « AFFICHE »
   ========================================================================== */

.lb-hero {
	position: relative; min-height: max(100svh, 760px); display: flex; flex-direction: column; justify-content: center;
	overflow: hidden; isolation: isolate; background: #090909;
	padding: calc(var(--micro-h) + var(--bar-h) + 30px) 0 170px;
}
.lb-hero__photo { position: absolute; right: 0; top: 0; width: min(56vw, 900px); height: 100%; object-fit: cover; object-position: 50% 20%; z-index: -3; filter: saturate(.9) contrast(1.05); }
.lb-hero__shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, #090909 0%, #090909 38%, rgba(9,9,9,.55) 52%, rgba(9,9,9,0) 72%), linear-gradient(0deg, #090909 0%, rgba(9,9,9,0) 35%), linear-gradient(180deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,0) 22%); }
.lb-hero__rain { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.lb-hero__inner { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.lb-hero__inner .lb-tape { margin: 0; }
.lb-hero__title { width: min(560px, 46vw); margin: 0; color: var(--light); }
.lb-hero__wordmark { width: 100%; height: auto; }
.lb-hero__tagline { max-width: 36ch; margin: 0; font-size: var(--step-1); line-height: 1.5; color: rgba(238,242,241,.9); }
.lb-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.lb-billing { position: absolute; left: 0; right: 0; bottom: 44px; padding-top: 18px; border-top: 1px solid rgba(238,242,241,.18); text-align: center; color: rgba(238,242,241,.62); }
.lb-billing p { margin: 0 0 4px; font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; transform: scaleY(1.25); }
.lb-billing b { color: var(--light); font-weight: 700; }
@media (prefers-reduced-motion: no-preference) {
	.js .lb-hero__photo { animation: lb-photo 1.6s var(--ease) both; }
	.js .lb-hero__inner > * { animation: lb-rise 1s var(--ease) both; }
	.js .lb-hero__inner > *:nth-child(2) { animation-delay: .1s; } .js .lb-hero__inner > *:nth-child(3) { animation-delay: .25s; } .js .lb-hero__inner > *:nth-child(4) { animation-delay: .4s; }
}
@keyframes lb-photo { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: none; } }
@keyframes lb-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (max-width: 760px) {
	.lb-hero { justify-content: flex-end; padding: 0 0 40px; min-height: calc(100svh - var(--tab-h)); }
	.lb-hero__photo { width: 100%; height: 72%; }
	.lb-hero__shade { background: linear-gradient(0deg, #090909 0%, #090909 34%, rgba(9,9,9,.2) 62%, rgba(9,9,9,.6) 100%); }
	.lb-hero__title { width: 86%; }
	.lb-hero__actions .lb-btn { flex: 1 1 100%; justify-content: center; }
	.lb-billing { display: none; }
}

/* ==========================================================================
   CONCERTS EN TICKETS
   ========================================================================== */

.lb-gigs { border-top: 0; display: grid; gap: 14px; }
.lb-gig { grid-template-columns: 150px minmax(0, 1fr) auto; padding: 0 28px 0 0; min-height: 124px; border-bottom: 0; background: #1c1a18; }
.lb-gig__date { align-self: stretch; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 0; background: #d9d2c3; color: #0b0b0b; border-right: 3px dashed var(--mud); }
.lb-gig__day { font-size: 52px; line-height: .9; grid-row: auto; }
.lb-gig__month { color: #0b0b0b; font-weight: 800; }
.lb-gig__year { color: #5a4638; }
.lb-gigs--past .lb-gig { min-height: 84px; background: rgba(28,26,24,.6); }
.lb-soon { display: grid; grid-template-columns: 170px minmax(0, 1fr) auto; align-items: center; gap: 30px; padding-right: 30px; min-height: 124px; background: #1c1a18; }
.lb-soon__stub { align-self: stretch; display: grid; place-items: center; background: #d9d2c3; color: #0b0b0b; font-family: var(--serif); font-size: 40px; border-right: 3px dashed var(--mud); }
.lb-soon__title { margin: 0; font-family: var(--serif); font-size: var(--step-2); line-height: 1.1; }
.lb-soon__text { margin: 6px 0 0; color: var(--clay-soft); }
.lb-refs--home { margin-top: 60px; text-align: center; }
.lb-refs--home .lb-refs__list { margin-top: 18px; }
@media (max-width: 760px) {
	/* portefeuille de billets */
	.lb-gigs { gap: 0; }
	.lb-gig { grid-template-columns: 90px 1fr; border-radius: 18px; padding: 0; overflow: hidden; margin-top: -18px; box-shadow: 0 -10px 30px rgba(0,0,0,.35); min-height: 150px; }
	.lb-gig:first-child { margin-top: 0; }
	.lb-gig:nth-child(3n+2) { background: #d9d2c3; color: #050505; }
	.lb-gig:nth-child(3n+2) .lb-gig__meta { color: #1c1a18; }
	.lb-gig:nth-child(3n+3) { background: var(--rain); color: #050505; }
	.lb-gig:nth-child(3n+3) .lb-gig__meta { color: #25404a; }
	.lb-gig:nth-child(3n+2) .lb-chip, .lb-gig:nth-child(3n+3) .lb-chip { border-color: rgba(5,5,5,.35); color: #050505; }
	.lb-gig:nth-child(3n+2) .lb-btn--rain, .lb-gig:nth-child(3n+3) .lb-btn--rain { background: #050505; color: var(--light); }
	.lb-gig:nth-child(3n+2) .lb-tag, .lb-gig:nth-child(3n+3) .lb-tag { background: #050505; color: var(--light); }
	.lb-gig__date { border-right: 2px dashed rgba(0,0,0,.25); background: rgba(0,0,0,.18); color: inherit; }
	.lb-gig__month, .lb-gig__year { color: inherit; }
	.lb-gig__info { padding: 16px 14px 0; }
	.lb-gig__action { grid-column: 2; justify-content: flex-start; padding: 0 14px 34px; flex-wrap: wrap; }
	.lb-gig:last-child .lb-gig__action { padding-bottom: 16px; }
	.lb-soon { grid-template-columns: 90px 1fr; padding: 0; }
	.lb-soon__stub { font-size: 22px; }
	.lb-soon .lb-btn { grid-column: 1 / -1; margin: 0 16px 16px; justify-content: center; }
	.lb-soon__body { padding: 16px 16px 16px 0; }
}

/* ==========================================================================
   LA MEUTE, BOUTIQUE
   ========================================================================== */

.lb-meute { position: relative; overflow: hidden; }
.lb-meute__mark { position: absolute; left: -8vw; top: -10%; width: min(640px, 70vw); color: var(--light); opacity: .07; pointer-events: none; }
.lb-meute__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: clamp(30px, 6vw, 80px); align-items: center; }
.lb-meute__title { font-family: var(--serif); font-weight: 400; font-size: clamp(3rem, 2rem + 5vw, 7.5rem); line-height: .88; margin: 0 0 22px; }
.lb-meute__card { padding: clamp(22px, 3vw, 40px); background: #141312; border-top: 3px solid var(--rain); }
.lb-meute__perks { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 14px; font-size: 18px; }
.lb-meute__perks li { display: flex; gap: 12px; align-items: center; }
.lb-meute__perks li::before { content: ""; width: 20px; height: 20px; flex: none; background: var(--rain); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.lb-meute__legal { margin: 12px 0 0; font-size: 13px; color: var(--clay); }
.lb-meute__done { padding: 12px 14px; background: rgba(185,204,212,.14); color: var(--rain-bright); font-weight: 600; }
.lb-meute-form__row { display: flex; gap: 8px; }
.lb-meute-form input[type=email] { flex: 1; min-width: 0; height: 54px; padding: 0 16px; border: 1px solid var(--line-strong); border-radius: var(--radius); background: rgba(0,0,0,.3); color: var(--light); }
.lb-meute-form input[type=email]:focus { outline: none; border-color: var(--rain); }
.lb-meute-form .lb-btn { height: 54px; }
.lb-meute-form__status { margin: 10px 0 0; min-height: 1.2em; font-size: 14px; }
.lb-meute-form__status[data-state=ok] { color: var(--rain-bright); }
.lb-meute-form__status[data-state=error] { color: #f0a98c; }
@media (max-width: 860px) { .lb-meute__grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .lb-meute-form__row { flex-direction: column; } }

.lb-shop { background: #e7e1d6 !important; color: #0d0c0c; }
.lb-shop .lb-section__intro { color: #5a4638; }
.lb-shop__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 24px; }
.lb-product { display: flex; flex-direction: column; gap: 12px; }
.lb-product__media { position: relative; aspect-ratio: 1; display: grid; place-items: center; background: #d8d0c2; overflow: hidden; }
.lb-product__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.lb-product:hover .lb-product__media img { transform: scale(1.04); }
.lb-product__media .lb-tape { position: absolute; left: 14px; top: 14px; z-index: 1; }
.lb-product__placeholder { width: 50%; color: #0d0c0c; }
.lb-product__title { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 26px; }
.lb-product__text { margin: 0; color: #5a4638; font-size: 15px; }
.lb-product__foot { display: flex; justify-content: space-between; align-items: center; margin-top: auto; }
.lb-product__price { font-weight: 800; font-size: 18px; }
.lb-btn--dark { background: #0d0c0c; color: var(--light); }
.lb-btn--dark:hover { background: #1c1a18; color: var(--light); }
.lb-shop .lb-tag { background: rgba(13,12,12,.1); color: #1c1a18; }

/* ==========================================================================
   PIED DE PAGE « GÉNÉRIQUE DE FIN »
   ========================================================================== */

.lb-footer { background: #0b0806; color: var(--light); padding: 0; border: 0; }
.lb-end { position: relative; min-height: 700px; overflow: hidden; display: flex; }
.lb-end__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; filter: grayscale(.35) contrast(1.15) brightness(.55); }
.lb-end::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #0b0806 0%, rgba(11,8,6,0) 45%), linear-gradient(90deg, rgba(11,8,6,.85) 0%, rgba(11,8,6,.2) 60%, rgba(11,8,6,.55) 100%), repeating-linear-gradient(104deg, transparent 0 46px, rgba(185,204,212,.10) 46px 47px); }
.lb-end__inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 470px); grid-template-areas: "text ticket" "cards cards"; gap: 40px; padding: 110px 0 44px; align-content: space-between; }
.lb-end__text { grid-area: text; }
.lb-end__title { margin: 12px 0 0; white-space: nowrap; font-family: var(--serif); font-size: clamp(3.6rem, 1rem + 8vw, 11rem); line-height: .82; letter-spacing: -.02em; }
.lb-end__lead { max-width: 32ch; margin: 22px 0 0; font-size: var(--step-1); color: rgba(238,242,241,.88); }
.lb-end__ticket { grid-area: ticket; display: flex; flex-direction: column; gap: 22px; }
.lb-end__ticket-actions { display: flex; gap: 10px; }
.lb-end__ticket-actions .lb-btn { flex: 1; justify-content: center; }
.lb-end__cards { grid-area: cards; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.lb-end__meute { padding: 26px 28px; background: rgba(13,12,12,.9); border-top: 3px solid var(--rain); backdrop-filter: blur(8px); }
.lb-end__card-title { display: flex; align-items: center; gap: 14px; margin: 0 0 8px; font-family: var(--serif); font-size: 32px; }
.lb-end__card-title .lb-svg { width: 46px; height: 46px; color: var(--light); }
.lb-end__card-text { margin: 0 0 14px; color: var(--clay-soft); font-size: 15px; }
.lb-end__pro { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 28px; background: var(--light); color: #050505; text-decoration: none; transition: background-color .2s; }
.lb-end__pro:hover { background: #fff; color: #050505; }
.lb-end__pro strong { display: block; margin: 10px 0 4px; font-family: var(--serif); font-weight: 400; font-size: 34px; line-height: 1.05; }
.lb-end__pro small { font-size: 15px; font-weight: 600; color: #1c1a18; }
.lb-end__pro-icon { width: 64px; height: 64px; flex: none; border-radius: 50%; background: #050505; color: var(--light); display: grid; place-items: center; transition: transform .3s var(--ease); }
.lb-end__pro:hover .lb-end__pro-icon { transform: rotate(-12deg) scale(1.06); }
.lb-perf { height: 34px; display: flex; align-items: center; background: #0b0806; border-top: 1px solid rgba(238,242,241,.08); border-bottom: 1px solid rgba(238,242,241,.08); }
.lb-perf::before { content: ""; width: 100%; height: 14px; background: repeating-linear-gradient(90deg, transparent 0 14px, rgba(238,242,241,.16) 14px 34px); }
.lb-credits { display: flex; flex-direction: column; align-items: center; gap: 30px; padding: 90px var(--gap) 80px; }
.lb-credits__logo { width: 150px; color: var(--light); }
.lb-credits__kicker { margin: 0; font-family: var(--serif); font-style: italic; font-size: 22px; color: var(--clay-soft); }
.lb-credits__list { width: min(900px, 100%); margin: 14px 0 0; display: grid; gap: 30px; }
.lb-credits__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: baseline; }
.lb-credits__row dt { text-align: right; font-size: 13px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--clay); }
.lb-credits__row dd { margin: 0; display: flex; flex-direction: column; gap: 2px; }
.lb-credits__row dd a, .lb-credits__row dd span { font-family: var(--serif); font-size: 26px; line-height: 1.25; color: var(--light); text-decoration: none; }
.lb-credits__row dd a:hover { color: var(--rain); }
.lb-credits__row:first-child dd a { font-size: 32px; }
.lb-credits__former { margin: 20px 0 0; font-family: var(--serif); font-size: 20px; color: var(--clay); }
.lb-credits__widgets { width: min(900px, 100%); display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
.lb-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; padding: 26px clamp(16px, 3.4vw, 48px) calc(26px + var(--tab-h)); font-size: 14px; color: var(--clay); }
.lb-legal p { margin: 0; }
.lb-legal a { color: var(--clay); }
.lb-legal__mark { width: 150px; color: var(--clay); }
.lb-legal__menu { display: flex; gap: 20px; list-style: none; margin: 0; padding: 0; }
.lb-legal__end { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.lb-legal__top { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: var(--rain); color: #050505 !important; }
@media (max-width: 900px) {
	.lb-end__inner { grid-template-columns: 1fr; grid-template-areas: "text" "ticket" "cards"; padding-top: 80px; }
	.lb-end__cards { grid-template-columns: 1fr; }
	.lb-credits__row { grid-template-columns: 1fr; gap: 6px; text-align: center; }
	.lb-credits__row dt { text-align: center; }
	.lb-credits__row dd { align-items: center; }
	.lb-legal__end { margin-left: 0; }
}

/* ==========================================================================
   LECTEUR : pilule d'en-tête (bureau), mini-lecteur et plein écran (mobile)
   ========================================================================== */

.lb-player { position: fixed; z-index: 65; left: 12px; right: 12px; bottom: calc(12px + var(--tab-h)); transform: translateY(160%); transition: transform .4s var(--ease); }
.lb-player.is-visible { transform: none; }
.lb-player[hidden] { display: block; visibility: hidden; }
.lb-player.is-visible[hidden] { visibility: visible; }
.lb-player__blur { display: none; }
.lb-player__inner { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 16px; background: #141312; border: 1px solid rgba(238,242,241,.14); box-shadow: 0 16px 36px rgba(0,0,0,.5); }
.lb-player__now { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 0; border: 0; background: none; color: inherit; text-align: left; }
.lb-player__cover { width: 48px; height: 48px; flex: none; display: grid; place-items: center; overflow: hidden; border-radius: 8px; background: var(--mud-lift); color: var(--light); }
.lb-player__cover .lb-svg { width: 80%; }
.lb-player__cover img { width: 100%; height: 100%; object-fit: cover; }
.lb-player__meta { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.lb-player__title { font-family: var(--serif); font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-player__album { color: var(--clay); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-player__controls { display: flex; align-items: center; gap: 2px; }
.lb-player__btn { width: 42px; height: 42px; display: grid; place-items: center; border: 0; border-radius: 50%; background: none; color: var(--light); }
.lb-player__btn .lb-icon { width: 20px; height: 20px; }
.lb-player__btn--main { width: 46px; height: 46px; background: var(--rain); color: var(--mud-deep); }
.lb-player__btn--main .lb-icon--pause, .lb-player.is-playing .lb-player__btn--main .lb-icon--play { display: none; }
.lb-player.is-playing .lb-player__btn--main .lb-icon--pause { display: block; }
.lb-player__timeline { flex: 1.2; display: flex; align-items: center; gap: 10px; }
.lb-player__time { font-size: 12px; color: var(--clay); font-variant-numeric: tabular-nums; min-width: 2.6em; }
.lb-player__seek { flex: 1; height: 22px; margin: 0; background: transparent; -webkit-appearance: none; appearance: none; --p: 0%; }
.lb-player__seek::-webkit-slider-runnable-track { height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--rain) var(--p), rgba(238,242,241,.2) var(--p)); }
.lb-player__seek::-moz-range-track { height: 3px; background: rgba(238,242,241,.2); }
.lb-player__seek::-moz-range-progress { height: 3px; background: var(--rain); }
.lb-player__seek::-webkit-slider-thumb { -webkit-appearance: none; width: 13px; height: 13px; margin-top: -5px; border-radius: 50%; background: var(--light); }
.lb-player__seek::-moz-range-thumb { width: 13px; height: 13px; border: 0; border-radius: 50%; background: var(--light); }
.lb-player__links, .lb-player__collapse { display: none; }

@media (min-width: 1181px) {
	/* Sur grand écran, le lecteur vit dans l'en-tête : la barre du bas reste discrète */
	.lb-player { left: auto; right: 24px; bottom: 24px; width: 520px; }
	.lb-header.is-scrolled ~ .lb-player { transform: translateY(160%); }
	.lb-header:not(.is-scrolled) .lb-hnow { display: none; }
}
@media (max-width: 760px) {
	.lb-player__timeline, .lb-player__controls [data-lb-prev], .lb-player__controls [data-lb-next], .lb-player__close { display: none; }
	.lb-player__inner { padding: 7px 8px; }
	.lb-player__cover { width: 44px; height: 44px; }
	/* plein écran */
	.lb-player.is-expanded { inset: 0; left: 0; right: 0; bottom: 0; z-index: 99; background: #0d0907; overflow: hidden; }
	.lb-player.is-expanded .lb-player__blur { display: block; position: absolute; inset: -40px; width: calc(100% + 80px); height: calc(100% + 80px); object-fit: cover; filter: blur(40px) brightness(.45) saturate(1.2); }
	.lb-player.is-expanded .lb-player__inner { position: relative; height: 100%; flex-direction: column; justify-content: center; gap: 22px; padding: 70px 28px calc(28px + env(safe-area-inset-bottom, 0px)); border: 0; border-radius: 0; background: rgba(0,0,0,.35); box-shadow: none; }
	.lb-player.is-expanded .lb-player__collapse { display: grid; position: absolute; top: 18px; left: 16px; width: 44px; height: 44px; place-items: center; border: 0; border-radius: 50%; background: rgba(0,0,0,.4); color: var(--light); }
	.lb-player.is-expanded .lb-player__now { flex: none; flex-direction: column; align-items: stretch; gap: 20px; width: 100%; }
	.lb-player.is-expanded .lb-player__cover { width: min(80vw, 340px); height: auto; aspect-ratio: 1; align-self: center; border-radius: 4px; box-shadow: 0 30px 60px rgba(0,0,0,.6); }
	.lb-player.is-expanded .lb-player__title { font-size: 34px; white-space: normal; }
	.lb-player.is-expanded .lb-player__album { font-size: 15px; }
	.lb-player.is-expanded .lb-player__timeline { display: flex; flex: none; width: 100%; }
	.lb-player.is-expanded .lb-player__controls { gap: 26px; }
	.lb-player.is-expanded .lb-player__controls [data-lb-prev], .lb-player.is-expanded .lb-player__controls [data-lb-next] { display: grid; }
	.lb-player.is-expanded .lb-player__btn--main { width: 78px; height: 78px; }
	.lb-player.is-expanded .lb-player__btn--main .lb-icon { width: 28px; height: 28px; }
	.lb-player.is-expanded .lb-player__links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; width: 100%; }
	.lb-player__links a, .lb-player__links button { height: 48px; display: flex; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 12px; background: rgba(0,0,0,.5); color: var(--light); font-size: 13px; font-weight: 700; text-decoration: none; }
	.lb-player__links .lb-icon { width: 18px; height: 18px; }
	.lb-player__links [hidden] { display: none !important; }
	body.lb-player-open { overflow: hidden; }
}

/* Bannière d'installation */
.lb-install { position: fixed; z-index: 72; left: 10px; right: 10px; bottom: calc(10px + var(--tab-h)); display: flex; align-items: center; gap: 12px; padding: 10px 10px 10px 12px; border-radius: 16px; background: #eef2f1; color: #050505; box-shadow: 0 16px 40px rgba(0,0,0,.45); }
.lb-install[hidden] { display: none; }
.lb-install img { border-radius: 12px; }
.lb-install__text { flex: 1; margin: 0; display: flex; flex-direction: column; font-size: 13px; line-height: 1.3; }
.lb-install__close { width: 40px; height: 40px; border: 0; background: none; color: #050505; display: grid; place-items: center; }

/* ==========================================================================
   DEMANDE DE DATE EN ÉTAPES
   ========================================================================== */

.lb-stepper { list-style: none; margin: 0 0 26px; padding: 0 0 20px; display: flex; flex-wrap: wrap; gap: 10px 24px; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 600; color: var(--clay); }
.lb-stepper li { display: flex; align-items: center; gap: 8px; }
.lb-stepper span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line-strong); font-weight: 800; }
.lb-stepper li.is-on { color: var(--light); }
.lb-stepper li.is-on span { background: var(--rain); color: #050505; border-color: var(--rain); }
.lb-stepper li.is-done { color: var(--light); }
.lb-stepper li.is-done span { background: var(--light); color: #050505; border-color: var(--light); font-size: 0; }
.lb-stepper li.is-done span::after { content: "✓"; font-size: 14px; }
.lb-step { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 1.2rem; }
.lb-step__title { padding: 0; margin-bottom: 4px; font-family: var(--serif); font-size: var(--step-2); }
.js .lb-booking-form .lb-step:not(.is-on) { display: none; }
.no-js .lb-stepper, .lb-booking-form:not(.is-stepped) .lb-stepper { display: none; }
.lb-field__label { font-weight: 600; font-size: var(--step--1); color: var(--clay-soft); }
.lb-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.lb-pill { position: relative; }
.lb-pill input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.lb-pill span { display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: 15px; font-weight: 600; }
.lb-pill input:checked + span { background: var(--light); color: #050505; border-color: var(--light); }
.lb-pill input:focus-visible + span { outline: 2px solid var(--rain); outline-offset: 2px; }
.lb-choice-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.lb-choice-card { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 18px; border: 1px solid var(--line-strong); cursor: pointer; }
.lb-choice-card input { position: absolute; opacity: 0; }
.lb-choice-card:has(input:checked) { border: 2px solid var(--rain); background: rgba(185,204,212,.08); padding: 17px; }
.lb-choice-card:has(input:focus-visible) { outline: 2px solid var(--rain); outline-offset: 2px; }
.lb-choice-card__title { font-family: var(--serif); font-size: 24px; }
.lb-choice-card__text { font-size: 14px; color: var(--clay-soft); }
.lb-choice-card__meta { font-size: 13px; font-weight: 700; }
.lb-recap { margin: 0; display: grid; }
.lb-recap div { display: grid; grid-template-columns: 140px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.lb-recap dt { color: var(--clay); font-size: 14px; }
.lb-recap dd { margin: 0; font-weight: 600; }
.lb-recap__note { color: var(--clay-soft); font-size: 14px; margin: 0; }
.lb-steps-nav { justify-content: space-between; }
.lb-steps-nav [hidden] { display: none !important; }
.lb-booking-done { padding: 20px; border: 1px solid var(--rain); background: rgba(185,204,212,.08); }
.lb-form.is-sending [type=submit] { opacity: .6; pointer-events: none; }

/* Fiche artiste : portée, palmarès, contacts par rôle ------------------- */

.lb-hero__genre {
	margin: 0 0 0.35rem;
	font-size: var(--step--1);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rain);
}
.lb-hero__epk { margin: 1.1rem 0 0; }
.lb-hero__epk a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--clay-soft);
	font-size: var(--step--1);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-decoration: none;
	border-bottom: 1px solid var(--line-strong);
	padding-bottom: 2px;
}
.lb-hero__epk a:hover { color: var(--light); border-bottom-color: var(--rain); }
.lb-hero__epk svg { width: 16px; height: 16px; }

.lb-audience__layout {
	display: grid;
	gap: clamp(1.6rem, 4vw, 4rem);
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.5fr);
	align-items: start;
}
.lb-audience__intro .lb-section__head {
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	gap: 0.9rem;
	margin-bottom: 0;
}
.lb-audience__intro .lb-section__intro { max-width: 34ch; }

/* Communauté cumulée */
.lb-reach {
	padding: clamp(1.6rem, 3vw, 2.6rem);
	background: linear-gradient(160deg, var(--mud-lift) 0%, var(--mud) 60%, var(--mud-deep) 100%);
	border: 1px solid var(--line);
	border-top: 2px solid var(--rain);
}
.lb-reach__label {
	display: block;
	font-size: var(--step--1);
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--clay);
}
.lb-reach__figure {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
	margin: 0.3rem 0 1.4rem;
	flex-wrap: wrap;
}
.lb-reach__number {
	font-family: var(--serif);
	font-size: clamp(3.4rem, 9vw, 6.4rem);
	line-height: 0.88;
	letter-spacing: -0.01em;
	font-variant-numeric: tabular-nums;
	color: var(--light);
}
.lb-reach__unit {
	font-size: var(--step-1);
	font-weight: 600;
	color: var(--clay-soft);
}

.lb-reach__bar {
	display: flex;
	height: 12px;
	gap: 3px;
	overflow: hidden;
}
.lb-reach__seg {
	width: 0;
	transition: width 1.1s var(--ease);
	transition-delay: 0.12s;
}
.is-live .lb-reach__seg { width: var(--pct); }
.lb-reach__seg--1 { background: var(--rain); }
.lb-reach__seg--2 { background: var(--tape, #d9d2c3); }
.lb-reach__seg--3 { background: var(--laterite); }
.lb-reach__seg--4 { background: var(--clay); }

.lb-reach__legend {
	list-style: none;
	margin: 1.3rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.55rem;
}
.lb-reach__key {
	display: grid;
	grid-template-columns: 12px minmax(0, 1fr) auto auto;
	align-items: baseline;
	gap: 0.7rem;
	padding-bottom: 0.55rem;
	border-bottom: 1px solid var(--line);
	font-size: var(--step-0);
}
.lb-reach__key:last-child { border-bottom: 0; padding-bottom: 0; }
.lb-reach__dot { width: 10px; height: 10px; border-radius: 50%; align-self: center; }
.lb-reach__key--1 .lb-reach__dot { background: var(--rain); }
.lb-reach__key--2 .lb-reach__dot { background: #d9d2c3; }
.lb-reach__key--3 .lb-reach__dot { background: var(--laterite); }
.lb-reach__key--4 .lb-reach__dot { background: var(--clay); }
.lb-reach__name { color: var(--light); }
.lb-reach__count { font-weight: 700; font-variant-numeric: tabular-nums; }
.lb-reach__pct { min-width: 3.4em; text-align: right; color: var(--clay); font-size: var(--step--1); }

/* Repères secondaires */
.lb-marks {
	list-style: none;
	margin: 1px 0 0;
	padding: 0;
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	background: var(--line);
	border: 1px solid var(--line);
	border-top: 0;
}
.lb-mark {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	padding: clamp(1.1rem, 2vw, 1.5rem);
	background: var(--mud);
}
.lb-mark__value {
	font-family: var(--serif);
	font-size: clamp(1.6rem, 2.8vw, 2.3rem);
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: var(--rain-bright);
}
.lb-mark__label {
	font-size: var(--step--1);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--clay);
}
.lb-mark__note { font-size: var(--step--1); color: var(--clay-soft); }

@media (max-width: 900px) {
	.lb-audience__layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
	.lb-reach__key { grid-template-columns: 12px minmax(0, 1fr) auto; }
	.lb-reach__pct { display: none; }
}

.lb-awards__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--line);
}
.lb-award {
	display: grid;
	grid-template-columns: minmax(84px, 130px) minmax(0, 1fr);
	gap: clamp(1rem, 3vw, 2.5rem);
	align-items: baseline;
	padding: clamp(1.1rem, 2.2vw, 1.8rem) 0;
	border-bottom: 1px solid var(--line);
}
.lb-award__year {
	font-family: var(--serif);
	font-size: var(--step-2);
	line-height: 1;
	color: var(--rain);
}
.lb-award__body { display: flex; flex-direction: column; gap: 0.25rem; }
.lb-award__name { font-family: var(--serif); font-size: var(--step-2); line-height: 1.15; }
.lb-award__note { color: var(--clay-soft); font-size: var(--step--1); }

.lb-contacts {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	display: grid;
	gap: 1.1rem;
}
.lb-contacts__item {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 1rem 1.2rem;
	background: var(--mud-lift);
	border-left: 3px solid var(--rain);
}
.lb-contacts__role {
	font-size: var(--step--1);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--clay);
}
.lb-contacts__name { font-family: var(--serif); font-size: var(--step-1); }
.lb-contacts__link {
	font-weight: 600;
	color: var(--rain-bright);
	overflow-wrap: anywhere;
}
.lb-contact__kit { margin-top: 1.6rem; }
.lb-contact__kit a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 600;
	color: var(--light);
	text-decoration: none;
	border-bottom: 1px solid var(--line-strong);
	padding-bottom: 2px;
}
.lb-contact__kit a:hover { color: var(--rain-bright); border-bottom-color: var(--rain); }
.lb-contact__kit svg { width: 16px; height: 16px; }

@media (max-width: 640px) {
	.lb-award { grid-template-columns: 1fr; gap: 0.3rem; }
	.lb-award__year { font-size: var(--step-1); }
}
