/* Idole Studio · styles des widgets idole-*. Valeurs par défaut = maquette v3 (style.css) ; l'onglet Style des
   widgets les remplace par des variables (--idole-*) ou des sélecteurs plus précis.
   Points de rupture du kit : mobile ≤ 767 px, tablette 768 à 1279 px, ordinateur ≥ 1280 px.
   Images : sélecteurs .elementor .idole-… pour passer devant « .elementor img { height: auto; border-radius: 0 } ». */

/* =================================================================== Statue 3D */
.idole-statue--scene {
  position: fixed; inset: 0; z-index: 0;
  overflow: hidden; pointer-events: none;
}
/* Scène bien plus large que l'écran : le badge Spline (bas droite du cadre) reste hors champ, même réduite et décalée.
   Mise à l'échelle ancrée en bas : la statue reste posée sur le bas de l'écran. */
.idole-statue__stage {
  position: absolute; top: 0; bottom: 0;
  left: calc(-55vw - 220px); right: calc(-55vw - 220px);
  transform-origin: 50% 100%;
  will-change: transform;
}
.idole-statue__stage spline-viewer { display: block; width: 100%; height: 100%; }
.idole-statue__secours { display: none; }
.idole-statue--scene.is-fallback .idole-statue__stage { display: none; }
.idole-statue--scene.is-fallback .idole-statue__secours {
  display: block; position: absolute; right: -16vw; bottom: 0;
  width: 80vw; height: 60vh; max-width: none;
  object-fit: contain; object-position: 50% 100%;
  opacity: .32; transition: opacity .4s;
}
/* Conteneur ou section qui ne contient que la statue (mode scène) : aucune hauteur sur le site publié */
.elementor-widget-idole-statue.idole-statue-mode-scene { margin: 0 !important; }
body:not(.elementor-editor-active) .e-con:has(> .elementor-widget-idole-statue.idole-statue-mode-scene:only-child),
body:not(.elementor-editor-active) .e-con:has(> .e-con-inner > .elementor-widget-idole-statue.idole-statue-mode-scene:only-child),
body:not(.elementor-editor-active) .elementor-section:has(> .elementor-container > .elementor-column:only-child > .elementor-widget-wrap > .elementor-widget-idole-statue.idole-statue-mode-scene:only-child) {
  padding: 0 !important; margin: 0 !important; min-height: 0 !important; border: 0 !important;
}
body:not(.elementor-editor-active) .elementor-section:has(> .elementor-container > .elementor-column:only-child > .elementor-widget-wrap > .elementor-widget-idole-statue.idole-statue-mode-scene:only-child) .elementor-widget-wrap {
  padding: 0 !important;
}
/* Bouton pause : vertical, dans la marge droite */
.idole-statue__badge {
  position: fixed; right: 0; bottom: 24px; z-index: 3;
  width: 32px; display: flex; justify-content: center;
  transition: opacity .3s;
}
.idole-statue__badge.is-hidden { opacity: 0; pointer-events: none; }
.idole-statue__badge[hidden], .idole-no-3d .idole-statue__badge { display: none; }
.idole-statue__pause {
  writing-mode: vertical-rl; transform: rotate(180deg);
  background: none; border: 0; border-radius: 0; box-shadow: none; cursor: pointer;
  min-width: 32px; padding: 8px 0; margin: 0;
  font: 400 12px/1 "DM Sans", "Helvetica Neue", Arial, sans-serif; letter-spacing: 0; text-transform: none;
  color: var(--idole-muted, #5C5C5C);
  text-decoration: underline 1px; text-underline-offset: 3px;
}
.idole-statue__pause[hidden] { display: none; }
.idole-statue__pause:hover, .idole-statue__pause:focus { color: var(--idole-fg, #0B0B0B); background: none; }
/* Mobile : petit bouton rond (pause / lecture) en bas à droite, au-dessus de la barre basse ; le texte reste lu par les
   lecteurs d'écran (taille 0, pas masqué) */
@media (max-width: 767px) {
  .idole-statue__badge { right: 12px; bottom: 84px; width: 36px; }
  .idole-statue__pause,
  .idole-statue__pause:hover,
  .idole-statue__pause:focus {
    writing-mode: horizontal-tb; transform: none;
    display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; min-width: 0; padding: 0;
    border: 1px solid rgba(0, 0, 0, .12); border-radius: 50%;
    background: rgba(255, 255, 255, .85); color: #0B0B0B;
    font-size: 0; text-decoration: none;
  }
  .idole-statue__pause::before {
    content: ""; display: block; box-sizing: border-box;
    width: 10px; height: 12px; border-left: 3px solid currentColor; border-right: 3px solid currentColor;
  }
  .idole-statue__pause[aria-pressed="true"]::before {
    width: 0; height: 0; margin-left: 3px;
    border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor;
  }
}
/* Éditeur : carte statique à la place de la scène */
.idole-statue-apercu {
  display: flex; align-items: center; gap: 16px;
  padding: 12px 16px; border: 1px dashed rgba(0, 0, 0, .25); background: #FAFAFA;
  font: 400 13px/1.45 "DM Sans", "Helvetica Neue", Arial, sans-serif; color: #5C5C5C;
}
.idole-statue-apercu__txt { margin: 0; }
.idole-statue-apercu__txt strong { color: #0B0B0B; font-weight: 500; }
.elementor .idole-statue-apercu__img { flex: none; width: 40px; height: 74px; object-fit: contain; }
/* Mode « Poster seul » : posé en absolu à droite du conteneur parent (héros des pages intérieures) */
.elementor-widget-idole-statue.idole-statue-mode-poster {
  position: absolute; z-index: 0; right: var(--idole-poster-droite, 6vw); bottom: 0;
  height: var(--idole-poster-h, 80%); aspect-ratio: 480 / 890;
  width: auto !important; max-width: none !important; /* la largeur découle de la hauteur (Elementor impose 100 %) */
  margin: 0; pointer-events: none;
}
.elementor-editor-active .elementor-widget-idole-statue.idole-statue-mode-poster { pointer-events: auto; }
/* Le poster peut déborder à droite (position négative sur mobile) : la section qui le contient le rogne */
.elementor-top-section:has(.elementor-widget-idole-statue.idole-statue-mode-poster),
.e-con.e-parent:has(.elementor-widget-idole-statue.idole-statue-mode-poster) { overflow-x: clip; }
.idole-statue--poster { width: 100%; height: 100%; opacity: var(--idole-poster-opacite, 1); }
.elementor .idole-statue__poster {
  display: block; width: 100%; height: 100%; max-width: none;
  object-fit: contain; object-position: 50% 100%;
}
@media (max-width: 767px) {
  .elementor-widget-idole-statue.idole-statue-mode-poster { right: var(--idole-poster-droite, -14vw); height: var(--idole-poster-h, 58%); }
  .idole-statue--poster { opacity: var(--idole-poster-opacite, .2); }
}

/* =================================================================== Texte ajusté à la largeur */
/* Police propre au display (16/10/2026) : quatre sources déclarent « DM Sans » sur la page (Google du plugin avec l'axe
   de taille optique, Google d'Elementor, copie locale d'Elementor sans cet axe, Typekit du thème). La copie locale
   d'Elementor, déclarée en dernier, l'emportait en arrivant : le titre passait de « opsz 40 » à la petite taille optique,
   puis se réajustait (saut visible à la fin de l'entrée des lettres). « Idole DM Sans » ne pointe que sur le fichier
   Google à taille optique, le même que celui de la feuille du plugin (déjà en cache) ; w-display.js le place en tête. */
@font-face {
  font-family: "Idole DM Sans"; font-style: normal; font-weight: 100 1000; font-display: block;
  src: url(https://fonts.gstatic.com/s/dmsans/v17/rP2Hp2ywxg089UriCZOIHQ.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Idole DM Sans"; font-style: normal; font-weight: 100 1000; font-display: block;
  src: url(https://fonts.gstatic.com/s/dmsans/v17/rP2Hp2ywxg089UriCZ2IHSeH.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
.elementor-widget-idole-display { width: 100%; }
.idole-display { font-family: "DM Sans", "Helvetica Neue", Arial, sans-serif; }
/* Sans JS : taille approchée (largeur utile / nombre de caractères) ; avec JS : ajustée au pixel */
.idole-display__cadre {
  font-size: min(calc((min(100vw, 1476px) - 2 * var(--idole-marge, 20px)) / var(--idole-n, 10) * 1.45), 240px);
}
.idole-display__texte {
  margin: 0 0 0 -.04em; padding: 0;
  font-size: inherit; font-weight: 100; font-variation-settings: "opsz" 40;
  line-height: .82; letter-spacing: .06em; text-transform: uppercase;
  white-space: nowrap; color: #0B0B0B;
  paint-order: stroke fill;
}
.idole-display__mot { display: inline-block; }
/* Aucune transition dans le display (la règle « mouvement réduit » en donne une à tout élément, la mesure de
   l'ajustement lirait alors l'ancienne taille, héritée par les mots) */
.idole-display, .idole-display * { transition: none !important; }
@media (max-width: 767px) {
  .idole-display-lignes-yes .idole-display__mot { display: block; }
  .idole-display-lignes-yes .idole-display__cadre { font-size: calc((100vw - 2 * var(--idole-marge, 20px)) / var(--idole-n-mot, 6) * 1.3); }
}
/* Lettres animées : masquées jusqu'au départ du script (filet de sécurité : .idole-ready au bout de 3,5 s) */
.idole-js .idole-display[data-intro] .idole-display__texte { visibility: hidden; }
.idole-js .idole-display.is-ready .idole-display__texte,
.idole-ready .idole-display .idole-display__texte,
.elementor-editor-active .idole-display .idole-display__texte { visibility: visible; }
.idole-char-mask { display: inline-block; overflow: hidden; vertical-align: top; padding: .06em 0 .1em; margin: -.06em 0 -.1em; }
.idole-char { display: inline-block; }
/* Mode coupé en bas : seul le haut des lettres est visible */
.idole-display-mode-coupe .idole-display__cadre {
  overflow: hidden; height: .5em;
  font-size: calc((min(100vw, 1476px) - 2 * var(--idole-marge, 20px)) / var(--idole-n, 5) * 1.45);
  pointer-events: none; user-select: none;
}
.idole-display-mode-coupe .idole-display__texte { margin-left: -.02em; will-change: transform; }

/* =================================================================== Planche contact */
.idole-planche {
  position: relative; background-color: #0B0B0B; color: #F2F2F2;
  padding: 104px 0 72px;
}
@media (min-width: 768px) { .idole-planche { padding-top: 112px; } }
@media (min-width: 1280px) { .idole-planche { padding-top: 168px; } }
.idole-planche__head { padding: 0 var(--idole-marge, 20px); }
.idole-planche__titre {
  max-width: 9em; margin: 0 0 32px;
  font-family: "Syne", "DM Sans", "Helvetica Neue", Arial, sans-serif; font-weight: 800; font-size: 40px;
  line-height: 1; letter-spacing: -.02em; color: #F2F2F2;
}
@media (min-width: 1280px) { .idole-planche__titre { font-size: clamp(36px, 3.2vw, 52px); } }
.idole-planche__track {
  overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-inline: var(--idole-marge, 20px);
  padding-inline: var(--idole-marge, 20px); scrollbar-width: none;
}
.idole-planche__track::-webkit-scrollbar { display: none; }
.idole-planche__list, .idole-planche__faits { margin: 0; padding: 0; list-style: none; }
.idole-planche__list { display: flex; gap: var(--idole-planche-gap, 12px); width: max-content; }
.idole-planche__list > li, .idole-planche__faits > li { margin: 0; list-style: none; }
.idole-planche__list > li::before, .idole-planche__faits > li::before { content: none; }
.idole-planche__fig {
  margin: 0; height: var(--idole-planche-h, 44vh); max-height: var(--idole-planche-hmax, 520px);
  scroll-snap-align: start;
}
.idole-planche__media {
  height: 100%; overflow: hidden;
  clip-path: inset(0 0 calc((1 - var(--rv, 1)) * 100%) 0);
}
.elementor .idole-planche__media img {
  display: block; height: 100%; width: auto; max-width: none; border-radius: 0;
  scale: calc(1.15 - .15 * var(--rv, 1));
}
.idole-planche__faits {
  display: flex; flex-wrap: wrap; gap: 10px 0;
  margin-top: 32px; padding: 0 var(--idole-marge, 20px);
  font-size: 16px; line-height: 1.3; color: #9A9A9A;
}
.idole-planche__faits > li { padding: 0 16px; border-left: 1px solid rgba(255, 255, 255, .14); }
.idole-planche__faits > li:first-child { padding-left: 0; border-left: 0; }
/* Épinglée (tablette et ordinateur, classe posée par le script) */
.idole-planche.is-pinned { height: 100vh; padding: 0; overflow: hidden; }
.idole-planche.is-pinned .idole-planche__row {
  display: flex; align-items: flex-end; width: max-content; height: 100%;
  padding: 0 var(--idole-marge, 48px) var(--idole-planche-bas, 120px);
  will-change: transform;
}
.idole-planche.is-pinned .idole-planche__head {
  flex: none; width: var(--idole-planche-tete, 30vw); height: var(--idole-planche-h, 62vh);
  padding: 0 56px 0 0; display: flex; align-items: flex-start;
}
.idole-planche.is-pinned .idole-planche__titre { margin: 0; }
.idole-planche.is-pinned .idole-planche__track { overflow: visible; padding: 0; }
.idole-planche.is-pinned .idole-planche__fig { max-height: none; }
.elementor .idole-planche.is-pinned .idole-planche__media img { scale: calc(1.27 - .15 * var(--rv, 1)); }
.idole-planche.is-pinned .idole-planche__faits { position: absolute; left: var(--idole-marge, 48px); bottom: 40px; margin: 0; padding: 0; }

/* =================================================================== Section rideau (le lieu) */
.idole-lieu { position: relative; overflow: hidden; background: #FFFFFF; }
.idole-lieu__media { position: relative; overflow: hidden; margin: 0; }
.elementor .idole-lieu__media img {
  display: block; width: 100%; height: auto; max-width: none; border-radius: 0;
  aspect-ratio: 4 / 5; object-fit: cover;
}
.idole-lieu__panel {
  position: relative; background: #FFFFFF; color: #0B0B0B;
  padding: 40px var(--idole-marge, 20px) 56px;
  font-family: "DM Sans", "Helvetica Neue", Arial, sans-serif; font-size: 17px; line-height: 1.6;
}
.idole-lieu__titre {
  margin: 0 0 24px;
  font-family: "Syne", "DM Sans", "Helvetica Neue", Arial, sans-serif; font-weight: 800; font-size: 40px;
  line-height: 1; letter-spacing: -.02em; color: #0B0B0B;
}
.idole-lieu__texte p { margin: 0 0 16px; }
.idole-lieu__lien {
  display: inline-flex; align-items: center; min-height: 48px;
  font-weight: 500; color: #0B0B0B;
  text-decoration: underline 2px; text-decoration-color: var(--idole-orange, #F59139); text-underline-offset: 6px;
  transition: text-underline-offset .3s var(--idole-ease, ease);
}
.idole-lieu__lien:hover { text-underline-offset: 3px; }
/* Style « bouton » : même rendu que les boutons natifs de la page (pilule, remplissage par le bas, flèche) */
.idole-lieu__lien.is-bouton {
  position: relative; isolation: isolate; overflow: hidden;
  justify-content: center; height: 56px; min-height: 0; padding: 0 28px; margin-top: 8px;
  border: 1px solid transparent; border-radius: 999px;
  background: var(--idole-lieu-btn-fond, var(--idole-orange, #F59139));
  font: 500 15px/1 "DM Sans", "Helvetica Neue", Arial, sans-serif; letter-spacing: 0;
  text-decoration: none; white-space: nowrap;
  transition: color .45s var(--idole-ease, ease), border-color .45s var(--idole-ease, ease);
}
.idole-lieu__lien.is-bouton::before {
  content: ""; position: absolute; inset: -1px; z-index: -1; border-radius: inherit;
  background: var(--idole-lieu-btn-remplissage, var(--idole-orange-fonce, #D9742A));
  transform: translateY(102%); transition: transform .5s var(--idole-ease, ease);
}
.idole-lieu__lien.is-bouton::after {
  content: "→"; display: inline-block; width: 0; overflow: hidden; opacity: 0; transform: translateX(-8px);
  transition: width .45s var(--idole-ease, ease), margin .45s var(--idole-ease, ease), opacity .3s, transform .45s var(--idole-ease, ease);
}
.idole-lieu__lien.is-bouton:hover, .idole-lieu__lien.is-bouton:focus-visible { text-underline-offset: 0; }
.idole-lieu__lien.is-bouton:hover::before, .idole-lieu__lien.is-bouton:focus-visible::before { transform: none; }
.idole-lieu__lien.is-bouton:hover::after, .idole-lieu__lien.is-bouton:focus-visible::after { width: 1em; margin-left: 10px; opacity: 1; transform: none; }
.idole-lieu__lien.is-fantome {
  --idole-lieu-btn-remplissage: #0B0B0B;
  background: transparent; border-color: rgba(11, 11, 11, .4);
}
.idole-lieu__lien.is-fantome:hover, .idole-lieu__lien.is-fantome:focus-visible { color: #FFFFFF !important; border-color: #0B0B0B; }
@media (min-width: 768px) {
  .idole-lieu { height: var(--idole-lieu-h, 100vh); min-height: 640px; }
  .idole-lieu__pin { position: relative; height: 100%; }
  .idole-lieu__media { position: absolute; inset: 0; }
  .elementor .idole-lieu__media img { height: 100%; aspect-ratio: auto; object-position: var(--idole-lieu-cadrage, 50% 42%); }
  .idole-lieu__panel {
    position: absolute; left: var(--idole-lieu-gauche, 32px); bottom: var(--idole-lieu-bas, 48px);
    width: min(var(--idole-lieu-panneau, 620px), 70vw);
    padding: 40px 44px 28px; font-size: 16px;
  }
}
@media (min-width: 1280px) {
  .idole-lieu__panel { left: var(--idole-lieu-gauche, 48px); width: min(var(--idole-lieu-panneau, 620px), 46vw); }
  .idole-lieu__titre { font-size: clamp(40px, 3.6vw, 60px); }
}

/* =================================================================== Galerie avec distorsion */
.idole-portfolio__grid {
  display: grid; grid-template-columns: repeat(var(--idole-pf-cols, 2), minmax(0, 1fr));
  column-gap: var(--idole-pf-gx, 12px); row-gap: var(--idole-pf-gy, 32px);
  margin: 0; list-style: none;
  /* espace réservé sous la grille pour les colonnes paires descendues (photos 4:5) */
  padding: 0 0 calc(var(--idole-pf-dec, 40) / 100 * 1.25 * (100% - (var(--idole-pf-cols, 2) - 1) * var(--idole-pf-gx, 12px)) / var(--idole-pf-cols, 2));
}
.idole-portfolio__item { margin: 0; padding: 0; list-style: none; }
.idole-portfolio__item::before { content: none; }
/* Photos descendues : le widget pose sur chaque photo --idole-pf-b-<m|t|d|w> (1 = colonne paire) selon le nombre de
   colonnes de l'appareil, ce qui marche aussi avec 3 ou 5 colonnes. nth-child(even) = repli pour un rendu sans drapeaux. */
.idole-portfolio__item:nth-child(even) { --idole-pf-b-m: 1; --idole-pf-b-t: 1; --idole-pf-b-d: 1; --idole-pf-b-w: 1; }
.idole-portfolio__item { transform: translateY(calc(var(--idole-pf-dec, 40) * var(--idole-pf-b-m, 0) * 1%)); }
@media (min-width: 768px) { .idole-portfolio__item { transform: translateY(calc(var(--idole-pf-dec, 40) * var(--idole-pf-b-t, 0) * 1%)); } }
@media (min-width: 1280px) { .idole-portfolio__item { transform: translateY(calc(var(--idole-pf-dec, 40) * var(--idole-pf-b-d, 0) * 1%)); } }
@media (min-width: 2000px) { .idole-portfolio__item { transform: translateY(calc(var(--idole-pf-dec, 40) * var(--idole-pf-b-w, 0) * 1%)); } }
.idole-portfolio__lien { display: block; color: inherit; text-decoration: none; }
.idole-portfolio__fig { margin: 0; }
.idole-portfolio__media {
  aspect-ratio: 4 / 5; overflow: hidden; background: #151515;
  clip-path: inset(0 0 calc((1 - var(--rv, 1)) * 100%) 0);
}
.elementor .idole-portfolio__media img {
  display: block; width: 100%; height: 100%; max-width: none; border-radius: 0;
  object-fit: cover; scale: calc(1.15 - .15 * var(--rv, 1)); transition: opacity .3s;
}
.idole-portfolio__legende {
  margin-top: 12px; font-family: "DM Sans", "Helvetica Neue", Arial, sans-serif; font-size: 14px; line-height: 1.4;
  color: var(--idole-muted, #9A9A9A); transition: color .3s;
}
.idole-portfolio__lien:hover .idole-portfolio__legende,
.idole-portfolio__lien:focus-visible .idole-portfolio__legende { color: var(--idole-fg, #F2F2F2); }
/* Sous la photo WebGL, le cadre reste transparent : le réglage « Fond avant chargement » génère une règle
   plus spécifique (.elementor-<page> .elementor-element-<id> …) qui laissait un fond gris visible au survol. */
.idole-portfolio__media.is-gl { background: transparent !important; }
.elementor .idole-portfolio__media.is-gl img { opacity: 0; }
.idole-portfolio-gl { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 4; pointer-events: none; }
/* Galerie « réalisations » sans fiche : la section racine qui la contient est masquée (réglage « Sans réalisation »). */
.e-con.e-parent:has(.idole-portfolio-vide) { display: none !important; }
.idole-portfolio__vide { margin: 0; padding: 24px; border: 1px dashed currentColor; opacity: .7; }
/* Galerie « réalisations » sans fiche, réglage « Afficher un message » : cadre fin à la place de la grille. */
.elementor .idole-portfolio__message { margin: 0; padding: 72px 32px; border: 1px solid color-mix(in srgb, currentColor 28%, transparent); color: var(--idole-fg, #F2F2F2); font-size: 18px; line-height: 1.5; text-align: center; }
@media (max-width: 767px) { .elementor .idole-portfolio__message { padding: 48px 20px; } }
@media (min-width: 1280px) { .idole-portfolio__grid { padding-bottom: calc(var(--idole-pf-dec, 50) / 100 * 1.25 * (100% - (var(--idole-pf-cols, 4) - 1) * var(--idole-pf-gx, 24px)) / var(--idole-pf-cols, 4)); } }
/* Filtre par type (réglage « Filtre par type ») : libellés texte, type choisi souligné en orange comme le menu. */
.idole-portfolio__filtre {
  display: flex; flex-wrap: wrap; gap: 10px 32px; margin: 0 0 var(--idole-pf-filtre-mb, 56px);
}
.idole-portfolio__filtre[hidden] { display: none; }
.elementor .idole-portfolio__filtre-btn {
  position: relative; display: inline-flex; align-items: flex-start; gap: 4px; min-height: 44px; margin: 0; padding: 10px 0;
  border: 0; border-radius: 0; background: none; box-shadow: none; cursor: pointer;
  font-family: "DM Sans", "Helvetica Neue", Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 1.3;
  letter-spacing: 0; text-transform: none; color: var(--idole-muted, #9A9A9A); transition: color .3s;
}
.elementor .idole-portfolio__filtre-btn::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 2px;
  background: var(--idole-orange, #F59139); transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.elementor .idole-portfolio__filtre-btn:hover,
.elementor .idole-portfolio__filtre-btn:focus,
.elementor .idole-portfolio__filtre-btn[aria-pressed="true"] { background: none; color: var(--idole-fg, #F2F2F2); }
.elementor .idole-portfolio__filtre-btn[aria-pressed="true"]::after { transform: scaleX(1); }
.elementor .idole-portfolio__filtre-btn:focus-visible { outline: 2px solid var(--idole-orange, #F59139); outline-offset: 4px; }
.idole-portfolio__filtre-n { position: static; top: auto; font-size: .62em; line-height: 1; opacity: .7; font-variant-numeric: tabular-nums; }
.idole-portfolio__statut { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.idole-portfolio__item[hidden] { display: none; }
@media (max-width: 767px) {
  .idole-portfolio__filtre { gap: 4px 22px; }
  .elementor .idole-portfolio__filtre-btn { font-size: 16px; }
}

/* =================================================================== Défilement d'avis */
.idole-marquee {
  overflow: hidden; border-top: 1px solid rgba(0, 0, 0, .12); border-bottom: 1px solid rgba(0, 0, 0, .12);
  padding-block: var(--idole-mq-pad, 48px);
}
.idole-marquee__track { display: flex; width: max-content; animation: idole-defile var(--idole-mq-duree, 48s) linear infinite; }
.idole-marquee--pause:hover .idole-marquee__track,
.idole-marquee--pause:focus-within .idole-marquee__track { animation-play-state: paused; }
.idole-marquee__group { display: flex; gap: var(--idole-mq-gap, 96px); padding-right: var(--idole-mq-gap, 96px); }
.idole-marquee__quote {
  flex: none; width: min(var(--idole-mq-w, 620px), 78vw);
  margin: 0; padding: 0; border: 0; background: none; quotes: none; font-style: normal;
}
.idole-marquee__quote::before, .idole-marquee__quote::after { content: none; }
.idole-marquee__texte {
  margin: 0; font-family: "DM Sans", "Helvetica Neue", Arial, sans-serif; font-weight: 300;
  font-size: 22px; line-height: 1.3; letter-spacing: -.01em; color: #0B0B0B;
}
@media (min-width: 1280px) { .idole-marquee__texte { font-size: 28px; } }
.idole-marquee__signature {
  margin-top: 20px; font-family: "DM Sans", "Helvetica Neue", Arial, sans-serif; font-size: 14px; color: #5C5C5C;
}
@keyframes idole-defile { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .idole-marquee { overflow-x: auto; }
  .idole-marquee__track { animation: none; }
  .idole-marquee__group { padding-inline: var(--idole-marge, 20px); }
  .idole-marquee__group[aria-hidden] { display: none; }
}

/* =================================================================== Agenda Calendly */
.idole-agenda { position: relative; min-height: 160px; border: 1px solid rgba(0, 0, 0, .12); }
.idole-agenda .calendly-inline-widget { position: relative; z-index: 1; min-width: 320px; height: 700px; }
.idole-agenda:not(.is-loaded) .calendly-inline-widget { pointer-events: none; }
.idole-agenda__fallback {
  position: absolute; inset: 0; z-index: 0; margin: 0;
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.idole-agenda.is-loaded { border-color: transparent !important; }
.idole-agenda.is-loaded .idole-agenda__fallback { display: none; }
/* Bouton des widgets (même rendu que les boutons primaires de la maquette) */
.idole-btn {
  --idole-btn-fill: var(--idole-orange-fonce, #D9742A);
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center;
  height: 56px; padding: 0 28px; border: 1px solid transparent; border-radius: 999px;
  background: var(--idole-orange, #F59139); color: #0B0B0B;
  font: 500 15px/1 "DM Sans", "Helvetica Neue", Arial, sans-serif;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: color .45s var(--idole-ease, ease), border-color .45s var(--idole-ease, ease);
}
.idole-btn::before {
  content: ""; position: absolute; inset: -1px; z-index: -1; border-radius: inherit;
  background: var(--idole-btn-fill); transform: translateY(102%);
  transition: transform .5s var(--idole-ease, ease);
}
.idole-btn::after {
  content: "→"; display: inline-block; width: 0; overflow: hidden; opacity: 0;
  transform: translateX(-8px);
  transition: width .45s var(--idole-ease, ease), margin .45s var(--idole-ease, ease), opacity .3s, transform .45s var(--idole-ease, ease);
}
.idole-btn:hover::before, .idole-btn:focus-visible::before { transform: none; }
.idole-btn:hover::after, .idole-btn:focus-visible::after { width: 1em; margin-left: 10px; opacity: 1; transform: none; }
.idole-btn:hover, .idole-btn:focus { color: #0B0B0B; }

/* =================================================================== Menu avec mega menu (idole-menu)
   ≥ 1024 px : liens en ligne, panneaux (modèles Elementor) sous l'en-tête fixe ; < 1024 px : burger, menu plein
   écran noir. Le haut des panneaux et du menu mobile (--idole-menu-top) est posé par w-menu.js (bas de l'en-tête). */
.idole-menu {
  --idole-menu-souligne: var(--idole-orange, #F59139);
  --idole-menu-souligne-h: 2px;
  display: flex; align-items: center; justify-content: center; min-width: 0;
}
.idole-menu ul { list-style: none; margin: 0; padding: 0; }
.idole-menu li { margin: 0; padding: 0; }
.idole-menu__liste { display: flex; align-items: center; flex-wrap: nowrap; gap: 32px; }
.idole-menu .idole-menu__lien,
.idole-menu .idole-menu__lien:hover,
.idole-menu .idole-menu__lien:focus {
  display: inline-flex; align-items: center; gap: 6px;
  margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none;
  text-decoration: none; text-transform: none; white-space: nowrap;
}
.idole-menu .idole-menu__lien {
  color: #0B0B0B; font: 500 15px/1.2 "DM Sans", "Helvetica Neue", Arial, sans-serif; letter-spacing: normal;
  cursor: pointer;
}
.idole-menu__texte {
  padding-block: 6px;
  background: linear-gradient(var(--idole-menu-souligne), var(--idole-menu-souligne)) 0 100% / 0 var(--idole-menu-souligne-h) no-repeat;
  transition: background-size .45s var(--idole-ease, ease);
}
.idole-menu__lien:hover .idole-menu__texte,
.idole-menu__lien:focus-visible .idole-menu__texte,
.idole-menu__item.est-ouvert > .idole-menu__lien .idole-menu__texte,
.idole-menu__item.est-courant > .idole-menu__lien .idole-menu__texte { background-size: 100% var(--idole-menu-souligne-h); }
.idole-menu__chevron { display: block; flex: none; width: 10px; height: 6px; transition: transform .3s var(--idole-ease, ease); }
/* Entrée à panneau : lien vers la page, puis bouton chevron (ouvre le panneau) */
.idole-menu__item.a-panneau { display: inline-flex; align-items: center; }
.idole-menu .idole-menu__ouvrir,
.idole-menu .idole-menu__ouvrir:hover,
.idole-menu .idole-menu__ouvrir:focus {
  margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none;
}
.idole-menu .idole-menu__ouvrir {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 24px; height: 30px; margin-left: 2px; color: #0B0B0B; cursor: pointer;
}
.idole-menu__ouvrir[aria-expanded="true"] .idole-menu__chevron { transform: rotate(180deg); }

/* Panneau : centré sous l'en-tête, largeur du contenu, fondu + 8 px. Variables claires : il reste blanc et lisible
   quand l'en-tête passe en noir (is-over-dark). */
.idole-menu__panneau {
  --idole-fond: #FFFFFF; --idole-fg: #0B0B0B; --idole-muted: #5C5C5C; --idole-line: rgba(0, 0, 0, .12); --idole-bg: #FFFFFF;
  position: fixed; z-index: 2; left: 50%; top: var(--idole-menu-top, var(--idole-hh, 72px));
  width: min(var(--idole-menu-largeur, 1380px), calc(100% - 2 * var(--idole-marge, 48px)));
  max-height: calc(100vh - var(--idole-menu-top, 72px) - 24px); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  background-color: #FFFFFF; color: #0B0B0B; border: 1px solid rgba(0, 0, 0, .12);
  box-shadow: 0 24px 48px -16px rgba(11, 11, 11, .16);
  text-align: left; white-space: normal; cursor: auto;
  display: none; visibility: hidden; opacity: 0; pointer-events: none;
  transform: translate(-50%, 8px);
  transition: opacity .25s ease, transform .35s var(--idole-ease, ease), visibility 0s linear .35s;
}
.idole-menu.est-arme .idole-menu__panneau { display: block; }
.idole-menu__item.est-ouvert > .idole-menu__panneau {
  visibility: visible; opacity: 1; pointer-events: auto; transform: translate(-50%, 0);
  transition: opacity .25s ease, transform .35s var(--idole-ease, ease), visibility 0s;
}
/* Sans script : ouverture au survol et au focus */
.idole-menu:not(.est-js) .idole-menu__item.a-panneau:is(:hover, :focus-within) > .idole-menu__panneau {
  display: block; visibility: visible; opacity: 1; pointer-events: auto; transform: translate(-50%, 0);
}

/* Burger et menu plein écran */
.idole-menu .idole-menu__burger,
.idole-menu .idole-menu__burger:hover,
.idole-menu .idole-menu__burger:focus {
  margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none;
}
.idole-menu .idole-menu__burger {
  --idole-burger: 24px;
  display: none; align-items: center; justify-content: flex-end; gap: 10px;
  min-width: 44px; min-height: 44px; color: #0B0B0B; cursor: pointer;
  font: 500 15px/1 "DM Sans", "Helvetica Neue", Arial, sans-serif; text-transform: none; letter-spacing: normal;
}
.idole-menu__traits,
.idole-menu__traits::before,
.idole-menu__traits::after {
  display: block; width: var(--idole-burger); height: 2px; background: currentColor;
  transition: transform .35s var(--idole-ease, ease), background-color .2s;
}
.idole-menu__traits { position: relative; }
.idole-menu__traits::before,
.idole-menu__traits::after { content: ""; position: absolute; left: 0; }
.idole-menu__traits::before { top: calc(var(--idole-burger) * -.3); }
.idole-menu__traits::after { top: calc(var(--idole-burger) * .3); }
.idole-menu__burger[aria-expanded="true"] .idole-menu__traits { background-color: transparent; }
.idole-menu__burger[aria-expanded="true"] .idole-menu__traits::before { transform: translateY(calc(var(--idole-burger) * .3)) rotate(45deg); }
.idole-menu__burger[aria-expanded="true"] .idole-menu__traits::after { transform: translateY(calc(var(--idole-burger) * -.3)) rotate(-45deg); }

.idole-menu__mobile {
  position: fixed; z-index: 2; left: 0; right: 0; bottom: 0; top: var(--idole-menu-top, var(--idole-hh, 60px));
  display: none; flex-direction: column; gap: 40px;
  padding: 40px var(--idole-marge, 20px) 48px; overflow-y: auto; overscroll-behavior: contain;
  background-color: #0B0B0B; color: #F2F2F2; text-align: left;
}
.idole-menu__mliste { display: flex; flex-direction: column; gap: 6px; }
.idole-menu .idole-menu__mlien,
.idole-menu .idole-menu__mlien:hover,
.idole-menu .idole-menu__mlien:focus {
  margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; text-decoration: none;
}
.idole-menu .idole-menu__mlien {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 48px;
  color: inherit; font: 200 48px/1.1 "DM Sans", "Helvetica Neue", Arial, sans-serif; letter-spacing: -.01em;
  text-align: left; text-transform: none; cursor: pointer; transition: color .2s;
}
.idole-menu .idole-menu__mlien:hover,
.idole-menu .idole-menu__mlien[aria-current] { color: var(--idole-orange, #F59139); }
/* Entrée à panneau : libellé = lien, chevron = accordéon */
.idole-menu__mligne { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.idole-menu__mligne .idole-menu__mlien { width: auto; flex: 1 1 auto; min-width: 0; }
.idole-menu .idole-menu__acc,
.idole-menu .idole-menu__acc:hover,
.idole-menu .idole-menu__acc:focus {
  margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none;
}
.idole-menu .idole-menu__acc {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 48px; height: 48px; color: inherit; cursor: pointer;
}
.idole-menu__acc .idole-menu__chevron { width: 20px; height: 12px; }
.idole-menu__acc[aria-expanded="true"] { color: var(--idole-orange, #F59139); }
.idole-menu__acc[aria-expanded="true"] .idole-menu__chevron { transform: rotate(180deg); }
.idole-menu__msous { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s var(--idole-ease, ease); }
.idole-menu__msous > div { min-height: 0; overflow: hidden; visibility: hidden; transition: visibility 0s linear .45s; }
.idole-menu__msous.est-deplie { grid-template-rows: 1fr; }
.idole-menu__msous.est-deplie > div { visibility: visible; transition-delay: 0s; }
.idole-menu__msous ul { display: flex; flex-direction: column; padding: 12px 0 16px; }
.idole-menu__msous a {
  display: inline-block; padding: 7px 0; color: inherit; opacity: .82;
  font: 300 18px/1.35 "DM Sans", "Helvetica Neue", Arial, sans-serif; text-decoration: none;
  transition: color .2s, opacity .2s;
}
.idole-menu__msous a:hover, .idole-menu__msous a[aria-current] { color: var(--idole-orange, #F59139); opacity: 1; }
.idole-menu__infos { color: #9A9A9A; font: 400 15px/1.55 "DM Sans", "Helvetica Neue", Arial, sans-serif; }
.idole-menu__infos p { margin: 0 0 .6em; }
.idole-menu__infos p:last-child { margin-bottom: 0; }
.idole-menu__infos a { color: #F2F2F2; text-decoration: underline 1px; text-underline-offset: 4px; }
.idole-menu__action { margin: 0; }
html.idole-menu-bloque, html.idole-menu-bloque body { overflow: hidden; }

@media (max-width: 1023px) {
  .idole-menu__liste { display: none; }
  .idole-menu .idole-menu__burger { display: inline-flex; }
  .idole-menu__mobile.est-ouvert { display: flex; }
  /* Option « Bouton du menu en bout de ligne » : après le bouton Réserver, sans s'étirer */
  .elementor-element.idole-menu--fin-yes { --order: 99999 !important; --flex-grow: 0 !important; --flex-shrink: 0 !important; }
}
@media (min-width: 1024px) {
  .idole-menu__mobile { display: none !important; }
}
/* En-tête au-dessus d'une section sombre ou menu mobile ouvert : liens et burger en clair (le panneau reste blanc) */
.idole-header:is(.is-over-dark, .idole-menu-ouvert) .idole-menu__liste > li > :is(.idole-menu__lien, .idole-menu__ouvrir),
.idole-header:is(.is-over-dark, .idole-menu-ouvert) .idole-menu .idole-menu__burger { color: #F2F2F2 !important; }
.idole-menu__vide { margin: 0; font-size: 13px; color: #5C5C5C; }
