/* ==========================================================================
   Les Arts s'en Mêlent — design system (charte 2026)
   Couleurs, typos et composants utilisés par les pages Elementor.
   Les classes "asm-*" sont posées dans Elementor (Avancé > Classes CSS).
   ========================================================================== */

:root {
	--asm-anthracite: #333232;
	--asm-creme: #F4F2E7;
	--asm-jaune: #FFB900;
	--asm-rouge: #ED5C43;
	--asm-rose: #F395D0;
	--asm-vert: #0ED69E;
	--asm-lavande: #A896FE;
	--asm-blanc: #FFFFFF;
	--asm-font-display: "Nate Supe", "Poppins", system-ui, sans-serif;
	--asm-display-weight: 400;
	--asm-font-text: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
	--asm-border: 3px solid var(--asm-anthracite);
	--asm-radius: 22px;
	--asm-shadow-color: var(--asm-anthracite);
	--asm-header-h: 84px;
	--asm-ease: cubic-bezier(.34, 1.56, .64, 1);
}

@media (max-width: 1099px) {
	:root { --asm-header-h: 72px; }
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--asm-header-h) + 20px);
}

/* Branchement sur les réglages globaux Elementor (kit) : changer une couleur ou la
   police des titres dans Elementor > Réglages du site met aussi à jour ces composants. */
body {
	--asm-anthracite: var(--e-global-color-primary, #333232);
	--asm-creme: var(--e-global-color-asmcreme, #F4F2E7);
	--asm-jaune: var(--e-global-color-asmjaune, #FFB900);
	--asm-rouge: var(--e-global-color-asmrouge, #ED5C43);
	--asm-rose: var(--e-global-color-asmrose, #F395D0);
	--asm-vert: var(--e-global-color-asmvert, #0ED69E);
	--asm-lavande: var(--e-global-color-asmlavande, #A896FE);
	--asm-font-display: var(--e-global-typography-primary-font-family, "Nate Supe"), "Poppins", system-ui, sans-serif;
	--asm-display-weight: var(--e-global-typography-primary-font-weight, 400);
	font-synthesis-weight: none;
	--asm-border: 3px solid var(--asm-anthracite);
	background-color: var(--asm-creme);
	color: var(--asm-anthracite);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	text-rendering: optimizeLegibility;
}

html.asm-menu-open,
html.asm-menu-open body { overflow: hidden; }

::selection { background: var(--asm-jaune); color: var(--asm-anthracite); }

a, button, .elementor-button { -webkit-tap-highlight-color: transparent; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--asm-rouge);
	outline-offset: 3px;
	border-radius: 6px;
}

.asm-sr-only,
.asm-sr-only .elementor-heading-title {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* --------------------------------------------------------------------------
   Titres
   -------------------------------------------------------------------------- */
.elementor-heading-title { text-wrap: balance; }

/* Surligneur sous le titre (couleur pilotée par --asm-hl) */
.asm-hl .elementor-heading-title {
	display: inline;
	background-image: linear-gradient(transparent 58%, var(--asm-hl, var(--asm-jaune)) 58%, var(--asm-hl, var(--asm-jaune)) 92%, transparent 92%);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	padding: 0 .08em;
}
.asm-hl--rose { --asm-hl: var(--asm-rose); }
.asm-hl--vert { --asm-hl: var(--asm-vert); }
.asm-hl--lavande { --asm-hl: var(--asm-lavande); }
.asm-hl--rouge { --asm-hl: var(--asm-rouge); }

/* Étiquette / badge façon sticker (couleur via --asm-badge) */
.asm-badge .elementor-heading-title {
	display: inline-block;
	background: var(--asm-badge, var(--asm-lavande));
	color: var(--asm-anthracite);
	padding: .32em .75em .38em;
	border-radius: 8px;
	transform: rotate(-2.5deg);
	box-shadow: 4px 4px 0 var(--asm-anthracite);
	border: 2px solid var(--asm-anthracite);
	line-height: 1.05;
}
.asm-badge--jaune { --asm-badge: var(--asm-jaune); }
.asm-badge--rose { --asm-badge: var(--asm-rose); }
.asm-badge--vert { --asm-badge: var(--asm-vert); }
.asm-badge--rouge { --asm-badge: var(--asm-rouge); }
.asm-badge--creme { --asm-badge: var(--asm-creme); }
.asm-badge--tilt-right .elementor-heading-title { transform: rotate(2deg); }
.asm-badge--flat .elementor-heading-title { box-shadow: none; }

/* Badge des dates, version grand format (héros) */
.asm-datebadge .elementor-heading-title {
	display: inline-block;
	background: var(--asm-lavande);
	color: var(--asm-anthracite);
	padding: .18em .6em .26em;
	border-radius: 6px;
	transform: rotate(-2deg);
	line-height: 1;
	box-shadow: 6px 6px 0 rgba(0, 0, 0, .35);
}

/* --------------------------------------------------------------------------
   Boutons « sticker »
   -------------------------------------------------------------------------- */
.elementor-button {
	transition: transform .18s var(--asm-ease), box-shadow .18s ease, background-color .2s ease, color .2s ease;
	will-change: transform;
}

.asm-btn .elementor-button {
	border: 3px solid var(--asm-anthracite);
	box-shadow: 5px 5px 0 var(--asm-anthracite);
}
.asm-btn .elementor-button:hover,
.asm-btn .elementor-button:focus-visible {
	transform: translate(-2px, -2px) rotate(-1deg);
	box-shadow: 8px 8px 0 var(--asm-anthracite);
}
.asm-btn .elementor-button:active {
	transform: translate(3px, 3px);
	box-shadow: 1px 1px 0 var(--asm-anthracite);
}

/* Variante sur fond sombre */
.asm-btn--light .elementor-button {
	border-color: var(--asm-creme);
	box-shadow: 5px 5px 0 var(--asm-creme);
}
.asm-btn--light .elementor-button:hover,
.asm-btn--light .elementor-button:focus-visible { box-shadow: 8px 8px 0 var(--asm-creme); }
.asm-btn--light .elementor-button:active { box-shadow: 1px 1px 0 var(--asm-creme); }

.asm-btn--ghost .elementor-button { box-shadow: none; }
.asm-btn--ghost .elementor-button:hover { box-shadow: 5px 5px 0 var(--asm-creme); }

.elementor-button .elementor-button-icon svg { width: 1em; height: 1em; }

/* Boutons côte à côte qui passent pleine largeur sur mobile */
@media (max-width: 767px) {
	.asm-btn--block-mobile,
	.asm-btn--block-mobile .elementor-button-wrapper { width: 100%; }
	.asm-btn--block-mobile .elementor-button { width: 100%; justify-content: center; }
}

/* --------------------------------------------------------------------------
   En-tête
   -------------------------------------------------------------------------- */
.asm-header {
	border-bottom: var(--asm-border);
	transition: box-shadow .25s ease, padding .25s ease;
}
.asm-header.elementor-sticky--effects { box-shadow: 0 6px 0 rgba(51, 50, 50, .08); }

.asm-header .elementor-widget-theme-site-logo img,
.asm-header .asm-logo img {
	width: 132px;
	height: auto;
	display: block;
	transition: transform .25s var(--asm-ease);
}
.asm-header .asm-logo a:hover img { transform: rotate(-3deg) scale(1.04); }

@media (max-width: 1099px) {
	.asm-header .elementor-widget-theme-site-logo img,
	.asm-header .asm-logo img { width: 108px; }
}
/* Menu horizontal compact entre 1100 et 1299 px */
@media (min-width: 1100px) and (max-width: 1299px) {
	.asm-nav .elementor-nav-menu--main .elementor-item {
		font-size: 12px !important;
		padding-left: 6px !important;
		padding-right: 6px !important;
		letter-spacing: 0 !important;
	}
	.asm-header .asm-logo,
	.asm-header .asm-logo img { width: 100px !important; }
	.asm-header .asm-header__cta .elementor-button { padding: 10px 14px !important; font-size: 13px !important; }
	.asm-header > .e-con-inner { padding-left: 0; padding-right: 0; }
}

/* Menu horizontal */
.asm-nav .elementor-nav-menu--main .elementor-item {
	position: relative;
}
.asm-nav .elementor-nav-menu--main .elementor-item::after {
	content: "";
	position: absolute;
	left: 12%;
	right: 12%;
	bottom: 4px;
	height: 6px;
	border-radius: 6px;
	background: var(--asm-jaune);
	transform: scaleX(0) rotate(-2deg);
	transform-origin: left center;
	transition: transform .25s var(--asm-ease);
	z-index: -1;
	opacity: 1 !important;
}
.asm-nav .elementor-nav-menu--main .elementor-item:hover::after,
.asm-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after {
	transform: scaleX(1) rotate(-2deg);
}
.asm-nav .elementor-nav-menu--main .asm-menu-billetterie { display: none; }

/* Bouton burger */
.asm-nav .elementor-menu-toggle {
	border: 3px solid var(--asm-anthracite);
	border-radius: 14px;
	background: var(--asm-jaune) !important;
	box-shadow: 3px 3px 0 var(--asm-anthracite);
	padding: 9px;
	transition: transform .18s var(--asm-ease), box-shadow .18s ease;
}
.asm-nav .elementor-menu-toggle:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--asm-anthracite); }
.asm-nav .elementor-menu-toggle svg { width: 26px; height: 26px; fill: var(--asm-anthracite); }

/* Menu mobile plein écran (sous 1100 px : point de rupture « laptop » d'Elementor) */
@media (max-width: 1099px) {
	.asm-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		position: fixed !important;
		top: var(--asm-header-h) !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100vw !important;
		height: calc(100dvh - var(--asm-header-h)) !important;
		max-height: none !important;
		margin: 0 !important;
		overflow-y: auto !important;
		background-color: var(--asm-anthracite) !important;
		background-image: url("img/etoile-jaune.webp"), url("img/boucles-creme.webp");
		background-repeat: no-repeat, no-repeat;
		background-size: 170px auto, 280px auto;
		background-position: right -46px bottom -36px, left -150px bottom -80px;
		padding: 34px 22px 60px !important;
		transform-origin: top center;
		transition: opacity .28s ease, transform .35s var(--asm-ease), visibility .28s !important;
		z-index: 9998;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
	}
	.asm-nav .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
		opacity: 0;
		visibility: hidden;
		transform: translateY(-14px);
		pointer-events: none;
	}
	.asm-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.asm-nav .elementor-nav-menu--dropdown .elementor-nav-menu {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 4px;
		background: transparent;
	}
	.asm-nav .elementor-nav-menu--dropdown .elementor-item {
		font-family: var(--asm-font-display) !important;
		font-weight: var(--asm-display-weight) !important;
		font-size: clamp(25px, 7.2vw, 40px) !important;
		letter-spacing: 0;
		line-height: 1.1 !important;
		text-transform: uppercase;
		color: var(--asm-creme) !important;
		background: transparent !important;
		justify-content: center;
		text-align: center;
		padding: 8px 10px !important;
		border: 0 !important;
		transition: color .2s ease, transform .25s var(--asm-ease);
	}
	.asm-nav .elementor-nav-menu--dropdown li:nth-child(5n+1) .elementor-item:hover,
	.asm-nav .elementor-nav-menu--dropdown li:nth-child(5n+1) .elementor-item.elementor-item-active { color: var(--asm-jaune) !important; }
	.asm-nav .elementor-nav-menu--dropdown li:nth-child(5n+2) .elementor-item:hover,
	.asm-nav .elementor-nav-menu--dropdown li:nth-child(5n+2) .elementor-item.elementor-item-active { color: var(--asm-rose) !important; }
	.asm-nav .elementor-nav-menu--dropdown li:nth-child(5n+3) .elementor-item:hover,
	.asm-nav .elementor-nav-menu--dropdown li:nth-child(5n+3) .elementor-item.elementor-item-active { color: var(--asm-vert) !important; }
	.asm-nav .elementor-nav-menu--dropdown li:nth-child(5n+4) .elementor-item:hover,
	.asm-nav .elementor-nav-menu--dropdown li:nth-child(5n+4) .elementor-item.elementor-item-active { color: var(--asm-lavande) !important; }
	.asm-nav .elementor-nav-menu--dropdown li:nth-child(5n+5) .elementor-item:hover,
	.asm-nav .elementor-nav-menu--dropdown li:nth-child(5n+5) .elementor-item.elementor-item-active { color: var(--asm-rouge) !important; }
	.asm-nav .elementor-nav-menu--dropdown .elementor-item:hover { transform: rotate(-2deg) scale(1.04); }

	.asm-nav .elementor-nav-menu--dropdown .asm-menu-billetterie { margin-top: 18px; }
	.asm-nav .elementor-nav-menu--dropdown .asm-menu-billetterie .elementor-item {
		background: var(--asm-jaune) !important;
		color: var(--asm-anthracite) !important;
		border: 3px solid var(--asm-creme) !important;
		border-radius: 999px;
		padding: 10px 34px !important;
		box-shadow: 5px 5px 0 var(--asm-creme);
		font-size: clamp(26px, 7vw, 38px) !important;
	}
}

/* --------------------------------------------------------------------------
   Grilles (conteneurs Elementor « pleine largeur » portant la classe)
   -------------------------------------------------------------------------- */
.e-con.asm-grid {
	display: grid !important;
	gap: 28px;
	align-items: stretch;
}
.e-con.asm-grid > .e-con,
.e-con.asm-grid > .elementor-element { width: auto !important; min-width: 0; max-width: none; }
.e-con.asm-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.e-con.asm-grid-2s { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.e-con.asm-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.e-con.asm-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) {
	.e-con.asm-grid-3,
	.e-con.asm-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
}
@media (max-width: 767px) {
	.e-con.asm-grid { gap: 18px; }
	.e-con.asm-grid-2,
	.e-con.asm-grid-3 { grid-template-columns: minmax(0, 1fr); }
	.e-con.asm-grid-2s,
	.e-con.asm-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.e-con.asm-grid-4.asm-grid--1m { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
   Héros d'accueil
   -------------------------------------------------------------------------- */
.asm-hero {
	min-height: calc(100svh - var(--asm-header-h));
	isolation: isolate;
}
.asm-hero > .elementor-background-video-container,
.asm-hero > .elementor-background-overlay { z-index: -1; }

.asm-hero .asm-hero__logo img {
	width: min(640px, 86vw);
	height: auto;
	filter: drop-shadow(6px 6px 0 rgba(0, 0, 0, .35));
}
.asm-hero__content { position: relative; z-index: 3; }

@media (max-width: 767px) {
	.asm-hero { min-height: calc(100svh - var(--asm-header-h) - 40px); }
}

/* --------------------------------------------------------------------------
   Décors « bric-à-brac »
   -------------------------------------------------------------------------- */
.asm-deco { pointer-events: none; user-select: none; }
.asm-deco img { display: block; width: 100%; height: auto; }
.asm-float { animation: asm-float 7s ease-in-out infinite; }
.asm-float--slow { animation-duration: 11s; }
.asm-float--delay { animation-delay: -3s; }
.asm-spin .elementor-widget-container,
.asm-spin > img,
.asm-spin img { animation: asm-spin 38s linear infinite; }
.asm-spin--rev img { animation-direction: reverse; }
.asm-wiggle img { animation: asm-wiggle 4.5s ease-in-out infinite; transform-origin: 50% 80%; }

@keyframes asm-float {
	0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
	50% { transform: translate3d(0, -16px, 0) rotate(5deg); }
}
@keyframes asm-spin { to { transform: rotate(360deg); } }
@keyframes asm-wiggle {
	0%, 100% { transform: rotate(-4deg); }
	50% { transform: rotate(5deg); }
}

/* --------------------------------------------------------------------------
   Bandeau défilant
   -------------------------------------------------------------------------- */
.asm-marquee-wrap { position: relative; z-index: 6; }
.asm-marquee {
	--asm-mq-bg: var(--asm-jaune);
	--asm-mq-fg: var(--asm-anthracite);
	overflow: hidden;
	background: var(--asm-mq-bg);
	color: var(--asm-mq-fg);
	border-block: var(--asm-border);
	transform: rotate(-2deg);
	margin: 0 -40px;
	box-shadow: 0 8px 0 rgba(51, 50, 50, .15);
}
.asm-marquee--rose { --asm-mq-bg: var(--asm-rose); }
.asm-marquee--vert { --asm-mq-bg: var(--asm-vert); }
.asm-marquee--lavande { --asm-mq-bg: var(--asm-lavande); }
.asm-marquee--anthracite { --asm-mq-bg: var(--asm-anthracite); --asm-mq-fg: var(--asm-creme); border-color: var(--asm-creme); }
.asm-marquee--reverse .asm-marquee__track { animation-direction: reverse; }
.asm-marquee--flat { transform: none; margin: 0; }
.asm-marquee__track {
	display: flex;
	width: max-content;
	animation: asm-marquee 32s linear infinite;
}
.asm-marquee:hover .asm-marquee__track { animation-play-state: paused; }
.asm-marquee__track > span {
	display: inline-flex;
	align-items: center;
	gap: .55em;
	padding: .34em .55em .4em 0;
	white-space: nowrap;
	font-family: var(--asm-font-display);
	font-weight: var(--asm-display-weight);
	font-size: clamp(24px, 3.2vw, 44px);
	letter-spacing: 0;
	line-height: 1;
	text-transform: uppercase;
}
.asm-marquee__track i {
	font-style: normal;
	display: inline-block;
	color: var(--asm-mq-star, var(--asm-rouge));
	transform: translateY(-.04em);
}
@keyframes asm-marquee { to { transform: translate3d(-50%, 0, 0); } }

/* --------------------------------------------------------------------------
   Héros des pages intérieures
   -------------------------------------------------------------------------- */
.asm-pagehero { isolation: isolate; }
.asm-pagehero .asm-pagehero__title .elementor-heading-title { text-wrap: balance; }
.asm-pagehero .elementor-shape { z-index: 2; }
/* Le texte garde sa colonne à gauche, les motifs vivent dans la zone de droite (hero_decos) :
   ils ne passent jamais sur le texte, quelle que soit la largeur d'écran. */
.asm-pagehero .asm-pagehero__content > .elementor-widget { max-width: 100%; }
@media (min-width: 1025px) {
	.asm-pagehero .asm-pagehero__content { max-width: 58% !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.asm-pagehero .asm-pagehero__content { max-width: 72% !important; }
}
/* Titres de page et noms d'artistes : un mot long (« PROGRAMMATION », « ENSEMBLE !!! ») ne se coupe pas ;
   la taille suit la largeur d'écran pour qu'il tienne dans sa colonne, sans déborder vers les motifs. */
@media (min-width: 1025px) {
	.asm-pagehero .asm-pagehero__title .elementor-heading-title { font-size: min(96px, 6.6vw) !important; }
	.asm-artist h1.elementor-heading-title { font-size: min(96px, 8.4vw) !important; }
}

/* --------------------------------------------------------------------------
   Cartes génériques / tuiles
   -------------------------------------------------------------------------- */
.asm-tile {
	--asm-tile-shadow: var(--asm-anthracite);
	border: var(--asm-border);
	border-radius: var(--asm-radius);
	box-shadow: 7px 7px 0 var(--asm-tile-shadow);
	transition: transform .25s var(--asm-ease), box-shadow .25s ease;
}
a.asm-tile:hover,
.asm-tile--hover:hover {
	transform: translate(-3px, -3px) rotate(-1deg);
	box-shadow: 11px 11px 0 var(--asm-tile-shadow);
}
.asm-tile--tilt-l { transform: rotate(-1.5deg); }
.asm-tile--tilt-r { transform: rotate(1.5deg); }
a.asm-tile--tilt-l:hover, a.asm-tile--tilt-r:hover { transform: translate(-3px, -3px) rotate(0deg); }
.asm-tile .asm-tile__arrow .elementor-heading-title { transition: transform .25s var(--asm-ease); display: inline-block; }
a.asm-tile:hover .asm-tile__arrow .elementor-heading-title { transform: translateX(6px) rotate(-8deg); }

@media (max-width: 767px) {
	.asm-tile { box-shadow: 5px 5px 0 var(--asm-tile-shadow); }
	.asm-tile--tilt-l, .asm-tile--tilt-r { transform: none; }
}

/* Chiffres clés */
.asm-stat .asm-stat__num .elementor-heading-title,
.asm-stat .elementor-counter-number-wrapper {
	font-family: var(--asm-font-display);
	font-weight: var(--asm-display-weight);
	line-height: .95;
}

/* Photo cadrée façon sticker */
.asm-photo img,
.asm-photo .elementor-video,
.asm-photo .elementor-wrapper {
	border: var(--asm-border);
	border-radius: var(--asm-radius);
	box-shadow: 9px 9px 0 var(--asm-photo-shadow, var(--asm-jaune));
}
.asm-photo--rose { --asm-photo-shadow: var(--asm-rose); }
.asm-photo--vert { --asm-photo-shadow: var(--asm-vert); }
.asm-photo--lavande { --asm-photo-shadow: var(--asm-lavande); }
.asm-photo--rouge { --asm-photo-shadow: var(--asm-rouge); }
.asm-photo--tilt img { transform: rotate(-2deg); }
.asm-photo--tilt-r img { transform: rotate(2deg); }
.asm-photo .elementor-wrapper { overflow: hidden; }
@media (max-width: 767px) {
	.asm-photo img,
	.asm-photo .elementor-wrapper { box-shadow: 6px 6px 0 var(--asm-photo-shadow, var(--asm-jaune)); }
}

/* Vidéo encadrée */
.asm-video .elementor-wrapper,
.asm-video .elementor-custom-embed-image-overlay {
	border-radius: calc(var(--asm-radius) - 3px);
}
.asm-video .elementor-custom-embed-play svg,
.asm-video .elementor-custom-embed-play i { filter: drop-shadow(4px 4px 0 rgba(0, 0, 0, .45)); }
.asm-video .elementor-custom-embed-play { transition: transform .25s var(--asm-ease); }
.asm-video .elementor-custom-embed-image-overlay:hover .elementor-custom-embed-play { transform: translate(-50%, -50%) scale(1.12) rotate(-6deg); }
/* Vignette avec le logo au centre : bouton lecture descendu pour ne pas le masquer */
.asm-video--play-bas .elementor-custom-embed-play { top: 78%; }
@media (max-width: 767px) {
	.asm-video--play-bas .elementor-custom-embed-play { top: 81%; }
}

/* --------------------------------------------------------------------------
   Programmation : cartes artistes (modèle de boucle « Carte artiste »)
   -------------------------------------------------------------------------- */
.asm-cards .e-loop-item { --asm-c: var(--asm-jaune); }
.asm-cards .e-loop-item:nth-child(5n+2) { --asm-c: var(--asm-rose); }
.asm-cards .e-loop-item:nth-child(5n+3) { --asm-c: var(--asm-vert); }
.asm-cards .e-loop-item:nth-child(5n+4) { --asm-c: var(--asm-lavande); }
.asm-cards .e-loop-item:nth-child(5n+5) { --asm-c: var(--asm-rouge); }

.asm-card {
	border: var(--asm-border);
	border-radius: var(--asm-radius);
	overflow: hidden;
	background: var(--asm-creme);
	box-shadow: 7px 7px 0 var(--asm-c, var(--asm-jaune));
	transition: transform .28s var(--asm-ease), box-shadow .28s ease;
	color: var(--asm-anthracite);
	text-decoration: none;
	height: 100%;
}
.asm-card:hover,
.asm-card:focus-visible {
	transform: translate(-3px, -4px) rotate(-1.2deg);
	box-shadow: 11px 12px 0 var(--asm-c, var(--asm-jaune));
}
.asm-cards .e-loop-item:nth-child(even) .asm-card:hover { transform: translate(-3px, -4px) rotate(1.2deg); }

.asm-card__img { overflow: hidden; border-bottom: var(--asm-border); }
.asm-card__img img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 25%;
	transition: transform .5s ease, filter .3s ease;
	filter: saturate(1.05);
}
.asm-card:hover .asm-card__img img { transform: scale(1.06); }

.asm-card__body { background: var(--asm-creme); position: relative; }
.asm-card__date .elementor-heading-title {
	display: inline-block;
	background: var(--asm-c, var(--asm-jaune));
	border: 2px solid var(--asm-anthracite);
	border-radius: 7px;
	padding: .2em .55em .25em;
	transform: rotate(-3deg);
}
.asm-card__name .elementor-heading-title { overflow-wrap: anywhere; }
.asm-card__style:empty { display: none; }

@media (max-width: 767px) {
	.asm-card { box-shadow: 5px 5px 0 var(--asm-c, var(--asm-jaune)); border-width: 2px; }
	.asm-card__img { border-bottom-width: 2px; }
}

/* Mur de noms (modèle de boucle « Nom artiste ») */
.asm-names .elementor-loop-container,
.asm-names .e-loop-container {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: .15em .1em;
	grid-template-columns: none !important;
}
.asm-names .e-loop-item {
	--asm-c: var(--asm-jaune);
	width: auto !important;
	display: inline-flex;
	align-items: center;
}
.asm-names .e-loop-item:nth-child(5n+2) { --asm-c: var(--asm-rose); }
.asm-names .e-loop-item:nth-child(5n+3) { --asm-c: var(--asm-vert); }
.asm-names .e-loop-item:nth-child(5n+4) { --asm-c: var(--asm-lavande); }
.asm-names .e-loop-item:nth-child(5n+5) { --asm-c: var(--asm-rouge); }
.asm-names .e-loop-item:not(:last-child)::after {
	content: "✺";
	font-family: var(--asm-font-display);
	color: var(--asm-names-sep, var(--asm-creme));
	font-size: clamp(18px, 2.6vw, 34px);
	margin: 0 .35em;
	opacity: .8;
}
.asm-name .elementor-heading-title,
.asm-name .elementor-heading-title a {
	color: var(--asm-c) !important;
	transition: transform .25s var(--asm-ease), color .2s ease;
	display: inline-block;
	text-align: center; /* un nom long sur deux lignes reste centré */
}
.asm-name .elementor-heading-title a:hover { transform: rotate(-3deg) scale(1.06); }
.asm-names--dark .e-loop-item { --asm-c: var(--asm-anthracite); }
.asm-names--dark { --asm-names-sep: var(--asm-rouge); }

/* Mur de noms statique (texte) */
.asm-wall p { margin: 0; text-align: center; line-height: 1.12; text-wrap: balance; }
.asm-wall span {
	font-family: var(--asm-font-display);
	font-weight: var(--asm-display-weight);
	letter-spacing: 0;
	text-transform: uppercase;
	display: inline-block;
	margin: 0 .12em;
}
.asm-wall span:nth-of-type(5n+1) { color: var(--asm-jaune); }
.asm-wall span:nth-of-type(5n+2) { color: var(--asm-rose); }
.asm-wall span:nth-of-type(5n+3) { color: var(--asm-vert); }
.asm-wall span:nth-of-type(5n+4) { color: var(--asm-lavande); }
.asm-wall span:nth-of-type(5n+5) { color: var(--asm-rouge); }
.asm-wall b { color: var(--asm-creme); font-weight: 400; opacity: .55; font-family: var(--asm-font-display); }

/* Anciens artistes (photos) */
.asm-past .elementor-widget-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
	border: var(--asm-border);
	border-radius: 18px;
	filter: grayscale(1) contrast(1.05);
	transition: filter .35s ease, transform .35s var(--asm-ease);
}
.asm-past .e-con:hover .elementor-widget-image img { filter: grayscale(0); transform: rotate(-2deg) scale(1.02); }

/* --------------------------------------------------------------------------
   Fiche artiste
   -------------------------------------------------------------------------- */
.asm-artist__photo img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 25%;
	border: 3px solid var(--asm-creme);
	border-radius: var(--asm-radius);
	box-shadow: 12px 12px 0 var(--asm-jaune);
	transform: rotate(-2deg);
}
.asm-artist__bio p { margin-bottom: 1em; }
.asm-artist__bio a { color: var(--asm-jaune); text-decoration: underline; text-underline-offset: 3px; transition: color .2s ease; }
/* Le kit Elementor passe les liens en anthracite au survol : invisible sur le fond sombre de la bio */
.asm-artist__bio a:hover,
.asm-artist__bio a:focus-visible { color: var(--asm-rose); }
.asm-spotify {
	border-radius: 16px;
	overflow: hidden;
	border: 3px solid var(--asm-creme);
	box-shadow: 7px 7px 0 var(--asm-vert);
	line-height: 0;
}
.asm-spotify iframe { display: block; border: 0; }
.asm-spotify--light { border-color: var(--asm-anthracite); }

/* --------------------------------------------------------------------------
   Frise chronologique
   -------------------------------------------------------------------------- */
.asm-timeline { position: relative; }
.asm-timeline::before {
	content: "";
	position: absolute;
	top: 10px;
	bottom: 10px;
	left: 50%;
	width: 6px;
	margin-left: -3px;
	border-radius: 6px;
	background: repeating-linear-gradient(to bottom, var(--asm-anthracite) 0 14px, transparent 14px 26px);
}
.asm-tl-item { position: relative; }
.asm-tl-item::before {
	content: "";
	position: absolute;
	top: 30px;
	left: 50%;
	width: 28px;
	height: 28px;
	margin-left: -14px;
	border-radius: 50%;
	background: var(--asm-tl-c, var(--asm-jaune));
	border: 3px solid var(--asm-anthracite);
	box-shadow: 0 0 0 6px var(--asm-creme);
	z-index: 2;
}
.asm-tl-item:nth-child(5n+2) { --asm-tl-c: var(--asm-rose); }
.asm-tl-item:nth-child(5n+3) { --asm-tl-c: var(--asm-vert); }
.asm-tl-item:nth-child(5n+4) { --asm-tl-c: var(--asm-lavande); }
.asm-tl-item:nth-child(5n+5) { --asm-tl-c: var(--asm-rouge); }
.asm-tl-card { --asm-tile-shadow: var(--asm-tl-c, var(--asm-jaune)); background: #fff; }
.asm-tl-card .elementor-widget-image img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 14px;
	border: 2px solid var(--asm-anthracite);
}
.asm-tl-card .asm-tl-date .elementor-heading-title {
	display: inline-block;
	background: var(--asm-tl-c, var(--asm-jaune));
	border: 2px solid var(--asm-anthracite);
	border-radius: 7px;
	padding: .18em .55em .22em;
	transform: rotate(-2deg);
}
@media (max-width: 1024px) {
	.asm-timeline::before { left: 16px; }
	.asm-tl-item { padding-left: 48px !important; }
	.asm-tl-item::before { left: 16px; top: 24px; width: 24px; height: 24px; margin-left: -12px; }
}

/* --------------------------------------------------------------------------
   Listes, FAQ, encadrés
   -------------------------------------------------------------------------- */
.asm-list ul { list-style: none; padding: 0; margin: 0; }
.asm-list li {
	position: relative;
	padding: .55em 0 .55em 2.1em;
	border-bottom: 2px dashed rgba(51, 50, 50, .2);
}
.asm-list li:last-child { border-bottom: 0; }
.asm-list li::before {
	content: "✺";
	position: absolute;
	left: .1em;
	top: .38em;
	font-family: var(--asm-font-display);
	font-size: 1.2em;
	color: var(--asm-list-c, var(--asm-rouge));
}
.asm-list--emoji li { padding-left: 2.4em; }
.asm-list--emoji li::before { content: none; }
.asm-list--emoji li .asm-emo {
	position: absolute;
	left: 0;
	top: .45em;
	font-size: 1.25em;
	line-height: 1;
}

.asm-faq .e-n-accordion-item {
	border: var(--asm-border);
	border-radius: 18px;
	background: #fff;
	overflow: hidden;
	box-shadow: 5px 5px 0 var(--asm-anthracite);
	transition: box-shadow .2s ease, transform .2s var(--asm-ease);
}
.asm-faq .e-n-accordion-item[open] { box-shadow: 7px 7px 0 var(--asm-rose); }
.asm-faq .e-n-accordion-item-title { background: transparent !important; border: 0 !important; }
.asm-faq .e-n-accordion-item-title-text { line-height: 1.3; }
.asm-faq .e-n-accordion-item > [role="region"],
.asm-faq .e-n-accordion-item > .e-con { border: 0 !important; background: transparent !important; }

/* Encart d'annonce (Programmation « D'autres artistes… », Cashless « Vous avez des questions ? »).
   Fond plein + ombre portée façon sticker : l'ancien contour en pointillés faisait penser
   à une zone de dépôt de fichier. Le fond blanc saisi dans Elementor (build_site.py) est remplacé ici. */
.asm-note.e-con {
	border: var(--asm-border);
	border-radius: var(--asm-radius);
	background-color: var(--asm-lavande) !important;
	box-shadow: 8px 8px 0 var(--asm-anthracite);
}
@media (max-width: 767px) {
	.asm-note.e-con { box-shadow: 5px 5px 0 var(--asm-anthracite); }
}

/* --------------------------------------------------------------------------
   Logos partenaires
   Les fichiers sont préparés au format des cartes (*-carte.png, 480 × 320) : logo recadré,
   centré, à taille visuelle équilibrée. Ils remplissent donc toute la carte.
   La carte garde toujours son format 3:2 : l'image y est posée en absolu et ne peut pas
   l'agrandir (Safari étirait certaines cartes quand l'image comptait dans leur hauteur).
   -------------------------------------------------------------------------- */
.asm-logos > .e-con-inner,
.asm-logos.e-con-full {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 16px;
}
.asm-logos .elementor-widget-image {
	position: relative;
	background: #fff;
	border: 2px solid var(--asm-anthracite);
	border-radius: 16px;
	padding: 0;
	aspect-ratio: 3 / 2;
	width: 100%;
	height: auto;
	min-height: 0;
	overflow: hidden;
	transition: transform .25s var(--asm-ease), box-shadow .25s ease;
}
.asm-logos .elementor-widget-image:hover { transform: rotate(-2deg) translateY(-3px); box-shadow: 5px 5px 0 var(--asm-jaune); }
.asm-logos .elementor-widget-image > :is(a, .elementor-widget-container),
.asm-logos .elementor-widget-image .elementor-widget-container > a { position: absolute; inset: 0; display: block; }
.asm-logos .elementor-widget-image img {
	position: absolute;
	inset: 6px;
	width: calc(100% - 12px);
	height: calc(100% - 12px);
	max-width: none;
	max-height: none;
	object-fit: contain;
}
@media (max-width: 767px) {
	.asm-logos > .e-con-inner,
	.asm-logos.e-con-full { grid-template-columns: repeat(3, 1fr); gap: 10px; }
	.asm-logos .elementor-widget-image { border-radius: 12px; }
	.asm-logos .elementor-widget-image img { inset: 3px; width: calc(100% - 6px); height: calc(100% - 6px); }
}

/* Soutiens institutionnels (pied de page) */
.asm-supports .elementor-widget-image {
	background: #fff;
	border-radius: 14px;
	padding: 8px 12px;
	height: 72px;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* Le logo tient toujours dans sa carte, même étroite (logos très larges : Europe 2, Ouest-France…) */
.asm-supports .elementor-widget-image > a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-width: 0;
}
.asm-supports .elementor-widget-image img {
	width: auto;
	height: auto;
	min-width: 0;
	max-width: 100%;
	max-height: 56px;
	object-fit: contain;
}
@media (max-width: 767px) {
	.asm-supports .elementor-widget-image { height: 60px; padding: 6px 8px; }
	.asm-supports .elementor-widget-image img { max-height: 44px; }
}

/* --------------------------------------------------------------------------
   Formulaires
   -------------------------------------------------------------------------- */
.asm-form .elementor-field-group .elementor-field-textual,
.asm-form .elementor-field-group select {
	border: 2px solid var(--asm-anthracite) !important;
	border-radius: 14px !important;
	background: #fff !important;
	min-height: 52px;
	transition: box-shadow .2s ease;
}
.asm-form .elementor-field-group .elementor-field-textual:focus,
.asm-form .elementor-field-group select:focus { box-shadow: 4px 4px 0 var(--asm-jaune); outline: none; }
.asm-form .elementor-field-type-acceptance label { font-size: 13px; line-height: 1.5; }
.asm-form .elementor-button[type="submit"] {
	border: 3px solid var(--asm-anthracite);
	box-shadow: 5px 5px 0 var(--asm-anthracite);
}
.asm-form .elementor-button[type="submit"]:hover { transform: translate(-2px, -2px); box-shadow: 8px 8px 0 var(--asm-anthracite); }

/* Widgets Weezevent */
.asm-weez {
	background: #fff;
	border: var(--asm-border);
	border-radius: var(--asm-radius);
	box-shadow: 9px 9px 0 var(--asm-jaune);
	overflow: hidden;
}
.asm-weez .weezevent-widget-integration { display: block; padding: 20px; text-align: center; font-weight: 700; color: var(--asm-anthracite); }
.asm-weez iframe { display: block; width: 100% !important; border: 0; }

/* --------------------------------------------------------------------------
   Pied de page
   -------------------------------------------------------------------------- */
.asm-footer a { transition: color .2s ease; }
.asm-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--asm-jaune) !important; }
.asm-footer .asm-footer__logo img { width: 230px; max-width: 70vw; height: auto; }
.asm-footer .elementor-social-icon { border: 2px solid var(--asm-creme); transition: transform .25s var(--asm-ease), background-color .2s ease; }
.asm-footer .elementor-social-icon:hover { transform: rotate(-8deg) scale(1.08); }
/* Filet au-dessus des mentions : plein, jamais en pointillés */
.asm-footer > .e-con-inner > .e-con:last-child { border-top-style: solid !important; }

/* Pied de page sur téléphone : plus compact, liens sur deux colonnes */
@media (max-width: 767px) {
	.asm-footer-cta.e-con { --padding-top: 54px !important; --padding-bottom: 58px !important; }
	.asm-footer.e-con { --padding-top: 46px !important; --padding-bottom: 22px !important; --gap: 30px 30px !important; --row-gap: 30px !important; }

	.asm-footer > .e-con-inner > .e-con:not(:last-child) {
		display: grid !important;
		grid-template-columns: minmax(0, auto) minmax(0, 1fr);
		gap: 30px clamp(16px, 5vw, 40px);
	}
	.asm-footer > .e-con-inner > .e-con:not(:last-child) > .e-con { width: 100% !important; max-width: none; min-width: 0; }
	.asm-footer > .e-con-inner > .e-con:not(:last-child) > .e-con:first-child,
	.asm-footer > .e-con-inner > .e-con:not(:last-child) > .e-con:last-child { grid-column: 1 / -1; }

	/* Bloc logo */
	.asm-footer > .e-con-inner > .e-con:not(:last-child) > .e-con:first-child { --gap: 14px 14px !important; --row-gap: 14px !important; }
	.asm-footer .asm-footer__logo img { width: 176px; }
	.asm-footer > .e-con-inner > .e-con:not(:last-child) > .e-con:first-child .elementor-widget-text-editor,
	.asm-footer > .e-con-inner > .e-con:not(:last-child) > .e-con:first-child .elementor-widget-text-editor p { font-size: 15px; line-height: 1.55; margin-bottom: 0; }

	/* Colonnes de liens : zones de toucher confortables */
	.asm-footer > .e-con-inner > .e-con:not(:last-child) > .e-con { --gap: 8px 8px !important; --row-gap: 8px !important; }
	.asm-footer .elementor-icon-list--layout-traditional .elementor-icon-list-item { padding: 0 !important; margin: 0 !important; }
	.asm-footer .elementor-icon-list--layout-traditional .elementor-icon-list-item > a { padding: 7px 0; }
	.asm-footer .elementor-icon-list--layout-traditional .elementor-icon-list-text { font-size: clamp(14px, 4vw, 15px); line-height: 1.35; }
	.asm-footer > .e-con-inner > .e-con:not(:last-child) > .e-con:last-child { --gap: 14px 14px !important; --row-gap: 14px !important; }

	/* Mentions */
	.asm-footer > .e-con-inner > .e-con:last-child { --padding-top: 18px !important; --gap: 6px 6px !important; --row-gap: 6px !important; }
	.asm-footer > .e-con-inner > .e-con:last-child .elementor-widget-text-editor p { margin-bottom: 0; font-size: 13px; opacity: .72; }
	.asm-footer > .e-con-inner > .e-con:last-child .elementor-widget-icon-list { order: -1; margin-bottom: 6px; }
	.asm-footer .elementor-icon-list-items.elementor-inline-items { margin: 0 !important; gap: 0 20px; justify-content: flex-start; }
	.asm-footer .elementor-inline-items .elementor-icon-list-item { margin: 0 !important; }
	.asm-footer .elementor-inline-items .elementor-icon-list-item::after { display: none; }
	.asm-footer .elementor-inline-items .elementor-icon-list-item > a { padding: 6px 0; }
}

/* --------------------------------------------------------------------------
   Pages légales et pages sans Elementor (gabarit Hello)
   -------------------------------------------------------------------------- */
body:not(.elementor-page) .site-main,
body.page:not(.elementor-page) main#content {
	max-width: 920px;
	margin: 0 auto;
	padding: 70px 22px 100px;
}
body:not(.elementor-page) .page-header .entry-title {
	font-family: var(--asm-font-display);
	font-weight: var(--asm-display-weight);
	letter-spacing: 0;
	font-size: clamp(36px, 7vw, 72px);
	line-height: 1;
	text-transform: uppercase;
	margin-bottom: .6em;
	color: var(--asm-anthracite);
}
body:not(.elementor-page) .page-content h2,
body:not(.elementor-page) .page-content h3,
body:not(.elementor-page) .page-content h4 {
	font-family: var(--asm-font-display);
	font-weight: var(--asm-display-weight);
	margin-top: 1.6em;
	line-height: 1.15;
}
body:not(.elementor-page) .page-content a { color: var(--asm-rouge); text-decoration: underline; text-underline-offset: 3px; }
/* Pages légales : titres de section lisibles, ni minuscules (h4 du kit) ni géants (h2 du kit) */
body:not(.elementor-page) .page-content h2 {
	font-size: clamp(24px, 3vw, 34px);
	margin-bottom: .5em;
}

/* --------------------------------------------------------------------------
   Accessibilité : mouvement réduit
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	.asm-marquee__track { animation: none !important; }
	.asm-hero .elementor-background-video-container { display: none; }
}

/* En-tête : le groupe menu + bouton s'ajuste à son contenu */
.asm-header .asm-header__right {
	width: auto !important;
	flex: 1 1 auto !important;
	min-width: 0;
}
.asm-header .asm-header__right > .elementor-widget { flex: 0 0 auto; width: auto; }

/* Le bandeau incliné déborde volontairement : on le recadre horizontalement sans couper l'inclinaison */
.asm-marquee-holder,
.e-con:has(> .asm-marquee-wrap) { overflow-x: clip !important; overflow-y: visible !important; }
.asm-marquee-wrap { overflow-x: clip; overflow-y: visible; }


/* Cartes artistes : la dernière ligne est centrée, façon affiche */
.asm-cards .elementor-loop-container,
.asm-cards .e-loop-container {
	--asm-cols: 3;
	--asm-gap-c: 28px;
	--asm-gap-r: 34px;
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--asm-gap-r) var(--asm-gap-c) !important;
	grid-template-columns: none !important;
}
.asm-cards .e-loop-item {
	width: calc((100% - (var(--asm-cols) - 1) * var(--asm-gap-c)) / var(--asm-cols)) !important;
	max-width: none;
}
@media (max-width: 1024px) {
	.asm-cards .elementor-loop-container,
	.asm-cards .e-loop-container { --asm-cols: 2; --asm-gap-c: 20px; --asm-gap-r: 24px; }
}
@media (max-width: 767px) {
	.asm-cards .elementor-loop-container,
	.asm-cards .e-loop-container { --asm-cols: 2; --asm-gap-c: 14px; --asm-gap-r: 18px; }
}

/* Mur de noms sur fond clair : noms anthracite, couleur au survol */
.asm-names--dark .e-loop-item:nth-child(n) { --asm-c: var(--asm-anthracite); }
.asm-names--dark .asm-name .elementor-heading-title a:hover { color: var(--asm-rouge) !important; }

/* Soutiens du pied de page : grille régulière */
.e-con.asm-supports {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}
.e-con.asm-supports > .elementor-widget-image { width: 100% !important; }
@media (max-width: 767px) {
	.e-con.asm-supports { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Frise : les cartes s'emboîtent en quinconce sur grand écran */
@media (min-width: 1025px) {
	.asm-timeline > .asm-tl-item:nth-child(n+2),
	.asm-timeline > .e-con-inner > .asm-tl-item:nth-child(n+2) { margin-top: -170px; }
}

/* Affiche « premiers noms » : peu de noms, donc très grands */
.asm-names--xl .asm-name .elementor-heading-title { font-size: clamp(40px, 8.4vw, 118px) !important; line-height: 1.02 !important; }
.asm-names--xl .e-loop-item:not(:last-child)::after { font-size: clamp(26px, 4vw, 56px); margin: 0 .3em; }

/* Crédit photo sous la photo d'artiste */
.asm-artist__credit .elementor-heading-title { font-size: 12px !important; opacity: .65; letter-spacing: .02em; }
.asm-artist__credit .elementor-heading-title:empty,
.asm-artist__credit:has(.elementor-heading-title:empty) { display: none; }

/* Fiche d'un artiste d'une édition passée (classe ajoutée par le plugin ASM Festival) */
.asm-artiste--archive .asm-artist__ticket { display: none !important; }

/* --------------------------------------------------------------------------
   Barre de navigation mobile (bas d'écran, téléphones uniquement)
   Conteneur « asm-tabbar » de l'en-tête Elementor : liste d'icônes modifiable
   dans Elementor (libellés, icônes, liens). L'onglet « Billets » est repéré
   par son lien vers /billetterie, l'onglet menu par son lien « #menu ».
   -------------------------------------------------------------------------- */
:root { --asm-tabbar-h: 0px; }

@media (max-width: 767px) {
	:root { --asm-tabbar-h: 66px; }

	.asm-tabbar.e-con {
		position: fixed !important;
		top: auto !important;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 10000;
		height: calc(var(--asm-tabbar-h) + env(safe-area-inset-bottom, 0px));
		padding: 0 4px calc(6px + env(safe-area-inset-bottom, 0px)) !important;
		background: var(--asm-creme);
		border-top: var(--asm-border);
		box-shadow: 0 -6px 0 rgba(51, 50, 50, .08);
	}
	.asm-tabbar .elementor-widget-icon-list,
	.asm-tabbar .elementor-widget-container { height: 100%; width: 100%; }
	.asm-tabbar .elementor-icon-list-items {
		display: grid !important;
		grid-auto-flow: column;
		grid-auto-columns: minmax(0, 1fr);
		height: 100%;
		margin: 0 !important;
		padding: 0;
	}
	.asm-tabbar .elementor-icon-list-item {
		margin: 0 !important;
		padding: 0 !important;
		min-width: 0;
		justify-content: center;
	}
	.asm-tabbar .elementor-icon-list-item::after { display: none !important; }
	.asm-tabbar .elementor-icon-list-item > a {
		display: flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 4px;
		width: 100%;
		height: 100%;
		color: var(--asm-anthracite);
		text-decoration: none;
		-webkit-tap-highlight-color: transparent;
	}
	.asm-tabbar .elementor-icon-list-icon {
		position: relative;
		top: 0 !important;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 30px;
		margin: 0 !important;
		padding: 0 !important;
		border-radius: 12px;
		transition: background-color .2s ease, transform .25s var(--asm-ease), box-shadow .2s ease;
	}
	.asm-tabbar .elementor-icon-list-icon svg {
		width: 22px !important;
		height: 22px !important;
		fill: var(--asm-anthracite) !important;
	}
	.asm-tabbar .elementor-icon-list-icon i { font-size: 21px; color: var(--asm-anthracite) !important; }
	.asm-tabbar .elementor-icon-list-text {
		align-self: center;
		padding: 0 !important;
		font-size: 10px !important;
		line-height: 1 !important;
		letter-spacing: .05em !important;
		white-space: nowrap;
		color: var(--asm-anthracite) !important;
	}

	/* Onglet de la page en cours : pastille jaune, comme le soulignement du menu desktop */
	.asm-tabbar .is-active .elementor-icon-list-icon { background: var(--asm-jaune); transform: rotate(-3deg); }

	/* Billets : gros bouton jaune central qui dépasse de la barre */
	.asm-tabbar a[href*="/billetterie"] .elementor-icon-list-icon {
		width: 58px;
		height: 58px;
		margin-top: -28px !important; /* 58 - 28 = 30 px dans la barre, comme les autres pictos : libellés alignés */
		border-radius: 50%;
		background: var(--asm-jaune);
		border: var(--asm-border);
		box-shadow: 3px 3px 0 var(--asm-anthracite);
		transform: rotate(-8deg);
	}
	.asm-tabbar a[href*="/billetterie"] .elementor-icon-list-icon svg { width: 26px !important; height: 26px !important; }
	.asm-tabbar a[href*="/billetterie"] .elementor-icon-list-icon i { font-size: 25px; }
	.asm-tabbar a[href*="/billetterie"]:active .elementor-icon-list-icon {
		transform: translate(2px, 2px) rotate(-8deg);
		box-shadow: 1px 1px 0 var(--asm-anthracite);
	}

	/* Menu ouvert : l'onglet devient une croix « Fermer » */
	.asm-tabbar .is-open .elementor-icon-list-icon { background: var(--asm-anthracite); transform: rotate(-3deg); }
	.asm-tabbar .is-open .elementor-icon-list-icon svg,
	.asm-tabbar .is-open .elementor-icon-list-icon i { opacity: 0; }
	.asm-tabbar .is-open .elementor-icon-list-icon::before,
	.asm-tabbar .is-open .elementor-icon-list-icon::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 20px;
		height: 3px;
		border-radius: 3px;
		background: var(--asm-creme);
		transform: translate(-50%, -50%) rotate(45deg);
	}
	.asm-tabbar .is-open .elementor-icon-list-icon::after { transform: translate(-50%, -50%) rotate(-45deg); }

	/* En-tête : logo seul et centré (Billetterie et menu sont dans la barre du bas) */
	.asm-header .asm-header__cta,
	.asm-nav .elementor-menu-toggle { display: none !important; }
	.asm-header > .e-con-inner { justify-content: center !important; gap: 0 !important; }
	.asm-header .asm-header__right { flex: 0 0 0 !important; width: 0 !important; }

	/* Menu plein écran : toute la hauteur au-dessus de la barre, logo en haut */
	.asm-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		top: 0 !important;
		bottom: calc(var(--asm-tabbar-h) + env(safe-area-inset-bottom, 0px)) !important;
		height: auto !important;
		padding-top: 128px !important;
		background-image: url("img/logo-creme.svg"), url("img/etoile-jaune.webp"), url("img/boucles-creme.webp");
		background-size: 136px auto, 170px auto, 280px auto;
		background-position: center 30px, right -46px bottom -36px, left -150px bottom -80px;
		background-repeat: no-repeat, no-repeat, no-repeat;
	}

	/* La fin de page et le héros restent visibles au-dessus de la barre */
	.elementor-location-footer {
		padding-bottom: calc(var(--asm-tabbar-h) + env(safe-area-inset-bottom, 0px));
		background-color: var(--asm-anthracite);
	}
	.asm-hero { min-height: calc(100svh - var(--asm-header-h) - var(--asm-tabbar-h) - 12px); }
	html { scroll-padding-top: 16px; scroll-padding-bottom: calc(var(--asm-tabbar-h) + 16px); }
}

@media (max-width: 767px) {
	/* Elementor ajoute une marge à droite des icônes de liste (¼ de leur taille) : on la retire pour centrer les pictos */
	.asm-tabbar .elementor-icon-list-icon svg { margin: 0 !important; }
	.asm-tabbar .elementor-icon-list-icon i { margin: 0 !important; width: auto !important; text-align: center; }
}
