﻿/* =====================================================================
   IQ â€” SystÃ¨me de design (PORT FIDÃˆLE de iq-repertoire-v47-clean.html)
   RÃ©f : SITE WEB/systeme-design-iq.md + design-prototypes/iq-repertoire-v47-clean.html
   Globaux : jetons, police, fond, chrome des AUTRES pages.
   RÃ©pertoire redessinÃ© : scopÃ© sous .iq-repertoire (classes .iq-*),
   valeurs alignÃ©es 1:1 sur la rÃ©fÃ©rence. GouttiÃ¨re par SECTION (pas le conteneur).
   ===================================================================== */

:root{
  --iq-bg:#f6f5ef; --iq-ink:#11110f; --iq-muted:#77756e; --iq-line:#d8d6cd;
  --iq-soft:#ecebe6; --iq-white:#fff;
  --iq-panel:#c95616; --iq-accent:var(--iq-panel); --iq-panel-ink:#130905;
  --iq-image-radius:16px; --iq-display-weight:400;
  --iq-display:"Instrument Serif",serif;
  --iq-body:Geist,system-ui,-apple-system,sans-serif;
  --iq-ease:cubic-bezier(.18,.84,.22,1);
  --iq-top-h:58px;
  --iq-gut:clamp(14px,2.2vw,32px); --iq-gap:clamp(14px,1.45vw,22px);
  --iq-open:360px; --iq-closed:34px;
  --iq-discover-h:calc(100vh - 58px - 220px);
  --nav-height:62px; /* nav globale des AUTRES pages */
}

body{ font-family:var(--iq-body); background:var(--iq-bg); }

/* =====================================================================
   FONDATION â€” composants transversaux (utilisables sur N'IMPORTE quelle page).
   BasÃ©s sur les jetons GLOBAUX --iq-*. Opt-in : ne s'appliquent que lÃ  oÃ¹
   la classe est posÃ©e. Ã€ rÃ©utiliser dans le portail, les pages publiques, l'auth.
   ===================================================================== */

/* Typographie utilitaire */
.iq-display{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); letter-spacing:-.045em; line-height:.9; }
.iq-muted{ color:var(--iq-muted); }
.iq-lead{ font-size:clamp(16px,1.3vw,21px); line-height:1.1; letter-spacing:-.045em; font-weight:560; }
.iq-kicker{ font-size:12px; font-weight:700; letter-spacing:-.02em; color:var(--iq-muted); display:inline-flex; align-items:center; gap:8px; }
.iq-kicker:before{ content:""; width:9px; height:9px; border-radius:2px; background:var(--iq-accent); }

/* Titre de section (serif + puce orange) */
.iq-section-title{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(26px,3vw,46px); line-height:.9; letter-spacing:-.055em; display:flex; gap:10px; align-items:center; color:var(--iq-ink); }
.iq-section-title:before{ content:""; width:10px; height:10px; border-radius:2px; background:var(--iq-accent); flex:0 0 auto; }

/* Boutons (pastilles) */
.iq-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:999px; padding:11px 16px; font-family:var(--iq-body); font-size:14px; font-weight:600; letter-spacing:-.02em; border:1px solid var(--iq-line); background:var(--iq-white); color:var(--iq-ink); cursor:pointer; transition:.16s var(--iq-ease); text-decoration:none; }
.iq-btn:hover{ border-color:var(--iq-ink); }
.iq-btn--primary{ background:var(--iq-accent); border-color:var(--iq-accent); color:var(--iq-panel-ink); }
.iq-btn--primary:hover{ background:#b94d12; border-color:#b94d12; }
.iq-btn--ink{ background:var(--iq-ink); border-color:var(--iq-ink); color:var(--iq-bg); }
.iq-btn--ink:hover{ background:var(--iq-accent); border-color:var(--iq-accent); color:var(--iq-panel-ink); }
.iq-btn--ghost{ background:transparent; }
.iq-btn--sm{ padding:8px 12px; font-size:13px; }
.iq-btn--block{ width:100%; }
.iq-btn--danger{ background:transparent; border-color:#c0392b; color:#c0392b; }
.iq-btn--danger:hover{ background:#c0392b; border-color:#c0392b; color:#fff; }
.iq-btn--danger:disabled{ opacity:.55; cursor:default; }
/* Barre d'enregistrement globale du profil membre : séparée des sections pour
   montrer clairement qu'elle sauvegarde TOUT le formulaire (pas que les liens). */
.iq-profile-savebar{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:clamp(30px,4.5vw,52px); margin-bottom:clamp(8px,1.5vw,18px); padding-top:clamp(22px,2.8vw,32px); border-top:1px solid var(--pl,var(--iq-line)); }
.iq-profile-savebar .iq-hint{ margin:0; }

/* Pastille (lecture seule) */
.iq-pill{ display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:0 10px; min-height:29px; background:rgba(255,255,255,.72); color:var(--iq-muted); font-size:12px; font-weight:600; }
.iq-pill b{ color:var(--iq-ink); }

/* Surface / carte de contenu (boÃ®te blanche) */
.iq-box{ background:var(--iq-white); border-radius:16px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.06); padding:clamp(16px,2vw,22px); }
.iq-box--bento{ border-radius:18px; }
.iq-box--flush{ padding:0; overflow:hidden; }

/* Champs de formulaire */
.iq-label{ display:block; font-size:13px; font-weight:600; color:var(--iq-muted); margin-bottom:6px; letter-spacing:-.02em; }
.iq-field{ width:100%; min-height:46px; border:0; border-radius:12px; background:var(--iq-white); box-shadow:inset 0 0 0 1px rgba(0,0,0,.12); padding:0 14px; font:inherit; font-size:15px; color:var(--iq-ink); }
textarea.iq-field{ min-height:120px; padding:12px 14px; resize:vertical; }
.iq-field::placeholder{ color:#aaa8a1; }
.iq-field:focus{ outline:0; box-shadow:inset 0 0 0 1.5px var(--iq-accent); }

/* Mise en page gÃ©nÃ©rique */
.iq-container{ padding-left:var(--iq-gut); padding-right:var(--iq-gut); }
.iq-section{ padding-top:clamp(20px,3vw,44px); padding-bottom:clamp(20px,3vw,44px); }
.iq-stack{ display:grid; gap:clamp(14px,1.6vw,22px); }
.iq-row{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }

/* Adaptations sur SURFACE ACCENT (fond orange) */
.iq-accent-surface .iq-section-title{ color:var(--iq-panel-ink); }
.iq-accent-surface .iq-section-title:before{ background:var(--iq-panel-ink); }
.iq-accent-surface .iq-kicker{ color:color-mix(in srgb,var(--iq-panel-ink) 72%,var(--iq-accent)); }
.iq-accent-surface .iq-kicker:before{ background:var(--iq-panel-ink); }
.iq-accent-surface .iq-muted{ color:color-mix(in srgb,var(--iq-panel-ink) 70%,var(--iq-accent)); }
.iq-accent-surface .iq-btn{ background:transparent; border-color:var(--iq-panel-ink); color:var(--iq-panel-ink); }
.iq-accent-surface .iq-btn:hover{ background:color-mix(in srgb,var(--iq-panel-ink) 12%,transparent); }
.iq-accent-surface .iq-btn--primary{ background:var(--iq-panel-ink); border-color:var(--iq-panel-ink); color:var(--iq-accent); }
.iq-accent-surface .iq-box{ background:var(--iq-white); color:var(--iq-ink); }
/* Ã€ l'intÃ©rieur d'une boÃ®te blanche : les composants reprennent les couleurs Â« surface claire Â» */
.iq-accent-surface .iq-box .iq-muted{ color:var(--iq-muted); }
.iq-accent-surface .iq-box .iq-kicker{ color:var(--iq-muted); }
.iq-accent-surface .iq-box .iq-kicker:before{ background:var(--iq-accent); }
.iq-accent-surface .iq-box .iq-section-title{ color:var(--iq-ink); }
.iq-accent-surface .iq-box .iq-section-title:before{ background:var(--iq-accent); }
.iq-accent-surface .iq-box .iq-btn{ background:var(--iq-white); border-color:var(--iq-line); color:var(--iq-ink); }
.iq-accent-surface .iq-box .iq-btn--primary{ background:var(--iq-accent); border-color:var(--iq-accent); color:var(--iq-panel-ink); }
.iq-accent-surface .iq-box .iq-btn--ink{ background:var(--iq-ink); border-color:var(--iq-ink); color:var(--iq-bg); }

/* =====================================================================
   CHROME des AUTRES pages (nav globale crÃ¨me, barre du bas, promo accent)
   Sur le rÃ©pertoire ces Ã©lÃ©ments sont masquÃ©s (en-tÃªte + footer dÃ©diÃ©s).
   ===================================================================== */
body.iq-repertoire-page .bottom-bar,
body.iq-repertoire-page .info-panel{ display:none !important; }

.nav:not(.iq-membernav){ height:var(--nav-height); background:var(--iq-bg); border-bottom:1px solid var(--iq-line); }

/* ===== Barre d'administration WordPress (utilisateur connecté) =====
   WP décale le flux normal (html margin-top) mais PAS les éléments fixes/collants.
   Sur DESKTOP (barre d'admin fixe de 32px) on décale la nav fixe et les barres
   collantes via --iq-abo (0 par défaut). Sur mobile la barre d'admin défile avec
   la page : on n'y touche pas (un décalage laisserait un trou après défilement). */
@media screen and (min-width:783px){
  body.admin-bar{ --iq-abo:32px; }
  body.admin-bar .nav{ top:32px; }
}
.nav__content{ max-width:none; padding-left:clamp(14px,2.2vw,32px); padding-right:clamp(14px,2.2vw,32px); }
.nav:not(.iq-membernav) .nav__logo{
  font-family:var(--iq-display); font-weight:400; font-size:23px; letter-spacing:-.04em;
  color:var(--iq-ink); display:inline-flex; align-items:center; gap:9px;
}
.nav:not(.iq-membernav) .nav__logo::before{ content:""; width:9px; height:9px; border-radius:1px; background:var(--iq-accent); }
/* Logo image (remplace le texte + la pastille quand un logo est défini) */
.nav__logo--img::before{ display:none !important; }
.nav__logo-img{ display:block; width:auto; height:auto; max-height:36px; }
.nav.iq-membernav .nav__logo--img{ display:inline-flex; align-items:center; gap:10px; }
.nav.iq-membernav .nav__logo-img{ max-height:30px; }
.nav__logo-suffix{ font-family:var(--iq-display); font-weight:400; letter-spacing:-.03em; }
/* Logo recoloré en couleur d'accent sur la nav membre (foncée) via masque CSS.
   Nécessite un PNG transparent (silhouette monochrome). */
.nav.iq-membernav .nav__logo-mask{
  display:block; height:30px; flex:0 0 auto;
  background-color:var(--iq-accent);
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:left center; mask-position:left center;
  -webkit-mask-size:contain; mask-size:contain;
}
.nav:not(.iq-membernav) .nav__links{ gap:0; height:100%; }
.nav:not(.iq-membernav) .nav__link{ display:flex; align-items:center; height:var(--nav-height); padding:0 16px; border-left:1px solid rgba(0,0,0,.08); font-family:var(--iq-body); font-weight:560; letter-spacing:-.02em; color:var(--iq-muted); }
.nav:not(.iq-membernav) .nav__link:hover,
.nav:not(.iq-membernav) .nav__link.is-active{ color:var(--iq-ink); background:rgba(255,255,255,.65); opacity:1; }
.nav:not(.iq-membernav) .nav__link--bordered{ height:auto; margin-left:10px; border:1px solid var(--iq-ink); border-radius:999px; padding:8px 13px; color:var(--iq-ink); }
.nav:not(.iq-membernav) .nav__link--bordered:hover{ background:var(--iq-ink); color:var(--iq-bg); }
.nav:not(.iq-membernav) .nav__hamburger span{ background:var(--iq-ink); }
.bottom-bar{ background:var(--iq-bg); border-top:1px solid var(--iq-line); color:var(--iq-ink); }
.bottom-bar__logo{ font-family:var(--iq-display); font-weight:400; font-size:18px; letter-spacing:-.03em; color:var(--iq-ink); }
.bottom-bar__text{ color:var(--iq-muted); }
.info-panel{ background:var(--iq-accent); color:var(--iq-panel-ink); border:1px solid color-mix(in srgb,var(--iq-panel-ink) 28%,transparent); }
.info-panel h3{ font-family:var(--iq-display); font-weight:400; color:var(--iq-panel-ink); }
.info-panel p{ color:color-mix(in srgb,var(--iq-panel-ink) 78%,var(--iq-accent)); }
.info-panel__close{ color:var(--iq-panel-ink); }
.info-panel .btn{ border:1px solid var(--iq-panel-ink); color:var(--iq-panel-ink); border-radius:999px; background:transparent; }
.info-panel .btn--primary{ background:var(--iq-panel-ink); color:var(--iq-accent); }

/* =====================================================================
   SURFACE ACCENT (utilitaire â†’ portail membre)
   ===================================================================== */
.iq-accent-surface{ background:var(--iq-accent); color:var(--iq-panel-ink); }
.iq-accent-surface a{ color:var(--iq-panel-ink); }
.iq-accent-surface .iq-surface-card,.iq-accent-surface .card,.iq-accent-surface .panel{ background:var(--iq-white); color:var(--iq-ink); }
body.iq-portail{ background:color-mix(in srgb, var(--iq-accent) 7%, var(--iq-bg)); }
.nav.iq-membernav{ background:var(--iq-ink); color:var(--iq-bg); border-bottom:1px solid rgba(255,255,255,.12); }
.nav.iq-membernav .nav__logo{ color:var(--iq-accent); }
.nav.iq-membernav .nav__link,.nav.iq-membernav .nav__user-name{ color:var(--iq-accent); }
.nav.iq-membernav .nav__link:hover{ color:color-mix(in srgb,var(--iq-accent) 55%,#fff); opacity:1; }
.nav.iq-membernav .nav__link--bordered{ border:1px solid var(--iq-accent); border-radius:999px; padding:8px 13px; color:var(--iq-accent); }
.nav.iq-membernav .nav__link--bordered:hover{ background:var(--iq-accent); color:var(--iq-ink); }
.nav.iq-membernav .nav__hamburger span{ background:var(--iq-bg); }

/* Sélecteur de langue (pastille déroulante) — s'adapte aux navs claire et sombre. */
.iq-lang{ position:relative; display:inline-flex; align-items:center; margin-right:clamp(12px,1.6vw,22px); }
.iq-lang__btn{ list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:5px; height:26px; padding:0 9px; border:1px solid color-mix(in srgb,currentColor 22%,transparent); border-radius:999px; font-family:var(--iq-body); font-size:12px; font-weight:650; letter-spacing:-.01em; color:inherit; line-height:1; }
.iq-lang__btn::-webkit-details-marker{ display:none; }
.iq-lang__btn:hover{ border-color:color-mix(in srgb,currentColor 50%,transparent); }
.iq-lang__chev{ width:9px; height:9px; opacity:.65; transition:transform .18s ease; }
.iq-lang[open] .iq-lang__chev{ transform:rotate(180deg); }
.iq-lang__menu{ position:absolute; top:calc(100% + 8px); left:0; min-width:152px; background:var(--iq-bg); border:1px solid var(--iq-line); border-radius:12px; box-shadow:0 14px 34px rgba(0,0,0,.14); padding:6px; display:flex; flex-direction:column; gap:2px; z-index:1002; }
.iq-lang__opt{ display:flex; align-items:baseline; gap:5px; padding:8px 10px; border-radius:8px; font-size:13px; font-weight:560; color:var(--iq-ink); text-decoration:none; white-space:nowrap; }
.iq-lang__opt:hover{ background:rgba(0,0,0,.05); }
.iq-lang__opt strong{ font-weight:700; }
.nav.iq-membernav .iq-lang__btn{ color:var(--iq-accent); }
.nav.iq-membernav .iq-lang__menu{ background:#1b1b18; border-color:rgba(255,255,255,.14); box-shadow:0 14px 34px rgba(0,0,0,.45); }
.nav.iq-membernav .iq-lang__opt{ color:var(--iq-bg); }
.nav.iq-membernav .iq-lang__opt:hover{ background:rgba(255,255,255,.08); }

/* Notifications â€” badge non-lu dans le nav membre + indicateurs de la liste portail */
.nav.iq-membernav .nav__notif{ display:inline-flex; align-items:center; }
.nav__notif-badge{ display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; margin-left:7px; padding:0 5px; border-radius:999px; background:var(--iq-accent); color:var(--iq-panel-ink); font-size:11px; font-weight:750; line-height:1; }
/* Menu hamburger du portail (≤992px — MÊME seuil que la bascule de style.css) :
   le panneau mobile hérite du fond BLANC de la nav publique, illisible avec les
   liens en vert accent du portail. On lui rend le fond encre. [Bêta-test] */
@media (max-width:992px){
  .nav.iq-membernav .nav__links{ background:var(--iq-ink); }
  .nav.iq-membernav .nav__link{ border-bottom-color:rgba(255,255,255,.14); }
}
.iq-notif-item .iq-status:before{ display:none; } /* l'indicateur de notif remplace le marqueur du composant */
.iq-notif-item.is-unread .t{ font-weight:650; }
/* [Bêta-test] Corps des annonces/notifications : mise en forme légère (paragraphes,
   gras, italique, liens). wpautop enveloppe chaque paragraphe dans un <p>. */
.iq-announcement-body p,
.iq-notif-body p,
.iq-notif-item .m p{ margin:0 0 .6em; }
.iq-announcement-body p:last-child,
.iq-notif-body p:last-child,
.iq-notif-item .m p:last-child{ margin-bottom:0; }
.iq-announcement-body a,
.iq-notif-body a,
.iq-notif-item .m a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }
.iq-notif-dot{ display:inline-block; width:8px; height:8px; margin-right:6px; border-radius:999px; background:var(--iq-panel-ink); vertical-align:middle; }

/* Pastille Â« membre professionnel Â» (rÃ©pertoire + profil public) */
.iq-badge-pro{ display:inline-flex; align-items:center; vertical-align:middle; margin-left:7px; padding:2px 9px; border-radius:999px; background:var(--iq-accent); color:var(--iq-panel-ink); font-size:10.5px; font-weight:750; letter-spacing:.06em; text-transform:uppercase; line-height:1.5; white-space:nowrap; }
.iq-artist-row .iq-badge-pro{ font-size:9.5px; padding:1px 7px; }

/* PrÃ©fÃ©rences de notifications (panneau repliable de la page Notifications) */
/* Même peau que la boîte « Critères de reconnaissance » (.iq-service-criteria) :
   panneau teinté translucide sur la surface accent, pas de blanc tranchant. */
.iq-notif-prefs{ border-top:0; margin-top:clamp(14px,1.8vw,22px); padding:clamp(16px,2.2vw,24px); background:color-mix(in srgb,var(--iq-panel-ink) 7%,transparent); border:0; border-radius:16px; color:var(--iq-panel-ink); }
.iq-notif-prefs > summary{ cursor:pointer; list-style:none; margin-bottom:0; }
/* Le résumé porte la classe .iq-section-title (titre géant) : on le ramène à
   une taille de sous-titre, cohérente avec la boîte. */
.iq-notif-prefs > summary.iq-section-title{ font-size:clamp(15px,1.6vw,18px); letter-spacing:-.02em; line-height:1.2; }
.iq-notif-prefs > summary.iq-section-title:before{ width:8px; height:8px; }
.iq-notif-prefs > summary::-webkit-details-marker{ display:none; }
.iq-notif-prefs > summary:after{ content:"+"; float:right; font-weight:650; }
.iq-notif-prefs[open] > summary:after{ content:"\2013"; }
.iq-notif-prefs[open] > summary{ margin-bottom:10px; }
.iq-notif-prefs .checkbox-label{ display:flex; gap:10px; align-items:flex-start; margin:10px 0; }
.iq-notif-prefs .checkbox-label input{ margin-top:4px; }

/* =====================================================================
   RÃ‰PERTOIRE â€” port fidÃ¨le. Jetons locaux courts pour coller Ã  la rÃ©f.
   ===================================================================== */
.iq-repertoire{
  --bg:var(--iq-bg); --ink:var(--iq-ink); --muted:var(--iq-muted); --line:var(--iq-line);
  --soft:var(--iq-soft); --accent:var(--iq-accent); --panel-ink:var(--iq-panel-ink);
  --gut:var(--iq-gut); --gap:var(--iq-gap); --radius:var(--iq-image-radius);
  --display:var(--iq-display); --ease:var(--iq-ease); --top-h:var(--iq-top-h);
  --discover-h:var(--iq-discover-h);
  font-family:var(--iq-body); color:var(--ink);
  margin-top:0; min-height:100vh;
  display:grid; grid-template-columns:minmax(0,1fr) var(--iq-open);
  transition:grid-template-columns .32s var(--ease);
}
body.side-closed .iq-repertoire{ grid-template-columns:minmax(0,1fr) var(--iq-closed); }
.iq-repertoire *{ box-sizing:border-box; }
.iq-repertoire a{ text-decoration:none; color:inherit; }
.iq-repertoire button{ cursor:pointer; background:none; border:0; color:inherit; font:inherit; }
/* Neutralise la rÃ¨gle globale du thÃ¨me `main { margin/padding !important }`
   (notre en-tÃªte, footer et contenu doivent toucher les bords de la colonne). */
.iq-main{ min-width:0; margin:0 !important; padding:var(--nav-height) 0 0 !important; } /* padding haut = dÃ©gage la nav fixe partagÃ©e ; le panneau, lui, touche le haut */
/* GouttiÃ¨re par section (la rÃ©f : .main sans padding, chaque section en .pad) */
.iq-rep-hero,.iq-tools,.iq-discovery,.iq-featured,.iq-grid-wrap,.iq-moodboard{
  padding-left:var(--gut); padding-right:var(--gut);
}
.iq-ui{ font-size:12px; line-height:1; font-weight:680; letter-spacing:-.025em; }
.iq-small{ font-size:14px; line-height:1.18; font-weight:560; letter-spacing:-.035em; color:var(--muted); }
.iq-repertoire :where(a,button,input):focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

/* En-tÃªte (dans la colonne principale) â€” rÃ©f .top */
.iq-top{ position:sticky; top:0; z-index:300; height:var(--top-h);
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:24px;
  background:var(--bg); border-bottom:1px solid rgba(0,0,0,.08); }
.iq-brand{ font-family:var(--display); font-weight:var(--iq-display-weight); font-size:23px;
  letter-spacing:-.04em; color:var(--ink); display:inline-flex; align-items:center; gap:9px; }
.iq-brand:before{ content:""; width:9px; height:9px; border-radius:1px; background:var(--accent); }
.iq-nav{ display:flex; align-items:center; }
.iq-nav a{ display:flex; align-items:center; height:var(--top-h); padding:0 16px;
  border-left:1px solid rgba(0,0,0,.08); color:var(--muted); font-size:14px; }
.iq-nav a:hover,.iq-nav a.now,.iq-nav a.active{ background:rgba(255,255,255,.65); color:var(--ink); }

/* (Retiré août 2026 : .iq-modebar / .iq-modebar-label — ancienne barre de modes,
   remplacée par la sous-barre .iq-subbar ; aucun usage PHP/JS restant.) */
.iq-modetabs{ position:relative; display:flex; justify-content:center; gap:5px; padding:6px;
  border-radius:999px; background:var(--accent); color:var(--panel-ink);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--panel-ink) 14%,transparent); }
.iq-modetabs button{ min-width:clamp(106px,11vw,154px); min-height:46px; border:0; border-radius:999px;
  padding:0 18px; background:transparent; color:var(--panel-ink); cursor:pointer;
  font-size:12px; font-weight:760; letter-spacing:-.015em;
  transition:background .2s var(--ease),color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease); }
.iq-modetabs button:hover{ background:color-mix(in srgb,white 28%,transparent); transform:translateY(-1px); }
.iq-modetabs button.on{ background:var(--ink); color:var(--bg); box-shadow:0 7px 18px rgba(0,0,0,.14); }
.iq-mode-status{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* HÃ©ro â€” rÃ©f .intro */
.iq-rep-hero{ display:grid; grid-template-columns:1fr;
  gap:clamp(28px,3vw,48px); align-items:start;
  padding-top:clamp(34px,4vw,64px); padding-bottom:clamp(48px,4.8vw,80px);
  border-bottom:1px solid rgba(0,0,0,.08); }
.iq-rep-hero h1{ font-family:var(--display); font-weight:var(--iq-display-weight);
  /* Entre-deux : nettement plus discret qu'avant (100px), un cran au-dessus du
     titre du panneau vert (52px) pour garder la hiérarchie du héro. (vw et non
     cqi : Safari < 16 rejetait la déclaration entière avec cqi.) */
  font-size:clamp(40px,5.2vw,74px); line-height:.88; letter-spacing:-.05em; max-width:none; }
.iq-lead{ margin-top:12px; max-width:31ch; font-size:clamp(17px,1.35vw,22px);
  line-height:1.08; letter-spacing:-.048em; font-weight:560; }
/* Slogan du héro un peu plus grand que les .iq-lead génériques. [Bêta-test] */
.iq-rep-copy .iq-lead{ width:100%; max-width:none; font-size:clamp(19px,1.6vw,26px); }
/* Lien dans le slogan (ex. posture sur l'IA) — même esprit que le lien du commissaire */
.iq-lead a{ color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; transition:color .15s var(--ease); }
.iq-lead a:hover{ color:var(--accent); }
/* Page « posture IA » : texte courant réparti sur deux colonnes */
.iq-posture-cols{ column-count:2; column-gap:clamp(30px,4vw,64px); }
.iq-posture-cols > :first-child{ margin-top:0; }
@media(max-width:760px){ .iq-posture-cols{ column-count:1; } }
.iq-quick{ display:flex; gap:7px; flex-wrap:wrap; margin-top:16px; }
.iq-quick span{ display:inline-flex; align-items:center; min-height:29px; border-radius:999px;
  padding:0 10px; background:rgba(255,255,255,.72); color:var(--muted); }
.iq-quick b{ color:var(--ink); margin-right:5px; }
.iq-hero-visuals{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(10px,1.1vw,16px); align-items:center; padding:clamp(14px,1.45vw,22px);
  border-radius:clamp(18px,1.6vw,26px); background:#fff;
  box-shadow:0 10px 30px rgba(0,0,0,.1); }
.iq-hero-tile{ position:relative; aspect-ratio:1/1; border-radius:var(--radius); overflow:hidden;
  background:var(--c,#d66a2c) center/cover; box-shadow:0 12px 34px rgba(0,0,0,.055); }
.iq-tile-cap{ position:absolute; left:10px; right:10px; bottom:10px; max-width:calc(100% - 20px);
  display:flex; justify-content:space-between; gap:10px; align-items:center; border-radius:999px;
  background:rgba(255,255,255,.92); padding:9px 10px; }
.iq-tile-cap b{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.iq-tile-cap span{ color:var(--muted); flex:0 0 auto; }

/* Coups de cœur du commissaire sous l'introduction, dans un plateau pleine largeur. */
.iq-hero-curation{ min-width:0; width:100%; }
.iq-rep-hero .iq-featured{ padding-left:0; padding-right:0; margin:0; }
.iq-rep-hero .iq-section-head{ margin:0 8px 12px 0; align-items:center; justify-content:flex-end; }
.iq-rep-hero .iq-section-head h2{ font-size:clamp(16px,1.5vw,23px); line-height:1.04; letter-spacing:-.03em; }
.iq-rep-hero .iq-section-head h2:before{ width:8px; height:8px; }
.iq-rep-hero .iq-section-head .iq-small{ display:none; }
.iq-curation-shell{ --iq-curation-gap:clamp(10px,1.1vw,16px); min-width:0; }
.iq-curation-carousel{ position:relative;
  padding:clamp(14px,1.45vw,22px); border-radius:clamp(18px,1.6vw,26px); background:#fff;
  box-shadow:0 10px 30px rgba(0,0,0,.1); overflow:hidden; }
.iq-rep-hero .iq-curation-carousel .iq-grid{ display:grid; grid-template-columns:none;
  grid-auto-flow:column; grid-auto-columns:calc((100% - (3 * var(--iq-curation-gap))) / 4);
  gap:var(--iq-curation-gap); padding:0; background:transparent; box-shadow:none; border-radius:0;
  overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  scrollbar-width:none; }
.iq-rep-hero .iq-curation-carousel .iq-grid::-webkit-scrollbar{ display:none; }
.iq-rep-hero .iq-curation-carousel .iq-card{ scroll-snap-align:start; scroll-snap-stop:always; }
.iq-curation-controls{ display:flex; justify-content:flex-end; align-items:center; gap:6px; min-height:32px; margin-top:9px; padding-right:4px; }
.iq-curation-controls[hidden]{ display:none; }
.iq-repertoire .iq-curation-nav{ position:static; width:32px; height:32px; display:grid; place-items:center;
  border:1px solid rgba(17,17,15,.18); /* repli Safari < 16.2 (sans lui : flèches sans bordure) */
  border:1px solid color-mix(in srgb,var(--ink) 18%,transparent); border-radius:999px;
  background:#fff; color:var(--ink); box-shadow:none; font-size:14px; line-height:1;
  transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease); }
.iq-repertoire .iq-curation-nav svg{ display:block; width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.iq-repertoire .iq-curation-nav:not(:disabled):hover,.iq-repertoire .iq-curation-nav:not(:disabled):focus-visible{ background:var(--ink); color:var(--bg); border-color:var(--ink); transform:translateY(-1px); }
.iq-repertoire .iq-curation-nav:disabled{ cursor:default; opacity:.28; background:#fff; color:var(--ink); transform:none; }
.iq-repertoire .iq-curation-nav[hidden]{ display:none; }

/* Outils â€” rÃ©f .tools (mince, ombre, pas de bordure) */
.iq-tools{ position:sticky; top:calc(var(--nav-height) + var(--iq-abo,0px)); z-index:250;
  background:var(--bg); /* repli Safari < 16.2 (iPad) : sans lui, color-mix est rejeté → barre TRANSPARENTE */
  background:color-mix(in srgb,var(--bg) 94%,white); padding-top:7px; padding-bottom:7px;
  box-shadow:0 1px 0 rgba(0,0,0,.055),0 10px 24px rgba(0,0,0,.035); }
.iq-search{ height:38px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px;
  border-radius:999px; background:rgba(255,255,255,.88); box-shadow:inset 0 0 0 1px rgba(0,0,0,.055);
  padding:0 8px 0 12px; overflow:hidden; }
.iq-search > span:first-child{ color:var(--muted); white-space:nowrap; }
#iq-q{ min-width:0; height:100%; border:0; outline:0; background:transparent; font-size:15px; line-height:1; letter-spacing:-.025em; font-weight:560; }
#iq-q::placeholder{ color:#aaa8a1; }
.iq-count{ height:26px; display:inline-flex; align-items:center; border-radius:999px; padding:0 9px; background:var(--soft); color:var(--muted); white-space:nowrap; }
/* (Retiré août 2026 : .iq-facets / .iq-facet / .iq-chip / .search-open — ancienne
   rangée de filtres-pastilles, remplacée par les menus à cases .iq-ms ; aucun
   usage PHP/JS restant.) */

/* Recherche commune aux trois modes */
/* [Bêta-test] Barre du haut : [Filtres] [recherche] [tri]. */
.iq-tool-row{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:8px; align-items:center; }
/* Tiroir de filtres : sa propre rangée sous la barre, avec un peu d'air quand ouvert. */
.iq-repertoire.filters-open .iq-filter-drawer--inline{ margin-top:8px; }
/* 2e rangée : tri + filtres (toujours visibles), sous la barre de recherche */
.iq-tool-row--filters{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:8px; }
/* Tiroir horizontal de filtres : pastilles en ligne, replié par défaut,
   s'ouvre vers la droite (transition de largeur) sur la même rangée. */
.iq-filter-drawer--inline{ display:flex; flex-wrap:nowrap; align-items:center; gap:8px; padding:0; margin:0; grid-template-columns:none;
  max-width:0; overflow:hidden; opacity:0; transition:max-width .38s var(--ease), opacity .25s var(--ease); }
.iq-repertoire.filters-open .iq-filter-drawer--inline{ display:flex; max-width:1200px; opacity:1; overflow:visible; flex-wrap:wrap; }
.iq-filter-drawer--inline .iq-filter-group{ display:inline-flex; align-items:center; gap:9px; height:53px; padding:0 15px; border-radius:999px; background:rgba(255,255,255,.62); box-shadow:inset 0 0 0 1px rgba(0,0,0,.055); }
.iq-filter-drawer--inline .iq-filter-group label{ margin:0; }
.iq-filter-drawer--inline .iq-filter-group select{ width:auto; padding:0 4px 0 0; }
/* Sélecteur de mode : fond gris pâle, sélection en noir */
.iq-tools .iq-modetabs{ height:53px; gap:3px; padding:4px; background:var(--soft); color:var(--ink);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06); }
.iq-tools .iq-modetabs button{ display:inline-flex; align-items:center; gap:7px; min-width:auto; min-height:44px; padding:0 17px; color:var(--muted);
  font-size:14px; font-weight:680; }
.iq-tools .iq-modetabs button:hover{ background:transparent; color:var(--ink); transform:none; }
.iq-tools .iq-modetabs button.on{ background:var(--ink); color:var(--bg); box-shadow:none; }
.iq-tools .iq-modetabs .iq-mode-ic{ width:15px; height:15px; flex:0 0 auto; }
/* Tri : sélection discrète (gris léger) ; texte foncé qu'il soit sélectionné ou non */
.iq-tools .iq-grid-sort button{ color:var(--ink); }
.iq-tools .iq-grid-sort button.on{ background:#dad8d0; background:color-mix(in srgb,var(--ink) 14%,var(--soft)); color:var(--ink); }
.iq-search{ height:53px; grid-template-columns:auto auto minmax(0,1fr) auto; gap:9px; padding:0 9px 0 15px; }
.iq-search > .iq-search-icon{ color:var(--ink); font-family:var(--display); font-size:21px; line-height:1; transform:translateY(-1px); }
.iq-search-label{ color:var(--muted); white-space:nowrap; }
#iq-q{ font-size:14px; }
.iq-count{ height:30px; min-width:64px; justify-content:center; padding:0 10px; }
.iq-grid-sort{ height:53px; display:flex; align-items:center; gap:3px; padding:4px; border-radius:999px;
  background:var(--soft); box-shadow:inset 0 0 0 1px rgba(0,0,0,.055); }
.iq-grid-sort-label{ padding:0 7px 0 9px; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.035em; }
.iq-grid-sort button{ min-height:44px; border-radius:999px; padding:0 14px; color:var(--muted);
  font-size:14px; font-weight:680; transition:background .18s var(--ease),color .18s var(--ease); }
.iq-grid-sort button:hover{ color:var(--ink); }
.iq-grid-sort button.on{ background:var(--ink); color:var(--bg); }
.iq-repertoire.is-discover .iq-sort-wrap,.iq-repertoire.is-moodboard .iq-sort-wrap{ display:none; }
/* Bouton « Tri » : caché sur ordi (les pastilles sont visibles) ; affiché sur mobile
   où il ouvre les pastilles en popover — même langage visuel que « Filtres ». */
.iq-sort-wrap{ position:relative; }
.iq-sort-toggle{ display:none; align-items:center; gap:7px; height:53px; border:1px solid rgba(17,17,15,.18); border:1px solid color-mix(in srgb,var(--ink) 18%,transparent); border-radius:999px; padding:0 16px; background:transparent; color:var(--ink); white-space:nowrap; font-family:var(--iq-body); font-size:14px; font-weight:680; cursor:pointer; transition:background .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease); }
.iq-sort-toggle:hover,.iq-sort-wrap.sort-open .iq-sort-toggle{ border-color:color-mix(in srgb,var(--ink) 34%,transparent); background:#fff; box-shadow:0 2px 6px rgba(17,17,15,.12); }
.iq-sort-toggle .iq-ms-caret{ width:11px; height:8px; transition:transform .2s var(--ease); }
.iq-sort-wrap.sort-open .iq-sort-toggle .iq-ms-caret{ transform:rotate(180deg); }
.iq-filter-toggle,.iq-filter-reset{ height:53px; border:1px solid rgba(17,17,15,.18); border:1px solid color-mix(in srgb,var(--ink) 18%,transparent); border-radius:999px; padding:0 17px; background:transparent; color:var(--ink); white-space:nowrap; font-family:var(--iq-body); font-size:14px; font-weight:680; transition:background .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease); }
/* Le reset « .iq-repertoire button{ font:inherit } » (spéc. 0,1,1) écrase la fonte des
   boutons à sélecteur simple (0,1,0 : Filtres, Effacer, Tri). On re-cible avec + de
   spécificité pour garder TOUTE la barre à la même typo (mobile et ordi). */
.iq-tools .iq-filter-toggle,.iq-tools .iq-filter-reset,.iq-tools .iq-sort-toggle{ font-size:14px; font-weight:680; }
/* Bouton blanc plein : « Filtres » doit clairement se lire comme un bouton cliquable. [Bêta-test] */
.iq-filter-toggle{ display:inline-flex; align-items:center; gap:9px; background:#fff; box-shadow:0 1px 2px rgba(17,17,15,.07); }
.iq-filter-toggle span{ min-width:22px; height:22px; display:grid; place-items:center; border-radius:999px; background:var(--soft); color:var(--muted); font-size:10px; }
.iq-filter-reset:hover{ border-color:color-mix(in srgb,var(--ink) 34%,transparent); background:rgba(255,255,255,.65); }
.iq-filter-toggle:hover,.iq-repertoire.filters-open .iq-filter-toggle{ border-color:color-mix(in srgb,var(--ink) 34%,transparent); background:#fff; box-shadow:0 2px 6px rgba(17,17,15,.12); }
.iq-repertoire.has-active-filters .iq-filter-toggle span{ background:var(--accent); color:var(--panel-ink); }
.iq-filter-reset{ color:var(--muted); }
.iq-filter-reset[hidden]{ display:none; }
.iq-filter-drawer{ display:none; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding-top:10px; }
.iq-repertoire.filters-open .iq-filter-drawer{ display:grid; }
/* Variante « inline » : rangée flex à pastilles DIMENSIONNÉES AU CONTENU (au lieu de
   3 colonnes 1fr égales qui laissaient un vide inutile à droite de chaque menu). */
.iq-repertoire.filters-open .iq-filter-drawer.iq-filter-drawer--inline{ display:flex; flex-wrap:wrap; gap:8px; }
.iq-filter-group{ min-width:0; border-radius:13px; background:rgba(255,255,255,.62); box-shadow:inset 0 0 0 1px rgba(0,0,0,.055); padding:9px 12px 10px; }
.iq-filter-group label{ display:block; margin-bottom:4px; color:var(--muted); font-size:10px; font-weight:760; letter-spacing:.025em; text-transform:uppercase; }
.iq-filter-group select{ width:100%; min-width:0; border:0; outline:0; padding:0 22px 0 0; background:transparent; color:var(--ink); font:inherit; font-size:14px; font-weight:620; letter-spacing:-.025em; cursor:pointer; }
.iq-active-filters{ display:flex; flex-wrap:wrap; gap:7px; padding-top:8px; }
.iq-active-filters:empty{ display:none; }
.iq-active-filter{ min-height:32px; border:0; border-radius:999px; padding:0 11px; background:var(--accent); color:var(--panel-ink); font-size:11px; font-weight:720; letter-spacing:-.015em; }
.iq-active-filter:hover{ filter:brightness(.96); }
/* Filtres à choix multiple (cases à cocher) — plusieurs valeurs par filtre. */
.iq-ms{ position:relative; }
.iq-ms-btn{ display:inline-flex; align-items:center; gap:8px; padding:0; border:0; background:transparent; color:var(--ink); font:inherit; font-size:14px; font-weight:620; letter-spacing:-.025em; cursor:pointer; max-width:210px; }
.iq-ms-value{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:178px; }
.iq-ms-caret{ width:11px; height:auto; flex:none; opacity:.65; transition:transform .18s var(--ease); }
.iq-ms.is-open .iq-ms-caret{ transform:rotate(180deg); }
.iq-ms-pop{ position:absolute; top:calc(100% + 9px); left:0; z-index:70; min-width:230px; max-height:340px; overflow:auto; overscroll-behavior:contain; display:flex; flex-direction:column; gap:1px; padding:8px; background:#fff; border-radius:15px; box-shadow:0 18px 52px rgba(0,0,0,.17), inset 0 0 0 1px rgba(0,0,0,.06); }
.iq-ms-pop[hidden]{ display:none; }
/* Filtre de liste dans le popover (longues listes, ex. ~300 artistes). */
.iq-ms-filter{ width:100%; min-height:38px; margin:0 0 6px; padding:0 12px; border:0; border-radius:10px; background:var(--soft); color:var(--ink); font:inherit; font-size:13.5px; font-weight:560; letter-spacing:normal; outline:0; }
.iq-ms-filter::placeholder{ color:var(--muted); }
.iq-ms-filter:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
/* .iq-ms en préfixe → bat « .iq-filter-group label » (qui imposait block + majuscules). */
.iq-ms .iq-ms-opt{ display:flex; align-items:center; gap:13px; margin:0; padding:9px 12px; border-radius:10px; cursor:pointer; font-size:13.5px; font-weight:560; line-height:1.25; letter-spacing:normal; text-transform:none; color:var(--ink); }
.iq-ms .iq-ms-opt[hidden]{ display:none; } /* le display:flex ci-dessus battrait sinon l'attribut hidden */
.iq-ms .iq-ms-opt:hover{ background:var(--soft); }
.iq-ms .iq-ms-opt input{ width:16px; height:16px; flex:none; margin:0; accent-color:var(--accent); cursor:pointer; }
.iq-ms .iq-ms-opt span{ min-width:0; }

/* Sections + grille â€” rÃ©f .section-head / .grid / .card */
.iq-section-head{ display:flex; justify-content:space-between; gap:18px; align-items:flex-end; margin:clamp(18px,2.4vw,32px) 0 12px; }
/* [Bêta-test] Bascule de vue « Tous les projets » ⟷ « Coups de cœur » : groupe-
   pastille segmenté, MÊME langage que « Nouveauté / Aléatoire » et les onglets de
   mode (fond doux, bouton actif en encre pleine). Clairement des boutons. */
.iq-view-toggle{ display:inline-flex; align-items:center; gap:3px; height:53px; padding:4px; border-radius:999px; background:var(--soft); box-shadow:inset 0 0 0 1px rgba(0,0,0,.055); }
.iq-view-toggle button{ min-height:44px; border-radius:999px; padding:0 19px; border:0; background:transparent; color:var(--muted); font-family:var(--iq-body); font-size:14px; font-weight:680; letter-spacing:-.015em; white-space:nowrap; cursor:pointer; transition:background .18s var(--ease),color .18s var(--ease); }
.iq-view-toggle button:hover{ color:var(--ink); }
.iq-view-toggle button.is-active{ background:var(--ink); color:var(--bg); }
.iq-view-toggle button:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.iq-view-short{ display:none; } /* libellé court « Tous » : affiché seulement sur mobile */
/* [Bêta-test] Sous-barre : vue (gauche) · modes (centre) · statut (droite). Elle
   se replie quand on défile vers le bas et réapparaît en remontant (JS ajoute
   .subbar-hidden sur .iq-repertoire). La barre de recherche, elle, reste collée. */
.iq-subbar{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; margin-top:10px; overflow:hidden; max-height:72px; transition:max-height .3s var(--ease), opacity .24s var(--ease), margin-top .3s var(--ease); }
.iq-subbar__view{ justify-self:start; min-width:0; }
.iq-subbar > .iq-modetabs{ justify-self:center; }   /* colonnes 1fr égales → onglets VRAIMENT centrés (ordi) */
.iq-subbar__status{ justify-self:end; min-width:0; color:var(--muted); white-space:nowrap; }
.iq-subbar__title{ font-family:var(--display); font-weight:var(--iq-display-weight); font-size:clamp(22px,2.4vw,34px); line-height:1; letter-spacing:-.04em; color:var(--ink); }
.iq-repertoire.subbar-hidden .iq-subbar{ max-height:0; opacity:0; margin-top:0; pointer-events:none; }
/* Modes Découverte/Moodboard : le décompte « X projets affichés » n'a plus de sens (pas de grille). */
.iq-repertoire.is-discover .iq-subbar__status,.iq-repertoire.is-moodboard .iq-subbar__status{ visibility:hidden; }

/* ---- Mobile (≤640px) : « Tri » en bouton-menu, recherche gardée à taille lisible.
   Placé APRÈS les règles de base .iq-subbar (les media queries n'ajoutent pas de
   spécificité : c'est l'ordre source qui tranche). ------------------------------- */
/* Barre compacte : pilotée par la LARGEUR DU CONTENU (@container sur .iq-main),
   pas par la fenêtre — le panneau IQ ouvert retire ~360px sans changer l'écran
   (ex. 1200px de fenêtre ⇒ ~840px de contenu : la grille 1fr/auto/1fr de la
   sous-barre déborderait, « Coups de cœur » passait sous les onglets). Le JS de
   relocateSort suit la même mesure. Repli @media pour Safari < 16 plus bas. */
@container (max-width:900px){
  /* Ligne 1 (toujours collée) : Filtres + recherche. « Tri » est déplacé par le JS
     dans la sous-barre (voir plus bas) ; il n'est donc plus dans la barre du haut. */
  .iq-tools .iq-tool-row{ display:flex; align-items:center; gap:8px; }
  .iq-tools .iq-tool-row .iq-filter-toggle{ flex:0 0 auto; }
  .iq-tools .iq-tool-row .iq-search{ flex:1 1 auto; min-width:0; }
  .iq-tools .iq-search .iq-search-label{ display:none; } /* redondant avec le placeholder */
  .iq-tools .iq-search #iq-q{ min-width:0; }             /* laisse l'input rétrécir sans déborder */

  /* « Tri » : bouton visible, pastilles en popover sous le bouton (aligné à gauche
     puisqu'il est désormais à gauche de la sous-barre). */
  .iq-tools .iq-sort-toggle{ display:inline-flex; }
  /* Options du tri : MENU DÉROULANT simple (liste verticale, fond blanc opaque),
     ouvert à droite sous le bouton — même esprit que le popover des filtres, sans cases. */
  .iq-tools .iq-sort-wrap > .iq-grid-sort{ position:absolute; top:calc(100% + 6px); right:0; z-index:60;
    display:none; flex-direction:column; align-items:stretch; gap:2px; height:auto; min-width:190px;
    padding:7px; background:#fff; border-radius:14px;
    box-shadow:0 16px 40px rgba(17,17,15,.20), inset 0 0 0 1px rgba(0,0,0,.06); }
  .iq-tools .iq-sort-wrap.sort-open > .iq-grid-sort{ display:flex; }
  .iq-tools .iq-sort-wrap > .iq-grid-sort button{ justify-content:flex-start; width:100%; min-height:44px;
    padding:0 13px; border-radius:9px; text-align:left; color:var(--ink); }
  .iq-tools .iq-sort-wrap > .iq-grid-sort button:hover{ background:var(--soft); }
  .iq-tools .iq-sort-wrap > .iq-grid-sort button.on{ background:var(--ink); color:var(--bg); }

  /* Sous-barre : bascule « Tous / Coups de cœur » à GAUCHE, « Tri » repoussé à DROITE,
     puis les onglets de mode pleine largeur. overflow:visible pour ne pas rogner le
     menu ; le repli au défilement reste net grâce à l'opacité (règle de base). */
  .iq-tools .iq-subbar{ display:flex; flex-wrap:wrap; gap:8px; max-height:220px; overflow:visible; }
  /* Repli au défilement : re-affirmé avec + de spécificité (sinon .iq-tools .iq-subbar
     ci-dessus, plus bas dans le fichier, l'emporterait). */
  .iq-repertoire.subbar-hidden .iq-tools .iq-subbar{ max-height:0; }
  .iq-tools .iq-subbar__view{ flex:0 1 auto; }
  /* « Tous les projets » → « Tous » sur mobile : la bascule rétrécit et « Tri » tient
     sur la même ligne. */
  .iq-tools .iq-view-toggle .iq-view-full{ display:none; }
  .iq-tools .iq-view-toggle .iq-view-short{ display:inline; }
  .iq-tools .iq-subbar > .iq-sort-wrap{ flex:0 0 auto; margin-left:auto; } /* pousse « Tri » à droite */
  .iq-tools .iq-subbar > .iq-modetabs{ flex:1 1 100%; margin:0; }
  .iq-tools .iq-modetabs button{ flex:1 1 0; min-width:0; padding:0 10px; gap:6px; justify-content:center; }
  .iq-tools .iq-modetabs .iq-mode-ic{ width:14px; height:14px; }
  .iq-tools .iq-subbar__status{ display:none; }         /* décompte masqué : place précieuse */

  /* Modes Ambiance / Découverte : la bascule « Tous / Coups de cœur » disparaît aussi
     (non pertinente sans grille) → il ne reste que les onglets, le mur/paquet remonte. */
  .iq-repertoire.is-moodboard .iq-subbar__view,
  .iq-repertoire.is-discover .iq-subbar__view{ display:none; }
}
/* Repli Safari < 16 (pas de @container) : MÊMES règles, sur la largeur d'écran.
   Inerte dans les navigateurs modernes grâce au @supports not. Toute modification
   du bloc @container ci-dessus doit être répétée ici. */
@supports not (container-type: inline-size){
@media(max-width:900px){
  .iq-tools .iq-tool-row{ display:flex; align-items:center; gap:8px; }
  .iq-tools .iq-tool-row .iq-filter-toggle{ flex:0 0 auto; }
  .iq-tools .iq-tool-row .iq-search{ flex:1 1 auto; min-width:0; }
  .iq-tools .iq-search .iq-search-label{ display:none; }
  .iq-tools .iq-search #iq-q{ min-width:0; }
  .iq-tools .iq-sort-toggle{ display:inline-flex; }
  .iq-tools .iq-sort-wrap > .iq-grid-sort{ position:absolute; top:calc(100% + 6px); right:0; z-index:60;
    display:none; flex-direction:column; align-items:stretch; gap:2px; height:auto; min-width:190px;
    padding:7px; background:#fff; border-radius:14px;
    box-shadow:0 16px 40px rgba(17,17,15,.20), inset 0 0 0 1px rgba(0,0,0,.06); }
  .iq-tools .iq-sort-wrap.sort-open > .iq-grid-sort{ display:flex; }
  .iq-tools .iq-sort-wrap > .iq-grid-sort button{ justify-content:flex-start; width:100%; min-height:44px;
    padding:0 13px; border-radius:9px; text-align:left; color:var(--ink); }
  .iq-tools .iq-sort-wrap > .iq-grid-sort button:hover{ background:var(--soft); }
  .iq-tools .iq-sort-wrap > .iq-grid-sort button.on{ background:var(--ink); color:var(--bg); }
  .iq-tools .iq-subbar{ display:flex; flex-wrap:wrap; gap:8px; max-height:220px; overflow:visible; }
  .iq-repertoire.subbar-hidden .iq-tools .iq-subbar{ max-height:0; }
  .iq-tools .iq-subbar__view{ flex:0 1 auto; }
  .iq-tools .iq-view-toggle .iq-view-full{ display:none; }
  .iq-tools .iq-view-toggle .iq-view-short{ display:inline; }
  .iq-tools .iq-subbar > .iq-sort-wrap{ flex:0 0 auto; margin-left:auto; }
  .iq-tools .iq-subbar > .iq-modetabs{ flex:1 1 100%; margin:0; }
  .iq-tools .iq-modetabs button{ flex:1 1 0; min-width:0; padding:0 10px; gap:6px; justify-content:center; }
  .iq-tools .iq-modetabs .iq-mode-ic{ width:14px; height:14px; }
  .iq-tools .iq-subbar__status{ display:none; }
  .iq-repertoire.is-moodboard .iq-subbar__view,
  .iq-repertoire.is-discover .iq-subbar__view{ display:none; }
}
}
.iq-section-head h2{ font-family:var(--display); font-weight:var(--iq-display-weight); font-size:clamp(30px,3.6vw,54px); line-height:.9; letter-spacing:-.055em; display:flex; gap:10px; align-items:center; }
.iq-section-head h2:before{ content:""; width:10px; height:10px; border-radius:2px; background:var(--accent); flex:0 0 auto; }
.iq-grid{ display:grid; grid-template-columns:repeat(var(--iq-grid-cols, 3),minmax(0,1fr)); gap:var(--gap); }
/* La grille réagit à la LARGEUR DU CONTENU (pas du viewport). 4 colonnes
   seulement sur grand écran ; on bascule vite à 3 (images plus grandes —
   décision focus group), puis 2 et 1 quand ça se resserre. */
.iq-main{ container-type:inline-size; }
@container (max-width:1700px){ .iq-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@container (max-width:760px){ .iq-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@container (max-width:480px){ .iq-grid{ grid-template-columns:1fr; } }
/* Le carrousel reprend exactement les bascules de colonnes du répertoire. */
@container (max-width:1700px){
  .iq-rep-hero .iq-curation-carousel .iq-grid{ grid-auto-columns:calc((100% - (2 * var(--iq-curation-gap))) / 3); }
  .iq-hero-visuals{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .iq-hero-visuals > :nth-child(n+4){ display:none; }
}
@container (max-width:760px){
  .iq-rep-hero .iq-curation-carousel .iq-grid{ grid-auto-columns:calc((100% - var(--iq-curation-gap)) / 2); }
  .iq-hero-visuals{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .iq-hero-visuals > :nth-child(n+3){ display:none; }
}
@container (max-width:480px){
  .iq-rep-hero .iq-curation-carousel .iq-grid{ grid-auto-columns:100%; }
  .iq-hero-visuals{ grid-template-columns:1fr; }
  .iq-hero-visuals > :nth-child(n+2){ display:none; }
}
/* Repli Safari < 16 (iPad) : sans @container, la grille restait FIGÉE sur le
   réglage admin (ex. 4 colonnes serrées en portrait). Paliers équivalents
   approximés sur la largeur d'écran (contenu ≈ écran − panneau latéral).
   Ignoré par les navigateurs qui supportent les container queries. */
@supports not (container-type: inline-size){
  @media (max-width:1880px){
    .iq-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
    .iq-rep-hero .iq-curation-carousel .iq-grid{ grid-auto-columns:calc((100% - (2 * var(--iq-curation-gap))) / 3); }
  }
  @media (max-width:940px){
    .iq-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .iq-rep-hero .iq-curation-carousel .iq-grid{ grid-auto-columns:calc((100% - var(--iq-curation-gap)) / 2); }
  }
  @media (max-width:640px){
    .iq-grid{ grid-template-columns:1fr; }
    .iq-rep-hero .iq-curation-carousel .iq-grid{ grid-auto-columns:100%; }
  }
}
/* Respiration sous la barre d'outils collante : même gouttière haute que les
   modes Découverte et Ambiance, sinon la sous-barre touche la 1re rangée. */
.iq-grid-wrap{ padding-top:clamp(20px,2.6vw,38px); padding-bottom:clamp(40px,5vw,72px); }
.iq-grid-more{ display:flex; flex-direction:column; align-items:center; gap:10px; padding-top:clamp(24px,3vw,38px); color:var(--muted); }
.iq-grid-more[hidden]{ display:none; }
.iq-grid-more button{ min-height:46px; border:0; border-radius:999px; padding:0 20px; background:var(--ink); color:var(--bg); font-size:12px; font-weight:760; letter-spacing:-.01em; transition:transform .18s var(--ease),background .18s var(--ease); }
.iq-grid-more button:hover{ transform:translateY(-1px); background:var(--accent); color:var(--panel-ink); }
.iq-grid-more span{ font-size:10px; text-transform:uppercase; letter-spacing:.035em; }
/* Les coups de cœur sont le héro : ils restent visibles en tri/filtres. */
.iq-card{ position:relative; display:block; aspect-ratio:1/1; border-radius:var(--radius); background:var(--soft); overflow:hidden; isolation:isolate; cursor:pointer; transition:transform .28s var(--ease); }
/* Repli très vieux Safari (< 15, pas d'aspect-ratio) : carré via padding, sinon les
   cartes ont une hauteur nulle (enfants absolus) et la grille s'effondre. */
@supports not (aspect-ratio: 1/1){
  .iq-card::before{ content:""; display:block; padding-top:100%; }
}
/* Longs défilements (des centaines de cartes) : les cartes hors écran ne sont ni
   peintes ni gardées en mémoire GPU. Leur taille vient de la grille + aspect-ratio
   (enfants absolus) → aucun saut de mise en page. */
@supports (content-visibility: auto){
  .iq-card{ content-visibility:auto; }
}
.iq-card.is-hidden{ display:none; }
.iq-card:hover{ transform:translateY(-2px); }
.iq-card-link{ position:absolute; inset:0; z-index:1; display:block; color:inherit; text-decoration:none; }
.iq-card-flat{ position:absolute; inset:0; background:var(--c,#d66a2c) center/cover; }
.iq-badge,.iq-arrow{ position:absolute; top:14px; z-index:8; background:rgba(255,255,255,.92); border-radius:999px; }
.iq-badge{ left:14px; max-width:calc(100% - 68px); padding:9px 11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.iq-arrow{ right:14px; width:34px; height:34px; display:grid; place-items:center; }
.iq-repertoire .iq-tile-favorite{ position:absolute; top:14px; right:14px; z-index:12; width:38px; height:38px; display:grid; place-items:center; border:0; border-radius:999px; background:rgba(255,255,255,.94); color:var(--ink); box-shadow:0 5px 16px rgba(0,0,0,.1); font-family:var(--iq-body); font-size:18px; line-height:1; transition:transform .18s var(--ease),background .18s var(--ease),color .18s var(--ease); }
.iq-repertoire .iq-tile-favorite:hover,.iq-repertoire .iq-tile-favorite:focus-visible{ outline:0; transform:scale(1.06); background:var(--ink); color:var(--bg); }
.iq-repertoire .iq-tile-favorite.is-saved{ background:var(--ink); color:var(--bg); }
.iq-repertoire .iq-tile-favorite:disabled{ cursor:wait; opacity:.68; }
/* Icône « signet » des favoris (remplace le cœur, qui prêtait à confusion avec
   les « coups de cœur »). Contour par défaut ; rempli quand le bouton est actif. */
.iq-bookmark{ width:1em; height:1em; display:block; }
.is-saved .iq-bookmark,.is-active .iq-bookmark{ fill:currentColor; }
.iq-card-details{ position:absolute; left:10px; right:10px; bottom:10px; z-index:8; background:rgba(255,255,255,.94); border-radius:12px; padding:13px; opacity:0; transform:translateY(10px); transition:.24s var(--ease); }
.iq-card:hover .iq-card-details{ opacity:1; transform:translateY(0); }
.iq-card-details .iq-card-title{ font-family:var(--display); font-size:clamp(26px,2.3vw,38px); line-height:1.05; letter-spacing:-.055em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:break-word; word-break:break-word; }
.iq-card-details .iq-sub{ color:var(--muted); margin-top:6px; }
.iq-empty{ display:none; padding:80px 0 120px; font-family:var(--display); font-size:clamp(52px,8vw,116px); line-height:.84; letter-spacing:-.06em; color:var(--muted); }
@media(min-width:1180px){ .iq-card{ aspect-ratio:1/1; } }

/* Footer â€” rÃ©f .site-footer (bande gris-beige) */
.iq-footer{ background:#d8d6cd; color:var(--ink); margin-top:clamp(52px,7vw,110px); padding-top:clamp(44px,6vw,90px); padding-bottom:clamp(36px,5vw,72px); min-height:320px; }
.iq-footer-main{ display:grid; grid-template-columns:minmax(260px,.9fr) minmax(360px,1.1fr); gap:clamp(28px,5vw,86px); align-items:start; }
.iq-footer-kicker{ display:flex; align-items:center; gap:8px; margin-bottom:18px; color:rgba(17,17,15,.68); }
.iq-footer-kicker:before{ content:""; width:10px; height:10px; border-radius:2px; background:var(--ink); }
.iq-footer-statement h2{ font-family:var(--display); font-weight:var(--iq-display-weight); font-size:clamp(48px,6vw,104px); line-height:.82; letter-spacing:-.065em; max-width:8ch; }
.iq-footer-statement p{ margin-top:18px; max-width:34ch; color:rgba(17,17,15,.68); font-size:clamp(16px,1.3vw,21px); line-height:1.08; letter-spacing:-.035em; font-weight:560; }
.iq-footer-links{ display:grid; grid-template-columns:repeat(3,minmax(120px,1fr)); gap:clamp(18px,3vw,44px); }
.iq-footer-links h3{ font-size:12px; margin-bottom:14px; color:var(--ink); }
.iq-footer-links a{ display:block; margin-top:10px; color:rgba(17,17,15,.68); line-height:1.15; }
.iq-footer-links a:hover{ color:var(--ink); }
.iq-footer-bottom{ display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-top:clamp(44px,6vw,86px); padding-top:16px; border-top:1px solid rgba(17,17,15,.14); color:rgba(17,17,15,.58); font-size:13px; }

/* Bande commissaire â€” rÃ©utilise .iq-featured ; le nom est un lien dans le titre */
.iq-commissaire .iq-section-head h2 a{ color:inherit; text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:2px; text-underline-offset:4px; }
.iq-commissaire .iq-section-head h2 a:hover{ color:var(--accent); }

/* Modes exploratoires : explication et rÃ©sumÃ© dans une colonne latÃ©rale */
.iq-explore-side-card{ border-radius:var(--radius); background:var(--soft); padding:clamp(18px,2vw,26px); }
.iq-explore-kicker{ display:flex; align-items:center; gap:8px; color:var(--muted); text-transform:uppercase; letter-spacing:.035em; }
.iq-explore-kicker:before{ content:""; width:9px; height:9px; border-radius:2px; background:var(--accent); }
.iq-explore-side-card h2{ margin-top:10px; max-width:12ch; font-family:var(--display); font-weight:var(--iq-display-weight); font-size:clamp(29px,2.6vw,42px); line-height:.9; letter-spacing:-.05em; color:var(--ink); }
.iq-explore-side-card h2 b{ color:inherit; font-weight:inherit; }
.iq-explore-side-card p{ margin-top:11px; color:var(--muted); font-size:14px; line-height:1.35; letter-spacing:-.025em; }
.iq-explore-guide{ display:flex; flex-direction:column; gap:11px; margin-top:18px; padding-top:16px; border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent); }
.iq-explore-guide span{ display:flex; align-items:center; gap:10px; color:var(--ink); font-size:12px; line-height:1.22; }
.iq-explore-guide b{ flex:0 0 auto; width:23px; height:23px; display:grid; place-items:center; border-radius:999px; background:var(--ink); color:var(--bg); font-size:10px; }

/* Moodboard â€” lots paginÃ©s et proximitÃ© calculÃ©e cÃ´tÃ© serveur */
.iq-moodboard{ display:none; padding-top:clamp(20px,2.6vw,38px); padding-bottom:clamp(40px,6vw,90px); }
.iq-repertoire.is-moodboard .iq-grid-wrap,
.iq-repertoire.is-moodboard .iq-discovery,
.iq-repertoire.is-moodboard .iq-footer{ display:none; }
.iq-repertoire.is-moodboard .iq-moodboard{ display:block; }
.iq-mood-layout{ display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,350px); gap:clamp(18px,2.4vw,36px); align-items:start; }
.iq-mood-main{ min-width:0; }
/* Le `top` sticky suit la hauteur RÉELLE de l'en-tête collant (--iq-sticky-top,
   posée par le JS) : l'ancien « nav + 74px » supposait une barre d'outils mince,
   fausse depuis la sous-barre → les panneaux glissaient sous la barre. */
.iq-mood-side{ display:flex; flex-direction:column; gap:12px; position:sticky; top:calc(var(--iq-sticky-top, calc(var(--nav-height) + 74px)) + 12px); }
.iq-mood-head{ display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:clamp(14px,2vw,22px); color:var(--muted); }
.iq-mood-reset{ width:100%; min-height:42px; margin-top:14px; border:1px solid color-mix(in srgb,var(--ink) 22%,transparent); background:transparent; color:var(--ink); border-radius:999px; padding:7px 12px; font-size:11px; font-weight:780; text-transform:uppercase; letter-spacing:.02em; cursor:pointer; }
.iq-mood-reset:hover{ background:color-mix(in srgb,var(--ink) 7%,transparent); }
.iq-mood-wall{
  --mood-gap:clamp(12px,1.2vw,18px);
  --mood-gap-share:clamp(10.5px,1.05vw,15.75px);
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,max(180px,calc(12.5% - var(--mood-gap-share)))),1fr));
  grid-auto-flow:dense;
  gap:var(--mood-gap);
  width:100%;
  transition:opacity .18s var(--ease);
}
.iq-mood-tile{ position:relative; min-width:0; aspect-ratio:1; padding:0; border:0; border-radius:var(--radius); overflow:hidden; background:var(--soft); text-align:left; }
.iq-mood-open{ position:absolute; inset:0; z-index:1; width:100%; height:100%; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; text-align:left; }
.iq-mood-open:focus-visible{ outline:3px solid var(--ink); outline-offset:-3px; }
.iq-mood-img{ position:absolute; inset:0; background-size:cover; background-position:center; }
.iq-mood-tile.is-seed{ grid-column:span 2; grid-row:span 2; aspect-ratio:1; outline:2px solid var(--ink); outline-offset:-2px; }
.iq-mood-tile.is-entering{ animation:iqMoodEnter .34s cubic-bezier(.2,.72,.2,1) both; }
@keyframes iqMoodEnter{ from{ opacity:0; transform:translateY(8px) scale(.985); } to{ opacity:1; transform:none; } }
/* Nom de l'artiste : toujours visible, en haut Ã  gauche (comme les cartes du rÃ©pertoire) */
.iq-mood-artist{ position:absolute; top:12px; left:12px; z-index:3; max-width:calc(100% - 70px); padding:7px 12px; border-radius:999px; background:rgba(255,255,255,.92); color:var(--ink); font-size:13px; font-weight:680; letter-spacing:-.02em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.iq-repertoire .iq-mood-favorite{ top:12px; right:12px; width:36px; height:36px; }
/* Titre : secondaire, au survol, en bas */
.iq-mood-cap{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:22px 14px 12px; background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.55)); color:#fff; opacity:0; transition:opacity .2s; }
.iq-mood-tile:hover .iq-mood-cap{ opacity:1; }
.iq-mood-cap b{ font-size:14px; font-weight:600; line-height:1.15; overflow-wrap:break-word; word-break:break-word; }
/* Invite d'ouverture : seulement sur la graine, en bas Ã  gauche */
.iq-mood-tag{ position:absolute; left:14px; bottom:14px; z-index:4; display:none; align-items:center; gap:6px; padding:10px 14px; border-radius:999px; background:var(--ink); color:var(--bg); font-size:13px; font-weight:700; letter-spacing:-.02em; box-shadow:0 6px 18px rgba(0,0,0,.18); }
.iq-mood-tile.is-seed .iq-mood-tag{ display:inline-flex; }
.iq-mood-tile.is-seed .iq-mood-cap{ display:none; }
/* Pastille du nom d'artiste : seulement sur la vignette en vedette. */
.iq-mood-wall:not(.iq-comm-wall) .iq-mood-tile:not(.is-seed) .iq-mood-artist{ display:none; }
.iq-mood-wall.is-loading{ opacity:.62; pointer-events:none; }
.iq-mood-more{ display:flex; flex-direction:column; align-items:center; gap:9px; padding-top:clamp(24px,3vw,38px); color:var(--muted); }
.iq-mood-more[hidden]{ display:none; }
.iq-mood-more button{ min-height:44px; border:1px solid color-mix(in srgb,var(--ink) 24%,transparent); border-radius:999px; padding:0 19px; background:transparent; color:var(--ink); font-size:12px; font-weight:760; }
.iq-mood-more button:hover{ background:var(--ink); color:var(--bg); }

/* DÃ©couverte â€” rÃ©f */
.iq-discovery{ display:none; }
.iq-repertoire.is-discover .iq-grid-wrap,
.iq-repertoire.is-discover .iq-footer{ display:none; }
.iq-repertoire.is-discover .iq-discovery{ display:block; }
/* Snap intermédiaire : « proximity » (n'accroche que quand on est proche, ne piège
   pas le scroll) + « scroll-snap-stop:always » (on ne peut pas dépasser la zone
   Découverte d'un seul geste → accroche plus ferme qu'un proximity simple). */
html.iq-snap-discover{ scroll-snap-type:y proximity; }
.iq-repertoire.is-discover .iq-discover-layout{ scroll-snap-align:start; scroll-snap-stop:always; scroll-margin-top:calc(var(--iq-sticky-top, 180px) + 8px); }
.iq-discover-layout{ display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,350px); gap:clamp(18px,2.4vw,36px); align-items:start; padding-top:clamp(20px,2.6vw,38px); padding-bottom:clamp(24px,3vw,42px); min-height:0; }
.iq-media-col{ display:flex; flex-direction:column; align-items:stretch; justify-self:center; width:min(100%, var(--discover-h)); gap:0; }
.iq-discover-image{ position:relative; width:100%; aspect-ratio:1/1; border-radius:var(--radius); overflow:hidden; isolation:isolate; cursor:pointer; background:var(--soft); touch-action:none; }
.iq-sheet,.iq-next-sheet{ position:absolute; inset:0; border-radius:var(--radius); overflow:hidden; }
.iq-sheet{ z-index:3; } .iq-next-sheet{ z-index:1; opacity:0; transform:scale(1.015); filter:blur(8px); }
.iq-sheet .iq-flat,.iq-next-sheet .iq-flat{ position:absolute; inset:0; background:var(--c,#d66a2c) center/cover; }
.iq-sheet::after,.iq-next-sheet::after{ content:""; position:absolute; inset:0; z-index:3; pointer-events:none; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(255,255,255,.30), inset 0 -20px 40px rgba(0,0,0,.04); }
.iq-discover-image.vaporizing .iq-sheet{ animation:iqVaporOut .34s cubic-bezier(.2,.72,.2,1) forwards; }
.iq-discover-image.vaporizing .iq-next-sheet{ animation:iqVaporIn .34s cubic-bezier(.2,.72,.2,1) forwards; }
@keyframes iqVaporOut{ 0%{opacity:1;filter:blur(0);transform:scale(1)} 58%{opacity:.42;filter:blur(5px);transform:scale(1.01)} 100%{opacity:0;filter:blur(8px);transform:scale(1.018)} }
@keyframes iqVaporIn{ 0%{opacity:0;filter:blur(8px);transform:scale(1.018)} 48%{opacity:.48;filter:blur(4px);transform:scale(1.01)} 100%{opacity:1;filter:blur(0);transform:scale(1)} }
@media(prefers-reduced-motion:reduce){ .iq-discover-image.vaporizing .iq-sheet,.iq-discover-image.vaporizing .iq-next-sheet{ animation:none; } }
.iq-discover-title{ position:absolute; top:12px; left:12px; z-index:40; max-width:calc(100% - 84px); display:inline-flex; align-items:center; min-height:34px; padding:0 12px; border-radius:999px; background:rgba(255,255,255,.94); color:var(--ink); font-size:12px; font-weight:740; letter-spacing:-.02em; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
/* Même design que les autres cœurs (.iq-tile-favorite) : pastille BLANCHE au
   repos, ENCRE quand enregistré. Valeurs autonomes (fallbacks) car --ink/--bg
   ne sont pas toujours définies dans le contexte de ce bouton. */
.iq-fav{ position:absolute; z-index:45; right:14px; top:14px; width:46px; height:46px; display:grid; place-items:center; border:0; border-radius:999px; background:rgba(255,255,255,.94); color:var(--iq-ink,#11110f); box-shadow:0 5px 16px rgba(0,0,0,.1); font-size:18px; line-height:1; transition:transform .18s var(--iq-ease,ease),background .18s var(--iq-ease,ease),color .18s var(--iq-ease,ease); }
.iq-fav:hover,.iq-fav:focus-visible{ outline:0; transform:scale(1.06); background:var(--iq-ink,#11110f); color:#fff; }
.iq-fav.is-saved{ background:var(--iq-ink,#11110f); color:#fff; box-shadow:0 5px 16px rgba(0,0,0,.1); }
.iq-deck{ margin-top:14px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }
.iq-deck button{ min-height:44px; border:1px solid color-mix(in srgb,var(--ink) 22%,transparent); background:transparent; color:var(--ink); padding:0 12px; font-size:11px; font-weight:780; letter-spacing:.015em; text-transform:uppercase; display:flex; align-items:center; justify-content:center; gap:7px; }
.iq-deck button:hover{ background:color-mix(in srgb,var(--ink) 7%,transparent); }
.iq-deck .iq-shuffle{ color:var(--muted); }
.iq-deck-note{ margin-top:8px; text-align:left; font-size:10.5px; color:var(--muted); line-height:1.2; }
.iq-deck-note b{ color:var(--ink); }
.iq-reader{ display:flex; flex-direction:column; align-self:start; gap:12px; position:sticky; top:calc(var(--iq-sticky-top, calc(var(--nav-height) + 74px)) + 12px); }
.iq-reader-card{ background:#fff; border-radius:18px; padding:18px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.055); width:100%; }
.iq-mood-reader-card{ transition:opacity .18s var(--ease); }
.iq-mood-reader-card.is-updating{ opacity:.62; }
.iq-dno{ color:var(--muted); margin-bottom:4px; font-variant-numeric:tabular-nums; }
.iq-dctx{ font-family:var(--display); font-weight:var(--iq-display-weight); font-size:clamp(30px,3.1vw,48px); line-height:.88; letter-spacing:-.055em; max-width:11ch; }
.iq-dctx b{ color:inherit; }
.iq-dcopy{ margin-top:10px; max-width:34ch; }
.iq-dtone{ font-family:var(--display); font-size:clamp(26px,2.3vw,36px); line-height:.94; letter-spacing:-.045em; margin-top:10px; }
.iq-dtone b{ color:var(--ink); font-weight:var(--iq-display-weight); }
.iq-dmeta{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:18px; color:var(--muted); }
.iq-dmeta span{ min-height:64px; padding:10px; border:1px solid rgba(0,0,0,.07); background:color-mix(in srgb,var(--bg) 72%,white); border-radius:10px; }
.iq-dmeta b{ display:block; color:var(--ink); margin-top:6px; }
.iq-dview{ display:inline-flex; align-items:center; gap:8px; margin-top:18px; padding:13px 16px; border-radius:999px; background:var(--ink); color:var(--bg); font-weight:600; width:max-content; }

/* Panneau IQ (colonne accent) â€” rÃ©f .side */
.iq-side{ position:sticky; top:var(--iq-abo,0px); align-self:start; height:calc(100vh - var(--iq-abo,0px)); width:auto; overflow:auto; background:var(--iq-accent); color:var(--iq-panel-ink); z-index:180; }
/* Le panneau touche le haut et Â« coupe Â» la nav publique partagÃ©e :
   la nav fixe s'arrÃªte au bord gauche du panneau (donc confinÃ©e Ã  la colonne principale),
   et suit l'Ã©tat ouvert/fermÃ© via body.side-closed. */
body.iq-repertoire-page .nav:not(.iq-membernav){ right:var(--iq-open); }
body.iq-repertoire-page.side-closed .nav:not(.iq-membernav){ right:var(--iq-closed); }
/* Panneau ABSENT (<=1180px) : la nav reprend TOUTE la largeur. On répète le
   sélecteur avec .side-closed pour battre en spécificité la règle « repliée »
   (right:var(--iq-closed)) — sinon, si on avait replié le panneau AVANT de
   rétrécir, la nav restait décalée de 34px et laissait un trou où la grille
   défilait. */
@media(max-width:1180px){
  body.iq-repertoire-page .nav:not(.iq-membernav),
  body.iq-repertoire-page.side-closed .nav:not(.iq-membernav){ right:0; }
}
/* [Bêta-test] Bande 1181–1380px, panneau OUVERT : la nav est confinée à la colonne
   principale (~fenêtre − 360px) et « Devenir membre » glissait sous le panneau.
   On resserre les liens et on masque le logo de la nav — la marque reste bien
   visible via le !Q du panneau juste à côté. Sous 1181px le panneau disparaît
   et la nav (pleine largeur) reprend ses réglages normaux. */
@media(min-width:1181px) and (max-width:1380px){
  body.iq-repertoire-page:not(.side-closed) .nav:not(.iq-membernav) .nav__logo{ display:none; }
  body.iq-repertoire-page:not(.side-closed) .nav:not(.iq-membernav) .nav__link{ padding:0 10px; }
  body.iq-repertoire-page:not(.side-closed) .nav:not(.iq-membernav) .nav__link--bordered{ margin-left:6px; padding:8px 11px; }
  body.iq-repertoire-page:not(.side-closed) .nav__content{ padding-left:14px; padding-right:14px; }
}
.iq-side-inner{ min-width:var(--iq-open); height:100%; padding:20px; opacity:1; transition:opacity .18s var(--ease); }
body.side-closed .iq-repertoire .iq-side{ overflow:hidden; }
body.side-closed .iq-repertoire .iq-side-inner{ opacity:0; pointer-events:none; }
.iq-side-tab{ position:absolute; inset:0; width:var(--iq-closed); height:100%; display:none; align-items:center; justify-content:center; writing-mode:vertical-rl; background:var(--iq-accent); color:var(--iq-panel-ink); border-left:1px solid color-mix(in srgb,var(--iq-panel-ink) 28%,transparent); font-size:11px; font-weight:760; letter-spacing:.02em; text-transform:uppercase; z-index:220; }
body.side-closed .iq-repertoire .iq-side-tab{ display:flex; }
.iq-side-top{ display:flex; justify-content:space-between; align-items:center; gap:16px; border-bottom:1px solid rgba(0,0,0,.30); border-bottom:1px solid color-mix(in srgb,var(--iq-panel-ink) 34%,transparent); padding-bottom:18px; }
.iq-side-title{ font-family:var(--display); font-size:25px; display:flex; gap:10px; align-items:center; color:var(--iq-panel-ink); }
.iq-side-title:before{ content:""; width:15px; height:15px; background:var(--iq-panel-ink); }
.iq-side-title--img:before{ display:none; }
.iq-side-mark{ display:block; width:auto; height:auto; max-height:34px; }
.iq-side-collapse{ border:1px solid var(--iq-panel-ink); color:var(--iq-panel-ink); border-radius:999px; min-width:84px; height:34px; }
.iq-side-collapse:hover{ background:color-mix(in srgb,var(--iq-panel-ink) 12%,transparent); }
.iq-side-block{ padding:22px 0; border-bottom:1px solid rgba(0,0,0,.30); border-bottom:1px solid color-mix(in srgb,var(--iq-panel-ink) 34%,transparent); }
.iq-side-block h2{ font-family:var(--display); font-weight:400; font-size:clamp(36px,3.4vw,52px); line-height:.86; letter-spacing:-.06em; max-width:10ch; color:var(--iq-panel-ink); }
.iq-side-block p{ margin-top:13px; color:color-mix(in srgb,var(--iq-panel-ink) 76%,var(--iq-accent)); font-size:15px; line-height:1.2; letter-spacing:-.035em; }
.iq-side-block h2 + p{ margin-top:20px; } /* un peu d'air entre le gros titre et son paragraphe */
.iq-side-kicker{ font-size:12px; font-weight:700; }
.iq-side-actions{ display:grid; gap:8px; margin-top:18px; }
.iq-side-link{ display:flex; justify-content:space-between; border:1px solid var(--iq-panel-ink); border-radius:999px; padding:11px 12px; font-size:12px; font-weight:700; color:var(--iq-panel-ink); }
.iq-side-link.primary{ background:var(--iq-panel-ink); color:var(--iq-accent); }
.iq-side-link:not(.primary):hover{ background:color-mix(in srgb,var(--iq-panel-ink) 12%,transparent); }

/* Responsive â€” rÃ©f */
@media(max-width:1180px){
  .iq-repertoire,body.side-closed .iq-repertoire{ grid-template-columns:1fr; }
  .iq-side{ display:none; }
}
@media(max-width:980px){ .iq-rep-hero{ grid-template-columns:1fr; } }
@media(max-width:1100px){
  .iq-tile-cap{ font-size:11px; padding:6px 9px; gap:6px; }
}
@media(max-width:900px){
  .iq-footer-main,.iq-footer-links{ grid-template-columns:1fr; }
  .iq-discover-layout,.iq-mood-layout{ grid-template-columns:1fr; }
  .iq-reader,.iq-mood-side{ position:static; }
  .iq-mood-side{ order:-1; display:grid; grid-template-columns:1fr 1fr; }
  /* Taille STABLE : on borne par la hauteur d'écran « petite » (svh, qui
     n'augmente PAS quand la barre d'URL mobile se masque au défilement), au lieu
     de --discover-h (basé sur innerHeight, qui fluctue et faisait « grossir »
     l'image pendant le scroll). Repli width:100% si svh non supporté. */
  .iq-media-col{ width:100%; width:min(100%, calc(100svh - var(--iq-sticky-top, 180px))); }
  .iq-discover-image{ aspect-ratio:1/1; }
}
@media(max-width:760px){
  .iq-nav a:nth-child(3){ display:none; }
  .iq-modetabs{ width:100%; }
  .iq-modetabs button{ flex:1 1 0; min-width:0; padding-inline:9px; }
  .iq-mood-side{ grid-template-columns:1fr; }
}
@media(max-width:700px){
  .iq-tool-row{ grid-template-columns:minmax(0,1fr) auto; }
  .iq-grid-sort{ grid-column:1/-1; grid-row:2; width:max-content; max-width:100%; }
  .iq-search{ grid-template-columns:auto minmax(0,1fr) auto; }
  .iq-search-label{ display:none; }
  .iq-filter-reset{ grid-column:1/-1; width:max-content; height:34px; justify-self:end; }
  .iq-filter-drawer{ grid-template-columns:1fr; }
}
@media(max-width:620px){
  .iq-modetabs{ padding:5px; gap:3px; }
  .iq-modetabs button{ min-height:42px; font-size:11px; }
  .iq-deck{ grid-template-columns:1fr; }
  .iq-search{ padding-left:12px; }
  .iq-count{ display:none; }
  .iq-filter-toggle{ padding:0 13px; }
  .iq-mood-wall{ grid-template-columns:1fr; }
  .iq-mood-tile.is-seed{ grid-column:span 1; grid-row:span 1; aspect-ratio:1; }
}
@media(prefers-reduced-motion:reduce){ .iq-mood-tile.is-entering{ animation:none; } }

/* =====================================================================
   PORTAIL MEMBRE â€” pages refondues (body.iq-portail-modern + .iq-accent-surface).
   Surface orange pleine, contenu en composants (.iq-box, .iq-section-titleâ€¦).
   ===================================================================== */
body.iq-portail-modern main{ margin:0 !important; padding:0 !important; background:transparent !important; min-height:100vh; }
body.iq-portail-modern .bottom-bar{ display:none !important; }
.iq-portail-shell{ width:min(1180px,100%); margin:0 auto; padding:calc(var(--nav-height,62px) + clamp(34px,5vw,72px)) var(--iq-gut) clamp(48px,7vw,100px); }
.iq-portail-shell,.iq-portail-shell *{ box-sizing:border-box; }

/* Jeton de filet pour la surface accent */
.iq-portail-shell{ --pl:color-mix(in srgb,var(--iq-panel-ink) 26%,transparent); --pl-soft:color-mix(in srgb,var(--iq-panel-ink) 18%,transparent); --ptxt:color-mix(in srgb,var(--iq-panel-ink) 70%,var(--iq-accent)); }

/* En-tÃªte â€” plus d'air autour du nom */
.iq-portail-head{ padding-bottom:clamp(28px,4vw,52px); border-bottom:1px solid var(--pl); }
.iq-portail-head .iq-kicker{ margin-bottom:20px; }
.iq-portail-head h1{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(46px,5.6vw,88px); line-height:.94; letter-spacing:-.05em; color:var(--iq-panel-ink); }
/* [Bêta-test] Intro pleine largeur sur toutes les pages du portail (avant : 46ch ≈ la moitié du conteneur). */
.iq-portail-head p{ margin-top:18px; color:var(--ptxt); font-size:clamp(16px,1.4vw,21px); letter-spacing:-.02em; max-width:none; }

/* Stats â€” cellules bordÃ©es par filets (aucun blanc) */
.iq-stats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:clamp(28px,4vw,52px); border-top:1px solid var(--pl); border-bottom:1px solid var(--pl); }
.iq-stat{ padding:clamp(16px,1.8vw,22px) 16px; border-left:1px solid var(--pl-soft); }
.iq-stat:first-child{ border-left:0; padding-left:0; }
.iq-stat .n{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(36px,4.4vw,60px); line-height:1; letter-spacing:-.04em; color:var(--iq-panel-ink); }
.iq-stat .l{ margin-top:8px; color:var(--ptxt); font-size:13px; line-height:1.2; }

/* Titre de section sur accent */
.iq-portail-section-title{ margin:clamp(34px,4.6vw,60px) 0 clamp(14px,1.8vw,20px); color:var(--iq-panel-ink); }
.iq-portail-section-title:before{ background:var(--iq-panel-ink); }

/* Outils â€” cartes bordÃ©es, survol rempli sombre (jamais de blanc) */
.iq-tools-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(10px,1.3vw,16px); }
.iq-tool{ display:flex; flex-direction:column; border:1px solid var(--iq-panel-ink); border-radius:16px; padding:clamp(16px,1.8vw,20px); color:var(--iq-panel-ink); transition:background .18s var(--iq-ease), transform .18s var(--iq-ease); }
.iq-tool:hover{ background:color-mix(in srgb,var(--iq-panel-ink) 8%,transparent); transform:translateY(-2px); }
.iq-tool .iq-kicker{ margin-bottom:12px; color:var(--ptxt); }
.iq-tool .iq-kicker:before{ background:var(--iq-panel-ink); }
.iq-tool h3{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(23px,2.1vw,30px); line-height:.95; letter-spacing:-.04em; color:var(--iq-panel-ink); }
.iq-tool p{ margin-top:8px; color:var(--ptxt); font-size:14px; line-height:1.3; }
.iq-tool .go{ margin-top:14px; display:inline-flex; align-items:center; gap:6px; color:var(--iq-panel-ink); font-weight:700; font-size:13px; }
/* Tableau de bord : navigation courte, annonces et familles de services. */
.iq-service-jump{ display:flex; flex-wrap:wrap; gap:7px; margin-top:clamp(20px,3vw,34px); }
.iq-service-jump a{ min-height:38px; display:inline-flex; align-items:center; border:1px solid var(--iq-panel-ink); border-radius:999px; padding:0 13px; color:var(--iq-panel-ink); font-size:11px; font-weight:720; }
.iq-service-jump a:hover{ background:var(--iq-panel-ink); color:var(--iq-accent); }
.iq-dashboard-announcements,.iq-dashboard-group{ scroll-margin-top:calc(var(--nav-height) + 20px); padding-top:clamp(30px,4.5vw,58px); margin-top:clamp(30px,4.5vw,58px); border-top:1px solid var(--pl); }
/* Première section : elle suit directement l'en-tête du portail, donc pas
   besoin du grand espacement de séparation (margin-top + padding-top) prévu
   pour les sections suivantes. */
.iq-dashboard-announcements{ border-top:0; margin-top:clamp(4px,1vw,12px); padding-top:0; }
.iq-dashboard-section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:clamp(14px,2vw,22px); }
.iq-dashboard-section-head h2{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(32px,4vw,54px); line-height:.92; letter-spacing:-.05em; color:var(--iq-panel-ink); }
.iq-dashboard-section-head p{ max-width:52ch; margin-top:8px; color:var(--ptxt); font-size:14px; line-height:1.35; }
.iq-dashboard-section-head > a{ flex:0 0 auto; color:var(--iq-panel-ink); font-size:12px; font-weight:720; }
.iq-announcement-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(10px,1.3vw,16px); }
.iq-announcement{ min-height:190px; display:flex; flex-direction:column; border:1px solid var(--iq-panel-ink); border-radius:16px; padding:clamp(16px,1.8vw,20px); color:var(--iq-panel-ink); }
.iq-announcement.is-unread{ background:color-mix(in srgb,var(--iq-panel-ink) 7%,transparent); }
.iq-announcement h3{ margin-top:9px; font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(23px,2.2vw,31px); line-height:.95; letter-spacing:-.04em; }
.iq-announcement p{ margin-top:9px; color:var(--ptxt); font-size:14px; line-height:1.35; }
.iq-announcement > a{ margin-top:auto; padding-top:18px; color:var(--iq-panel-ink); font-size:12px; font-weight:720; }
.iq-announcement{ position:relative; }
.iq-announcement-dismiss{ position:absolute; top:10px; right:10px; width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:50%; background:transparent; color:var(--ptxt); font-size:19px; line-height:1; cursor:pointer; opacity:.5; transition:opacity .15s ease, background .15s ease; }
.iq-announcement-dismiss:hover{ opacity:1; background:color-mix(in srgb,var(--iq-panel-ink) 12%,transparent); }
.iq-announcement .iq-status{ padding-right:30px; }

/* Page Services aux membres. */
.iq-service-jump{ margin-bottom:clamp(28px,4vw,52px); }
/* [Bêta-test] En-tête pleine largeur, puis long texte de reconnaissance réparti
   sur 2 colonnes occupant tout le conteneur (au lieu de ~la moitié). */
.iq-service-intro{ display:block; }
.iq-service-intro .iq-section-title{ margin-top:14px; color:var(--iq-panel-ink); }
/* Pas de puce d'accent sur le titre de la page « statut professionnel » (le
   surtitre marque deja la section). */
.iq-service-intro .iq-section-title:before{ display:none; }
.iq-service-lead{ margin-top:18px; color:var(--ptxt); font-size:16px; line-height:1.48; column-count:2; column-gap:clamp(30px,4vw,64px); }
.iq-service-lead > :first-child{ margin-top:0; }
.iq-service-lead p{ margin:0 0 1em; }
.iq-service-lead p:last-child{ margin-bottom:0; }
.iq-service-lead a{ color:var(--iq-panel-ink); text-decoration:underline; text-underline-offset:2px; }
.iq-service-lead strong{ color:var(--iq-panel-ink); }
@media(max-width:760px){ .iq-service-lead{ column-count:1; } }
.iq-service-state{ border:1px solid var(--iq-panel-ink); border-radius:16px; padding:clamp(16px,2vw,22px); }
.iq-service-state strong{ display:block; margin-top:8px; font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(24px,2.6vw,34px); line-height:.95; letter-spacing:-.04em; color:var(--iq-panel-ink); }
.iq-service-state p{ margin-top:10px; color:var(--ptxt); font-size:13px; line-height:1.35; }
.iq-service-criteria{ margin-top:clamp(24px,3vw,38px); padding:clamp(18px,2.6vw,28px); border-radius:16px; background:color-mix(in srgb,var(--iq-panel-ink) 7%,transparent); color:var(--iq-panel-ink); }
.iq-service-criteria h3{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(24px,2.6vw,34px); letter-spacing:-.04em; }
.iq-service-criteria ol{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:18px; padding:0; list-style:none; counter-reset:criteria; }
.iq-service-criteria li{ counter-increment:criteria; padding-top:12px; border-top:1px solid var(--pl); color:var(--ptxt); font-size:14px; line-height:1.4; }
.iq-service-criteria li:before{ content:counter(criteria,decimal-leading-zero); display:block; margin-bottom:8px; color:var(--iq-panel-ink); font-size:10px; font-weight:760; letter-spacing:.04em; }
.iq-service-feedback{ margin-top:22px; }
/* Accordéons (page Devenir membre — replie l'info pour atteindre vite les formules) */
.iq-accordion-list{ margin-top:0; }
.iq-accordion{ border-bottom:1px solid color-mix(in srgb, currentColor 16%, transparent); }
.iq-accordion__summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:clamp(15px,2vw,22px) 2px; }
.iq-accordion__summary::-webkit-details-marker{ display:none; }
.iq-accordion__summary:hover .iq-accordion__title{ opacity:.7; }
.iq-accordion__summary:focus-visible{ outline:2px solid currentColor; outline-offset:3px; border-radius:4px; }
.iq-accordion__title{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(21px,2.3vw,30px); letter-spacing:-.03em; line-height:1; }
.iq-accordion__icon{ position:relative; flex:0 0 auto; width:22px; height:22px; }
.iq-accordion__icon::before, .iq-accordion__icon::after{ content:""; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); background:currentColor; border-radius:2px; }
.iq-accordion__icon::before{ width:15px; height:2px; }
.iq-accordion__icon::after{ width:2px; height:15px; transition:transform .2s ease; }
.iq-accordion[open] .iq-accordion__icon::after{ transform:translate(-50%,-50%) scaleY(0); }
.iq-accordion__body{ padding:0 2px clamp(20px,2.6vw,30px); }

/* Préférences de notifications — colonnes « Dans le portail » / « Par courriel » */
.iq-notif-prefs-form .iq-notif-pref-row{ padding:14px 0; border-top:1px solid var(--pl); }
.iq-notif-prefs-form .iq-notif-pref-row:first-of-type{ border-top:0; padding-top:4px; }
.iq-notif-prefs-form .iq-notif-pref-label{ margin-bottom:9px; color:var(--iq-panel-ink); }
.iq-notif-prefs-form .iq-notif-pref-toggles{ display:flex; flex-wrap:wrap; gap:8px 22px; }
.iq-notif-prefs-form .iq-notif-pref-toggles .checkbox-label{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; }

.iq-service-form{ max-width:1000px; margin-top:clamp(26px,4vw,48px); padding-top:clamp(24px,3vw,36px); border-top:1px solid var(--pl); }
.iq-service-form .iq-field-group{ margin-bottom:16px; }
.iq-service-form .iq-field-group > label{ display:block; margin-bottom:6px; font-weight:680; color:var(--iq-panel-ink); font-size:14px; letter-spacing:-.01em; }
.iq-service-form .iq-field-row{ margin-bottom:0; }
@media(max-width:560px){ .iq-service-form .iq-field-row{ grid-template-columns:1fr !important; } }
.iq-service-checklist{ display:grid; gap:9px; border:0; padding:0; }
.iq-service-checklist legend{ margin-bottom:10px; color:var(--iq-panel-ink); font-weight:720; }
.iq-service-checklist label{ display:flex; align-items:flex-start; gap:12px; padding:13px 14px; border:1px solid var(--pl); border-radius:12px; color:var(--iq-panel-ink); cursor:pointer; }
.iq-service-checklist label:hover{ background:color-mix(in srgb,var(--iq-panel-ink) 5%,transparent); }
.iq-service-checklist input{ flex:0 0 auto; margin-top:2px; accent-color:var(--iq-panel-ink); }
.iq-file-field{ height:auto; min-height:48px; padding:10px 12px; }
.iq-file-field::file-selector-button{ min-height:32px; margin-right:12px; border:1px solid var(--iq-panel-ink); border-radius:999px; padding:0 12px; background:var(--iq-panel-ink); color:var(--iq-accent); font:inherit; font-size:11px; font-weight:720; cursor:pointer; }
.iq-service-request-status{ display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:clamp(26px,4vw,46px); padding:clamp(18px,2.6vw,28px); border:1px solid var(--iq-panel-ink); border-radius:16px; }
.iq-service-request-status h3{ margin-top:6px; font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(28px,3vw,42px); line-height:.95; letter-spacing:-.045em; color:var(--iq-panel-ink); }
.iq-service-request-status p{ margin-top:7px; color:var(--ptxt); font-size:13px; }
.iq-tools-grid--services{ grid-template-columns:repeat(3,minmax(0,1fr)); }

/* Lien retour (modÃ¨le hub) */
.iq-backlink{ display:inline-flex; align-items:center; gap:6px; margin-bottom:18px; color:var(--ptxt); font-size:13px; font-weight:600; letter-spacing:-.01em; }
.iq-backlink:hover{ color:var(--iq-panel-ink); }

/* Liste Ã  filets (contrats, favoris, etc.) */
.iq-list{ border-top:1px solid var(--pl); margin-top:clamp(8px,1.2vw,16px); }
.iq-list-item{ display:flex; justify-content:space-between; align-items:center; gap:18px; padding:clamp(14px,1.6vw,18px) 4px; border-bottom:1px solid var(--pl); color:var(--iq-panel-ink); }
.iq-list-item:hover{ background:color-mix(in srgb,var(--iq-panel-ink) 5%,transparent); }
.iq-list-item .t{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(20px,2vw,28px); line-height:.96; letter-spacing:-.04em; }
.iq-list-item .m{ color:var(--ptxt); font-size:13px; margin-top:4px; }
.iq-list-item .r{ color:var(--ptxt); flex:0 0 auto; white-space:nowrap; }
.iq-price{ font-family:var(--iq-display); font-size:clamp(20px,2vw,28px); line-height:.95; letter-spacing:-.04em; color:var(--iq-panel-ink); margin-bottom:10px; }

/* Formulaire */
.iq-form{ display:grid; gap:clamp(14px,1.8vw,20px); max-width:860px; margin-top:clamp(14px,2vw,24px); }
.iq-form .iq-label{ color:var(--ptxt); }
.iq-form-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; }

/* Champs sur surface accent : bordÃ©s, pas de blanc */
.iq-accent-surface .iq-field{ background:transparent; box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--iq-panel-ink) 40%,transparent); color:var(--iq-panel-ink); }
.iq-accent-surface .iq-field::placeholder{ color:color-mix(in srgb,var(--iq-panel-ink) 50%,var(--iq-accent)); }
.iq-accent-surface .iq-field:focus{ box-shadow:inset 0 0 0 1.6px var(--iq-panel-ink); }

/* Bloc de section portail (sÃ©parÃ© par un filet) */
.iq-portail-block{ padding-top:clamp(26px,3.4vw,44px); margin-top:clamp(26px,3.4vw,44px); border-top:1px solid var(--pl); }
.iq-portail-block.is-first{ border-top:0; margin-top:clamp(6px,1.2vw,16px); padding-top:0; }
.iq-portail-block > .iq-section-title{ margin-bottom:clamp(14px,1.8vw,20px); }
.iq-form-2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(12px,1.6vw,18px); }
.iq-hint{ display:block; margin-top:6px; color:var(--ptxt); font-size:12px; }
.iq-notice{ padding:12px 14px; border:1px solid var(--pl); border-radius:12px; margin-top:16px; color:var(--iq-panel-ink); }
.iq-avatar-row{ display:flex; gap:18px; align-items:center; }
.iq-avatar{ width:96px; height:96px; border-radius:12px; overflow:hidden; border:1px solid var(--iq-panel-ink); flex:0 0 auto; display:grid; place-items:center; color:var(--ptxt); font-size:12px; }
.iq-avatar img{ width:100%; height:100%; object-fit:cover; }

/* RangÃ©e d'actions en tÃªte de page (portfolio, etc.) */
.iq-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:clamp(14px,2vw,22px); }
.iq-mini-stat{ display:flex; align-items:baseline; gap:8px; margin-top:clamp(16px,2vw,26px); }
.iq-mini-stat .n{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(26px,2.6vw,38px); letter-spacing:-.04em; color:var(--iq-panel-ink); }
.iq-mini-stat .l{ color:var(--ptxt); font-size:13px; }

/* Onglets simples (favoris) */
.iq-tabs{ display:flex; gap:18px; flex-wrap:wrap; margin-top:clamp(10px,1.6vw,20px); border-bottom:1px solid var(--pl); }
.iq-tab{ padding:10px 0; margin-bottom:-1px; border-bottom:2px solid transparent; color:var(--ptxt); font-weight:600; font-size:14px; }
.iq-tab.on{ color:var(--iq-panel-ink); border-bottom-color:var(--iq-panel-ink); }

/* Grille de tuiles bordÃ©es (favoris) */
.iq-cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(10px,1.3vw,16px); margin-top:clamp(14px,2vw,24px); }
.iq-mini{ display:flex; flex-direction:column; border:1px solid var(--iq-panel-ink); border-radius:14px; padding:14px; color:var(--iq-panel-ink); }
.iq-mini-media{ aspect-ratio:4/5; border-radius:10px; overflow:hidden; border:1px solid var(--pl); background:var(--c,color-mix(in srgb,var(--iq-panel-ink) 8%,transparent)); background-size:cover; background-position:center; display:grid; place-items:center; margin-bottom:12px; color:var(--ptxt); font-size:12px; }
.iq-mini-media.is-avatar{ aspect-ratio:1/1; border-radius:999px; width:84px; }
.iq-mini-media img{ width:100%; height:100%; object-fit:cover; }
.iq-mini h3{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(20px,1.9vw,26px); line-height:.96; letter-spacing:-.04em; }
.iq-mini .meta{ color:var(--ptxt); font-size:13px; margin-top:4px; }
.iq-mini .iq-row{ margin-top:12px; }

/* Liste riche (portfolio) */
.iq-rowlist{ border-top:1px solid var(--pl); margin-top:clamp(14px,2vw,22px); }
.iq-rowitem{ display:grid; grid-template-columns:96px 1fr auto; gap:18px; align-items:center; padding:14px 4px; border-bottom:1px solid var(--pl); color:var(--iq-panel-ink); }
.iq-rowitem .thumb{ width:96px; height:72px; border-radius:8px; overflow:hidden; border:1px solid var(--pl); background:color-mix(in srgb,var(--iq-panel-ink) 8%,transparent); background-size:cover; background-position:center; display:grid; place-items:center; color:var(--ptxt); font-size:11px; }
.iq-rowitem .thumb img{ width:100%; height:100%; object-fit:cover; }
.iq-rowitem h3{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(20px,1.9vw,26px); line-height:.96; letter-spacing:-.04em; }
.iq-rowitem .sub{ color:var(--ptxt); font-size:13px; margin-top:4px; }
.iq-rowitem .actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
/* RÃ©ordonner le portfolio (drag & drop). */
.iq-rowitem--sortable{ grid-template-columns:26px 96px 1fr auto; cursor:grab; }
.iq-rowitem--sortable:active{ cursor:grabbing; }
.iq-rowitem--sortable.is-dragging{ opacity:.45; }
.iq-drag-handle{ color:var(--ptxt); font-size:17px; line-height:1; user-select:none; text-align:center; }
.iq-reorder-hint{ color:var(--ptxt); font-size:14px; margin-top:10px; }
/* [Bêta-test] Projets grisés (inactifs, au-delà de la limite). On grise l'aperçu et
   le texte, mais on garde les boutons « Activer / Supprimer » bien lisibles. */
.iq-inactive-title{ margin-top:clamp(22px,3vw,34px); }
.iq-rowitem--inactive .thumb,
.iq-rowitem--inactive > div:not(.actions){ opacity:.5; }
.iq-rowitem--inactive .thumb img{ filter:grayscale(1); }
.iq-reorder-state{ margin-left:10px; font-weight:700; color:var(--iq-panel-ink); }
@media(max-width:560px){ .iq-rowitem--sortable{ grid-template-columns:26px 72px 1fr; } }
/* DerniÃ¨re ligne d'une liste : pas de filet (Ã©vite le double trait avec le bloc suivant). */
.iq-list .iq-rowitem:last-child,
.iq-list > :last-child .iq-rowitem:last-child{ border-bottom:0; }
.iq-status{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; color:var(--ptxt); margin-bottom:4px; }
.iq-status:before{ content:""; width:7px; height:7px; border-radius:999px; background:currentColor; }

/* Ã‰tat vide */
.iq-empty-state{ border:1px solid var(--pl); border-radius:16px; padding:clamp(24px,4vw,48px); text-align:center; margin-top:clamp(14px,2vw,22px); }
.iq-empty-state h3{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(26px,3vw,40px); letter-spacing:-.05em; color:var(--iq-panel-ink); }
.iq-empty-state p{ margin-top:10px; color:var(--ptxt); max-width:46ch; margin-left:auto; margin-right:auto; }
.iq-empty-state .iq-row{ justify-content:center; margin-top:18px; }

/* Composants des pages de contenu du portail */
.iq-tools-grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.iq-tool .iq-status{ color:var(--ptxt); }
.iq-list-link{ text-decoration:none; }
.iq-list-item .t a,.iq-rowitem h3 a{ color:inherit; }
.iq-resource-icon{ width:58px; height:58px; border:1px solid var(--pl); border-radius:12px; display:grid; place-items:center; flex:0 0 auto; color:var(--ptxt); font-size:12px; font-weight:700; text-transform:uppercase; }
.iq-callout{ margin-top:clamp(16px,2vw,24px); padding:clamp(16px,2vw,22px); border:1px solid var(--pl); border-radius:16px; color:var(--iq-panel-ink); }

/* [Bêta-test] Page Ressources PUBLIQUE : réutilise les composants « liste » du
   portail, mais sur le schéma CLAIR du répertoire. Les jetons --pl/--ptxt ne sont
   définis que sur .iq-portail-shell ; on les redéfinit ici (version claire) et on
   remet le texte des items en encre foncée sur fond crème. */
.iq-ressources-public{
  --pl:var(--iq-line);
  --pl-soft:color-mix(in srgb,var(--iq-ink) 9%,transparent);
  --ptxt:var(--iq-muted);
}
.iq-ressources-public .iq-list-item{ color:var(--iq-ink); }
.iq-ressources-public .iq-list-item:hover{ background:color-mix(in srgb,var(--iq-ink) 5%,transparent); }
.iq-ressources-public .iq-empty-state h3{ color:var(--iq-ink); }
.iq-callout p{ color:var(--ptxt); line-height:1.5; }
.iq-callout p + p{ margin-top:10px; }
.iq-callout strong{ color:var(--iq-panel-ink); }
.iq-rich-copy{ color:var(--ptxt); line-height:1.55; }
.iq-rich-copy p + p,.iq-rich-copy ul{ margin-top:12px; }
.iq-rich-copy ul{ padding-left:20px; }
.iq-rich-copy li + li{ margin-top:6px; }

/* Tableaux */
.iq-tariff-heading{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }
.iq-tariff-heading p{ max-width:520px; color:var(--ptxt); line-height:1.45; }
.iq-tariff-category{ margin-top:clamp(20px,2.6vw,30px); }
.iq-tariff-category h3{ color:var(--iq-panel-ink); font-size:15px; font-weight:700; }
.iq-tariff-category .iq-table-wrap{ margin-top:10px; }
.iq-table-wrap{ overflow-x:auto; margin-top:clamp(14px,2vw,22px); border-top:1px solid var(--pl); }
.iq-table{ width:100%; min-width:620px; border-collapse:collapse; color:var(--iq-panel-ink); }
.iq-table th,.iq-table td{ padding:14px 12px; border-bottom:1px solid var(--pl); text-align:left; }
.iq-table th{ color:var(--ptxt); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.iq-table th:not(:first-child),.iq-table td:not(:first-child){ text-align:right; white-space:nowrap; }
.iq-table tbody tr:hover{ background:color-mix(in srgb,var(--iq-panel-ink) 5%,transparent); }

/* === Grille tarifaire de référence : onglets CSS-only + tableaux multi-colonnes === */
.iq-tarif-ref{ margin-top:clamp(6px,1vw,14px); }
.iq-tarif-radio{ position:absolute; width:1px; height:1px; opacity:0; clip:rect(0 0 0 0); clip-path:inset(50%); overflow:hidden; }
.iq-tarif-tablist{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 clamp(20px,2.6vw,32px); padding-bottom:14px; border-bottom:1px solid var(--pl,var(--iq-line)); }
.iq-tarif-tab{ cursor:pointer; padding:9px 16px; border-radius:999px; border:1px solid var(--pl,var(--iq-line)); background:transparent; color:var(--ptxt,var(--iq-muted)); font-family:var(--iq-body); font-size:13.5px; font-weight:650; letter-spacing:-.01em; white-space:nowrap; transition:background .15s var(--iq-ease), color .15s var(--iq-ease), border-color .15s var(--iq-ease); }
.iq-tarif-tab:hover{ color:var(--iq-panel-ink); border-color:currentColor; }
.iq-tarif-panel{ display:none; }
.iq-tarif-table-block{ margin-bottom:clamp(26px,3.4vw,46px); }
.iq-tarif-table-block:last-child{ margin-bottom:0; }
.iq-tarif-table-title{ margin:0 0 10px; font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(22px,2.3vw,32px); line-height:1; letter-spacing:-.02em; color:var(--iq-panel-ink); }
.iq-tarif-table-intro{ margin:0 0 12px; color:var(--ptxt,var(--iq-muted)); font-size:14px; }
.iq-tarif-table-note{ margin:10px 0 0; color:var(--ptxt,var(--iq-muted)); font-size:12.5px; font-style:italic; }
.iq-tarif-table td:first-child{ font-weight:600; color:var(--iq-panel-ink); white-space:normal; }
.iq-tarif-legend{ margin:clamp(18px,2.2vw,28px) 0 0; color:var(--ptxt,var(--iq-muted)); font-size:12.5px; }

#iq-tarif-edition:checked   ~ .iq-tarif-panels .iq-tarif-panel[data-for="iq-tarif-edition"],
#iq-tarif-presse:checked    ~ .iq-tarif-panels .iq-tarif-panel[data-for="iq-tarif-presse"],
#iq-tarif-bd:checked        ~ .iq-tarif-panels .iq-tarif-panel[data-for="iq-tarif-bd"],
#iq-tarif-pub:checked       ~ .iq-tarif-panels .iq-tarif-panel[data-for="iq-tarif-pub"],
#iq-tarif-av:checked        ~ .iq-tarif-panels .iq-tarif-panel[data-for="iq-tarif-av"],
#iq-tarif-licensing:checked ~ .iq-tarif-panels .iq-tarif-panel[data-for="iq-tarif-licensing"]{ display:block; }

#iq-tarif-edition:checked   ~ .iq-tarif-tablist .iq-tarif-tab[for="iq-tarif-edition"],
#iq-tarif-presse:checked    ~ .iq-tarif-tablist .iq-tarif-tab[for="iq-tarif-presse"],
#iq-tarif-bd:checked        ~ .iq-tarif-tablist .iq-tarif-tab[for="iq-tarif-bd"],
#iq-tarif-pub:checked       ~ .iq-tarif-tablist .iq-tarif-tab[for="iq-tarif-pub"],
#iq-tarif-av:checked        ~ .iq-tarif-tablist .iq-tarif-tab[for="iq-tarif-av"],
#iq-tarif-licensing:checked ~ .iq-tarif-tablist .iq-tarif-tab[for="iq-tarif-licensing"]{ background:var(--iq-panel-ink); color:var(--iq-bg); border-color:var(--iq-panel-ink); }
@media(max-width:680px){ .iq-tariff-heading{ align-items:flex-start; flex-direction:column; gap:8px; } }

/* Calendrier */
.iq-month-group{ margin-top:clamp(24px,3vw,38px); }
.iq-month-title{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(25px,2.7vw,38px); line-height:.95; letter-spacing:-.045em; color:var(--iq-panel-ink); }
.iq-datebox{ width:82px; min-height:74px; border:1px solid var(--pl); border-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--iq-panel-ink); }
.iq-datebox b{ font-family:var(--iq-display); font-size:34px; line-height:.8; font-weight:400; letter-spacing:-.04em; }
.iq-datebox small{ margin-top:8px; color:var(--ptxt); font-size:10px; font-weight:700; letter-spacing:.06em; }
.iq-event-card{ grid-template-columns:82px 1fr auto; }
.iq-event-card .sub{ max-width:68ch; line-height:1.4; }

/* Statistiques */
.iq-rowitem--stats{ grid-template-columns:minmax(0,1fr) repeat(2,minmax(92px,auto)); }
.iq-metric{ text-align:right; }
.iq-metric .n{ display:block; font-family:var(--iq-display); font-size:clamp(24px,2.6vw,36px); line-height:.9; letter-spacing:-.04em; color:var(--iq-panel-ink); }
.iq-metric .l{ display:block; margin-top:6px; color:var(--ptxt); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }

/* Formulaires riches */
.iq-form--wide{ max-width:none; }
.iq-file{ padding:10px 12px; }
.iq-check-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:8px; }
.iq-check{ min-height:44px; display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--pl); border-radius:12px; color:var(--iq-panel-ink); cursor:pointer; }
.iq-check:hover{ background:color-mix(in srgb,var(--iq-panel-ink) 5%,transparent); }
.iq-check input{ accent-color:var(--iq-panel-ink); }
.iq-gallery-preview{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
.iq-gallery-item{ position:relative; width:104px; height:104px; border:1px solid var(--pl); border-radius:12px; overflow:hidden; }
.iq-gallery-item img{ width:100%; height:100%; object-fit:cover; }
.iq-gallery-remove{ position:absolute; top:6px; right:6px; width:26px; height:26px; border:1px solid var(--iq-panel-ink); border-radius:999px; background:var(--iq-panel-ink); color:var(--iq-accent); cursor:pointer; }

/* FAQ et pagination */
.iq-faq-list{ border-top:1px solid var(--pl); margin-top:clamp(14px,2vw,22px); }
.iq-faq{ border-bottom:1px solid var(--pl); }
.iq-faq summary{ padding:16px 4px; cursor:pointer; color:var(--iq-panel-ink); font-weight:650; list-style:none; }
.iq-faq summary::-webkit-details-marker{ display:none; }
.iq-faq summary:after{ content:"+"; float:right; font-family:var(--iq-display); font-size:24px; font-weight:400; }
.iq-faq[open] summary:after{ content:"\2212"; }
.iq-faq .iq-rich-copy{ padding:0 4px 18px; max-width:68ch; }
.iq-portail-shell .navigation.pagination{ margin-top:24px; }
.iq-portail-shell .nav-links{ display:flex; gap:8px; flex-wrap:wrap; }
.iq-portail-shell .page-numbers{ min-width:38px; min-height:38px; display:grid; place-items:center; border:1px solid var(--iq-panel-ink); border-radius:999px; color:var(--iq-panel-ink); padding:0 10px; }
.iq-portail-shell .page-numbers.current{ background:var(--iq-panel-ink); color:var(--iq-accent); }

.iq-accent-surface .iq-btn--primary:hover{ background:color-mix(in srgb,var(--iq-panel-ink) 88%,transparent); border-color:var(--iq-panel-ink); color:var(--iq-accent); }

@media(max-width:820px){ .iq-cards{ grid-template-columns:repeat(2,minmax(0,1fr)); } .iq-form-2,.iq-check-grid{ grid-template-columns:1fr; } .iq-event-card{ grid-template-columns:72px 1fr; } .iq-event-card .actions{ grid-column:1/-1; justify-content:flex-start; } }
@media(max-width:680px){ .iq-tools-grid--2{ grid-template-columns:1fr; } .iq-rowitem--stats{ grid-template-columns:1fr 1fr; } .iq-rowitem--stats > :first-child{ grid-column:1/-1; } .iq-metric{ text-align:left; } }
@media(max-width:560px){ .iq-form-2{ grid-template-columns:1fr; } .iq-cards{ grid-template-columns:1fr; } .iq-rowitem{ grid-template-columns:72px 1fr; } .iq-rowitem .thumb{ width:72px; height:56px; } .iq-rowitem .actions{ grid-column:1/-1; justify-content:flex-start; } }
@media(max-width:820px){ .iq-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); } .iq-stat:nth-child(3){ border-left:0; padding-left:0; } .iq-tools-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:520px){ .iq-stats{ grid-template-columns:1fr; } .iq-stat{ border-left:0; padding-left:0; } .iq-tools-grid,.iq-tools-grid--2{ grid-template-columns:1fr; } }
@media(max-width:820px){ .iq-announcement-grid{ grid-template-columns:1fr; } .iq-service-intro{ grid-template-columns:1fr; } .iq-service-criteria ol{ grid-template-columns:1fr; gap:10px; } .iq-tools-grid--services{ grid-template-columns:1fr; } }
@media(max-width:620px){ .iq-dashboard-section-head,.iq-service-request-status{ align-items:flex-start; flex-direction:column; } .iq-service-jump{ flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; } .iq-service-jump::-webkit-scrollbar{ display:none; } .iq-service-jump a{ flex:0 0 auto; } }

/* =====================================================================
   PAGES PUBLIQUES â€” prolongement du rÃ©pertoire.
   Fond crÃ¨me, titres Ã©ditoriaux, filets fins, mÃ©dias arrondis.
   ===================================================================== */
body.iq-public-modern{ background:var(--iq-bg); color:var(--iq-ink); }
body.iq-public-modern main{ margin:0 !important; padding:0 !important; background:transparent !important; }
body.iq-public-modern .bottom-bar{ background:var(--iq-bg); color:var(--iq-ink); border-top:1px solid var(--iq-line); }
body.iq-public-modern a:focus-visible,
body.iq-public-modern button:focus-visible,
body.iq-public-modern input:focus-visible,
body.iq-public-modern textarea:focus-visible,
body.iq-public-modern select:focus-visible{ outline:2px solid var(--iq-accent); outline-offset:2px; }

.iq-public-main{ min-height:calc(100vh - var(--nav-height)); }

/* Coquille + en-tÃªte â€” source unique (fusion des deux gÃ©nÃ©rations). */
.iq-public-shell{ width:min(1200px,100%); margin:0 auto; padding:calc(var(--nav-height) + clamp(34px,4vw,64px)) var(--iq-gut) clamp(48px,6vw,86px); }
.iq-public-shell--narrow{ width:min(880px,100%); }
.iq-public-shell--narrow .iq-public-content{ max-width:840px; }
.iq-public-shell--immersive{ width:min(1520px,100%); }
.iq-public-head{ padding-bottom:clamp(30px,3.4vw,54px); border-bottom:1px solid rgba(0,0,0,.08); }
/* Header minimal (kicker + retour seulement, ex. page projet) : pas de filet flottant. */
.iq-public-head--bare{ padding-bottom:0; border-bottom:0; }
.iq-public-head--bare .iq-public-head-top{ margin-bottom:clamp(10px,1.4vw,18px); }
.iq-public-head-top{ display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:clamp(24px,3vw,38px); }
.iq-public-head .iq-kicker{ margin:0; }
.iq-public-back{ display:inline-flex; align-items:center; gap:7px; margin:0; color:var(--iq-muted); font-size:12px; font-weight:700; letter-spacing:-.025em; text-decoration:none; }
.iq-public-back:hover{ color:var(--iq-ink); }
.iq-public-head-grid{ display:flex; flex-direction:column; align-items:stretch; gap:clamp(22px,2.8vw,38px); }
.iq-public-head h1{ max-width:none; width:100%; font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(52px,7vw,112px); line-height:.84; letter-spacing:-.055em; color:var(--iq-ink); text-wrap:balance; overflow-wrap:break-word; word-break:break-word; }
/* Titre d'un article d'actualite : taille de manchette (vs titre vitrine geant). */
body.single-actualite .iq-public-head h1{ font-size:clamp(30px,4vw,52px); line-height:.95; letter-spacing:-.04em; }
.iq-public-head-note{ align-self:stretch; max-width:none; }
.iq-public-head-mark{ display:block; width:10px; height:10px; border-radius:2px; background:var(--iq-accent); margin-bottom:16px; }
.iq-public-head p{ max-width:62ch; margin:0; font-size:clamp(17px,1.35vw,22px); line-height:1.16; letter-spacing:-.038em; font-weight:560; color:var(--iq-ink); }
.iq-public-content{ padding-top:clamp(22px,2.7vw,40px); }
.iq-public-content > :first-child{ margin-top:0; }

.iq-public-section{ margin-top:clamp(36px,5vw,72px); padding-top:clamp(22px,3vw,40px); border-top:1px solid rgba(0,0,0,.08); }
.iq-public-section:first-child{ margin-top:0; border-top:0; padding-top:0; }
.iq-public-section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:12px; }
.iq-public-section-title{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(30px,3.6vw,54px); line-height:.9; letter-spacing:-.055em; display:flex; gap:10px; align-items:center; }
.iq-public-section-title:before{ content:""; width:10px; height:10px; border-radius:2px; background:var(--iq-accent); flex:0 0 auto; }
/* Espace sous un titre de section suivi directement d'une grille (ex. « Autres
   projets de … » sur la page d'un projet). */
.iq-public-section-title + .iq-public-grid{ margin-top:clamp(22px,2.6vw,36px); }
/* Systeme d'accent delibere : le carre orange marque les reperes de structure
   (surtitre de page, titres de section), jamais une etiquette repetee. On retire
   donc le repere sous l'intro (doublon du surtitre) et le carre des surtitres de carte. */
.iq-public-head-mark{ display:none; }
.iq-public-card .iq-kicker:before{ display:none; }
.iq-public-count{ color:var(--iq-muted); font-size:14px; font-weight:560; line-height:1.18; letter-spacing:-.035em; }
.iq-public-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--iq-gap); }
.iq-public-grid--4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.iq-public-grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.iq-public-layout{ display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,380px); gap:clamp(22px,3vw,52px); align-items:start; }
.iq-public-layout--floating-aside{ grid-template-columns:minmax(0,1fr) clamp(290px,22vw,350px); gap:clamp(22px,2.5vw,40px); }
.iq-public-aside{ position:sticky; top:calc(var(--nav-height) + 22px); }

.iq-public-card{ background:#fff; border:0; border-radius:18px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.055); padding:clamp(16px,2vw,24px); color:var(--iq-ink); }
.iq-public-card h2,.iq-public-card h3,.iq-public-card h4{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); line-height:.95; letter-spacing:-.045em; overflow-wrap:break-word; word-break:break-word; }
.iq-public-card h2{ font-size:clamp(28px,3vw,42px); }
.iq-public-card h3{ font-size:clamp(23px,2.3vw,32px); }
.iq-public-card p{ color:var(--iq-muted); line-height:1.45; }
.iq-public-card p + p{ margin-top:10px; }
.iq-public-media{ overflow:hidden; border-radius:var(--iq-image-radius); background:var(--iq-soft); }
.iq-public-media img{ display:block; width:100%; height:100%; object-fit:cover; }
.iq-public-avatar{ aspect-ratio:1; overflow:hidden; border-radius:var(--iq-image-radius); background:var(--iq-soft); display:grid; place-items:center; color:var(--iq-muted); }
.iq-public-avatar img{ width:100%; height:100%; object-fit:cover; }
.iq-public-avatar--round{ border-radius:999px; }
.iq-public-meta{ border-top:1px solid rgba(0,0,0,.09); margin-top:20px; }
.iq-public-meta-row{ display:flex; justify-content:space-between; gap:24px; padding:12px 0; border-bottom:1px solid rgba(0,0,0,.09); font-size:13px; }
.iq-public-meta-row span:first-child{ color:var(--iq-muted); }
.iq-public-meta-row span:last-child{ text-align:right; font-weight:650; }
.iq-public-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.iq-public-tag{ display:inline-flex; align-items:center; min-height:30px; padding:0 11px; border-radius:999px; background:var(--iq-soft); color:var(--iq-muted); font-size:12px; font-weight:650; }

.iq-public-form{ display:grid; gap:18px; }
.iq-public-search{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:10px; max-width:none; height:38px; border-radius:999px; background:rgba(255,255,255,.88); box-shadow:inset 0 0 0 1px rgba(0,0,0,.055); padding:0 8px 0 12px; }
.iq-public-form-section{ padding:clamp(22px,3vw,36px) 0; border-top:1px solid var(--iq-line); }
.iq-public-form-section:first-child{ padding-top:0; border-top:0; }
.iq-public-form-section h2{ margin-bottom:20px; font-family:var(--iq-display); font-weight:400; font-size:clamp(30px,3.5vw,48px); line-height:.95; letter-spacing:-.05em; }
.iq-public-form-row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.iq-public-form-group{ margin-top:16px; }
.iq-public-form-group:first-child{ margin-top:0; }
/* Dans une rangée à 2 colonnes, les groupes ne doivent pas hériter du
   margin-top d'empilement : sinon la 2e colonne (ex. « Nom ») descend de 16px
   et se décale par rapport à la 1re (« Prénom »). L'espacement vient du gap. */
.iq-public-form-row > .iq-public-form-group{ margin-top:0; }
.iq-public-form-group label{ display:block; margin-bottom:7px; color:var(--iq-muted); font-size:13px; font-weight:650; }
.iq-public-form-group .iq-field{ background:rgba(255,255,255,.76); }
.iq-public-hint{ display:block; margin-top:7px; color:var(--iq-muted); font-size:12px; line-height:1.4; }
.iq-public-check{ display:flex; align-items:flex-start; gap:10px; color:var(--iq-muted); font-size:13px; line-height:1.4; }
.iq-public-check input{ margin-top:3px; accent-color:var(--iq-accent); }
.iq-public-actions{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:20px; }
.iq-public-notice{ padding:16px 18px; border:1px solid var(--iq-line); border-radius:18px; color:var(--iq-ink); background:#fff; box-shadow:inset 0 0 0 1px rgba(0,0,0,.055); }
.iq-public-notice--success{ border-color:var(--iq-accent); }
.iq-public-notice--error{ border-color:#a33; }
.iq-public-notice p + p{ margin-top:6px; }

.iq-public-tabs{ display:flex; gap:22px; flex-wrap:wrap; border-bottom:1px solid var(--iq-line); margin-bottom:clamp(28px,4vw,48px); }
.iq-public-tab{ padding:12px 0; margin-bottom:-1px; border-bottom:2px solid transparent; color:var(--iq-muted); font-size:14px; font-weight:650; text-decoration:none; }
.iq-public-tab:hover,.iq-public-tab.is-active{ color:var(--iq-ink); border-bottom-color:var(--iq-accent); }
.iq-public-list{ border-top:1px solid var(--iq-line); }
.iq-public-list-item{ display:flex; justify-content:space-between; align-items:center; gap:22px; padding:18px 2px; border-bottom:1px solid var(--iq-line); }
.iq-public-list-item h3{ font-family:var(--iq-display); font-size:clamp(22px,2.5vw,32px); font-weight:400; line-height:.95; letter-spacing:-.045em; }
.iq-public-list-item p{ margin-top:6px; color:var(--iq-muted); font-size:13px; }
.iq-public-empty{ padding:clamp(34px,6vw,78px); border:0; border-top:1px solid rgba(0,0,0,.08); border-bottom:1px solid rgba(0,0,0,.08); border-radius:0; text-align:center; }
.iq-public-empty h2,.iq-public-empty h3{ font-family:var(--iq-display); font-size:clamp(30px,4vw,52px); font-weight:400; line-height:.92; letter-spacing:-.05em; }
.iq-public-empty p{ max-width:48ch; margin:12px auto 0; color:var(--iq-muted); line-height:1.45; }
.iq-public-empty .iq-public-actions{ justify-content:center; }
/* CTA d'etat vide : plus d'air au-dessus et a l'interieur (evite l'effet serre). */
.iq-public-empty .iq-btn{ margin-top:22px; padding:14px 28px; }

body.iq-public-modern .entry-content{ max-width:760px; color:var(--iq-ink); font-size:clamp(16px,1.15vw,19px); line-height:1.62; }
body.iq-public-modern .entry-content > * + *{ margin-top:1.15em; }
body.iq-public-modern .entry-content h2,
body.iq-public-modern .entry-content h3,
body.iq-public-modern .entry-content h4{ margin-top:1.7em; font-family:var(--iq-display); font-weight:400; line-height:.98; letter-spacing:-.045em; }
body.iq-public-modern .entry-content h2{ font-size:clamp(34px,4vw,58px); }
body.iq-public-modern .entry-content h3{ font-size:clamp(27px,3vw,40px); }
body.iq-public-modern .entry-content a{ color:var(--iq-ink); text-decoration-color:var(--iq-accent); text-decoration-thickness:2px; text-underline-offset:3px; }
body.iq-public-modern .entry-content img{ border-radius:var(--iq-image-radius); }
body.iq-public-modern .entry-content blockquote{ margin-left:0; padding:6px 0 6px 22px; border-left:4px solid var(--iq-accent); font-family:var(--iq-display); font-size:clamp(24px,3vw,38px); line-height:1.05; }
body.iq-public-modern .entry-content hr{ border:0; border-top:1px solid var(--iq-line); margin:2.4em 0; }
body.iq-public-modern .entry-content .wp-block-button__link{ border-radius:999px; padding:11px 16px; background:var(--iq-ink); color:var(--iq-bg); font-family:var(--iq-body); font-size:14px; font-weight:650; text-decoration:none; }
body.iq-public-modern .entry-content .wp-block-button__link:hover{ background:var(--iq-accent); color:var(--iq-panel-ink); }
body.iq-public-modern .entry-content table{ width:100%; border-collapse:collapse; font-size:14px; }
body.iq-public-modern .entry-content th,
body.iq-public-modern .entry-content td{ padding:12px 10px; border-bottom:1px solid var(--iq-line); text-align:left; }
body.iq-public-modern .entry-content th{ color:var(--iq-muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }

body.iq-public-modern .entry-content .iq-section{ margin-top:clamp(38px,5vw,68px); padding:clamp(28px,4vw,52px) 0 0; border-top:1px solid var(--iq-line); }
body.iq-public-modern .entry-content .iq-section-label{ display:inline-flex; align-items:center; gap:8px; margin-bottom:14px; color:var(--iq-muted); font-size:12px; font-weight:700; }
body.iq-public-modern .entry-content .iq-section-label:before{ content:""; width:9px; height:9px; border-radius:2px; background:var(--iq-accent); }
body.iq-public-modern .entry-content .iq-section__title{ margin-top:0; font-size:clamp(34px,4vw,58px); }
body.iq-public-modern .entry-content .iq-team-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--iq-gap); max-width:1100px; margin-top:24px; }
body.iq-public-modern .entry-content .iq-team-member{ padding:12px; border:1px solid rgba(0,0,0,.07); border-radius:var(--iq-image-radius); background:rgba(255,255,255,.62); }
body.iq-public-modern .entry-content .iq-team-member__photo{ aspect-ratio:1; border-radius:12px; overflow:hidden; background:var(--iq-soft); }
body.iq-public-modern .entry-content .iq-team-member__photo img{ width:100%; height:100%; object-fit:cover; border-radius:0; }
body.iq-public-modern .entry-content .iq-team-member__name{ margin-top:14px; font-family:var(--iq-display); font-size:clamp(24px,2.5vw,34px); line-height:.95; letter-spacing:-.045em; }
body.iq-public-modern .entry-content .iq-team-member__role{ margin-top:5px; color:var(--iq-muted); font-size:13px; }

/* Cartes projet (.card-projet) hors rÃ©pertoire : version Â« survol Â» dÃ©finie plus bas (source unique). */

body.iq-public-modern .navigation.pagination,
body.iq-public-modern nav.pagination{ margin-top:34px; }
body.iq-public-modern .nav-links,
body.iq-public-modern nav.pagination{ display:flex; flex-wrap:wrap; gap:8px; }
body.iq-public-modern .page-numbers{ min-width:40px; min-height:40px; display:grid; place-items:center; padding:0 12px; border:1px solid var(--iq-line); border-radius:999px; color:var(--iq-ink); text-decoration:none; }
body.iq-public-modern .page-numbers.current,
body.iq-public-modern .page-numbers:hover{ border-color:var(--iq-ink); background:var(--iq-ink); color:var(--iq-bg); }

/* Cartes artiste (.iq-artist-card) : version Â« survol Â» dÃ©finie plus bas (source unique). */

.artist-profile-card .artist-avatar{ margin-bottom:12px; border:0; max-width:300px; }
/* Pastille « Membre professionnel » déplacée sous l'avatar, sur sa propre ligne. */
.artist-profile-card .artist-pro-line{ margin:0 0 12px; }
.artist-profile-card .artist-pro-line .iq-badge-pro{ margin-left:0; }
.artist-profile-card > h2{ font-size:clamp(32px,3.5vw,48px); }
.artist-profile-card .artist-specialty{ margin-top:6px; }
.artist-profile-card .info-section{ padding-top:20px; margin-top:20px; padding-bottom:0; margin-bottom:0; border-bottom:0; }
.artist-profile-card .info-section .iq-kicker{ margin-bottom:12px; }
.artist-profile-card .stats-grid-small{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.artist-profile-card .stat-item{ padding:12px; border-radius:10px; background:color-mix(in srgb,var(--iq-bg) 72%,white); border:1px solid rgba(0,0,0,.07); }
.artist-profile-card .stat-number{ font-family:var(--iq-display); font-size:30px; line-height:1; letter-spacing:-.04em; }
.artist-profile-card .stat-label{ margin-top:6px; color:var(--iq-muted); font-size:11px; font-weight:650; }
.artist-profile-card .social-links{ display:flex; gap:7px; flex-wrap:wrap; margin-top:10px; }
.artist-profile-card .iq-btn--block + .iq-btn--block{ margin-top:8px; }

.iq-project-page .project-media{ display:grid; gap:var(--iq-gap); margin-top:18px; }
.iq-project-page .media-item img{ display:block; width:100%; height:auto; }
.iq-project-page .project-blocks[data-background="light"],
.iq-project-page .project-blocks[data-background="dark"],
.iq-project-page .project-blocks[data-background="black"]{ margin-left:0; margin-right:0; padding-inline:clamp(18px,3vw,42px); }
.iq-project-page .project-blocks [data-width="wide"],
.iq-project-page .project-blocks [data-width="full"]{ width:100%; max-width:none; margin-left:0; margin-right:0; }
.iq-project-page .project-description{ margin-top:clamp(34px,5vw,70px); }
.iq-project-page .iq-public-card + .iq-public-card{ margin-top:14px; }
.iq-project-page .info-label{ color:var(--iq-muted); }
.iq-project-artist .artist-mini{ display:flex; gap:12px; align-items:center; margin-bottom:16px; }
/* Filet de l'avatar en gris (--iq-line), comme les pastilles — et non en noir
   hérité de style.css (retour bêta-test, 28 juin 2026). */
.iq-project-artist .artist-avatar-small{ width:58px; height:58px; flex:0 0 auto; overflow:hidden; border:1px solid var(--iq-line); border-radius:999px; display:grid; place-items:center; background:var(--iq-soft); color:var(--iq-muted); font-size:11px; }
.iq-project-artist .artist-avatar-small img{ width:100%; height:100%; object-fit:cover; }
.iq-project-artist .artist-mini-info h4{ font-size:24px; }
.iq-project-artist .artist-mini-info p{ margin-top:4px; font-size:12px; }
.iq-project-artist .iq-btn + .iq-btn{ margin-top:8px; }

/* Bloc Â« coup de cÅ“ur Â» du commissaire sur la page projet (+ lightbox) */
.iq-curation-pick{ box-shadow:inset 0 0 0 2px var(--iq-accent); }
.iq-curation-pick .iq-kicker{ color:var(--iq-ink); }
.iq-curation-pick__hint{ margin:8px 0 14px; color:var(--iq-muted); font-size:13px; line-height:1.4; }
.iq-curation-pick .iq-btn.is-active{ background:var(--iq-accent); color:var(--iq-panel-ink); }

/* Page Â« Mon commissariat Â» (portail â€” surface accent) */
.iq-commissariat-intro p{ margin-top:8px; max-width:70ch; color:var(--ptxt); line-height:1.4; }
.iq-commissariat-bar{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin:20px 0 4px; }
.iq-commissariat-progress{ display:flex; align-items:baseline; gap:7px; }
.iq-commissariat-count{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(34px,4vw,52px); line-height:1; letter-spacing:-.04em; color:var(--ptxt); }
.iq-commissariat-total{ font-size:14px; font-weight:600; color:var(--ptxt); opacity:.78; }
.iq-commissariat-locked{ display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--ptxt); }
.iq-comm-state--on{ background:color-mix(in srgb, var(--iq-accent) 16%, transparent); padding:6px 12px; border-radius:999px; }
.iq-comm-state--off{ opacity:.82; }
.iq-commissariat-bar .iq-btn[disabled]{ opacity:.5; cursor:not-allowed; }

/* Tuile spÃ©ciale Â« Mon commissariat Â» sur le tableau de bord â€” fond noir */
.iq-tool.iq-tool--feature{ background:var(--iq-panel-ink); border-color:var(--iq-panel-ink); color:#fff; }
.iq-tool.iq-tool--feature:hover{ background:var(--iq-panel-ink); transform:translateY(-2px); }
.iq-tool.iq-tool--feature .iq-kicker{ color:var(--iq-accent); }
.iq-tool.iq-tool--feature .iq-kicker:before{ background:var(--iq-accent); }
.iq-tool.iq-tool--feature h3{ color:var(--iq-accent); }
.iq-tool.iq-tool--feature p{ color:rgba(255,255,255,.74); }
.iq-tool.iq-tool--feature .go{ color:var(--iq-accent); }

/* Grille de sÃ©lection â€” vignettes identiques au moodboard du rÃ©pertoire (pastille + titre au survol, sans encadrÃ©), sur 3 colonnes, coins arrondis */
.iq-comm-wall{ margin-top:10px; grid-template-columns:repeat(3,1fr); }
.iq-comm-wall .iq-mood-tile{ border-radius:var(--iq-image-radius,14px); }
.iq-comm-wall .iq-mood-open{ cursor:zoom-in; }
@media(max-width:680px){ .iq-comm-wall{ grid-template-columns:repeat(2,1fr); } }
.iq-comm-remove{ position:absolute; top:12px; right:12px; z-index:12; width:34px; height:34px; display:grid; place-items:center; border:0; border-radius:999px; background:rgba(17,17,15,.82); color:#fff; font-size:21px; line-height:1; cursor:pointer; transition:transform .16s var(--ease), background .16s var(--ease); }
.iq-comm-remove:hover,.iq-comm-remove:focus-visible{ outline:0; transform:scale(1.08); background:#11110f; }
.iq-comm-remove:disabled{ opacity:.6; cursor:wait; }

/* Bandeau d'incitation Â« Portfolio illimitÃ© Â» (limite atteinte) */
.iq-portfolio-upsell{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin:14px 0 6px; padding:clamp(16px,2vw,22px); border-radius:16px; background:var(--iq-panel-ink); color:#fff; }
.iq-portfolio-upsell__copy{ min-width:0; }
.iq-portfolio-upsell .iq-kicker{ color:var(--iq-accent); margin-bottom:6px; }
.iq-portfolio-upsell .iq-kicker:before{ background:var(--iq-accent); }
.iq-portfolio-upsell p{ margin:0; max-width:60ch; color:rgba(255,255,255,.8); line-height:1.4; }
.iq-portfolio-upsell .iq-btn--primary{ background:var(--iq-accent); border-color:var(--iq-accent); color:var(--iq-panel-ink); white-space:nowrap; }
.iq-portfolio-upsell .iq-btn--primary:hover{ background:#b94d12; border-color:#b94d12; }
.iq-adhesion-extra-ok{ display:inline-flex; align-items:center; gap:6px; margin-top:16px; font-weight:700; color:var(--ptxt); }
.iq-account-membership{ border:1px solid var(--iq-line); border-radius:14px; padding:clamp(16px,2vw,22px); background:rgba(255,255,255,.6); }
.iq-account-membership p{ margin:0; }
.iq-account-membership__hint{ margin-top:6px; color:var(--iq-muted); font-size:14px; line-height:1.4; }

/* Page projet : la coquille reprend la Â« feuille crÃ¨me arrondie Â» de l'aperÃ§u de l'Ã©diteur.
   L'ombre douce fait flotter la feuille mÃªme si le fond de page est lui aussi crÃ¨me. */
/* Page projet : on masque l'en-tête (surtitre « Projet » + retour « Portfolio »)
   et on resserre — comme la lightbox. L'élément reste dans le DOM (la lightbox
   clone .iq-public-head pour son propre rendu) ; il est juste caché ici. */
body.single-projet .iq-public-head{ display:none; }
body.single-projet .iq-public-content{ padding-top:0; } /* resserrer : plus de tampon sous l'en-tête masqué */
body.single-projet .iq-public-shell{
  width:min(1420px, calc(100% - 2 * var(--iq-gut))); /* même largeur que la lightbox projet */
  margin:calc(var(--nav-height) + clamp(18px,3vw,40px)) auto clamp(44px,6vw,90px);
  padding:clamp(28px,4vw,60px);
  background:#f6f4ee;
  border:1px solid rgba(0,0,0,.07);
  border-radius:30px;
  box-shadow:0 28px 80px rgba(29,42,76,.12);
}
/* ParitÃ© avec l'aperÃ§u de l'Ã©diteur : le contenu du projet est un conteneur
   ARRONDI et contenu (comme .preview-container), pas un bandeau carrÃ© pleine
   largeur â€” sinon les coins ne suivent pas la feuille crÃ¨me. */
.project-blocks{ border-radius:20px; overflow:hidden; padding:clamp(18px,2.4vw,32px); }
.project-blocks[data-background="white"]{ background:#fff; }
.project-blocks[data-background="light"]{ background:#eceae4; margin-left:0; margin-right:0; padding:clamp(18px,2.4vw,32px); }
.project-blocks[data-background="dark"]{ background:#1a1a1a; color:#fff; margin-left:0; margin-right:0; padding:clamp(18px,2.4vw,32px); }
.project-blocks[data-background="black"]{ background:#000; color:#fff; margin-left:0; margin-right:0; padding:clamp(18px,2.4vw,32px); }

/* Projet ouvert depuis le RÃ©pertoire */
body.iq-project-lightbox-open{ overflow:hidden; }
.iq-project-lightbox{ position:fixed; inset:0; z-index:12000; pointer-events:none; }
.iq-project-lightbox.is-open{ pointer-events:auto; }
/* Voile : fond + flou animés ENSEMBLE (assombrissement et flou synchronisés et
   progressifs). On n'anime plus l'opacité du parent, sinon le backdrop-filter ne
   s'applique qu'une fois l'opacité à 1 → le flou « snappait » après l'assombrissement. */
.iq-project-lightbox-backdrop{ position:absolute; inset:0; background:rgba(17,17,15,0); backdrop-filter:blur(0px); -webkit-backdrop-filter:blur(0px); transition:background .32s var(--iq-ease), backdrop-filter .32s var(--iq-ease), -webkit-backdrop-filter .32s var(--iq-ease); }
.iq-project-lightbox.is-open .iq-project-lightbox-backdrop{ background:rgba(17,17,15,.46); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
/* Économie GPU : le flou d'arrière-plan est l'un des effets les plus coûteux —
   précisément pénible sur les iPad des membres. Sur tactile ou en sobriété
   demandée, le voile sombre suffit. */
@media (pointer:coarse), (prefers-reduced-motion: reduce){
  .iq-project-lightbox-backdrop,
  .iq-project-lightbox.is-open .iq-project-lightbox-backdrop{ backdrop-filter:none; -webkit-backdrop-filter:none; }
}
.iq-project-lightbox-dialog{ position:absolute; inset:clamp(24px,2.5vw,40px); overflow:hidden; border-radius:22px; background:var(--iq-bg); color:var(--iq-ink); box-shadow:0 24px 72px rgba(0,0,0,.22); opacity:0; transform:translateY(16px) scale(.992); transition:transform .28s var(--iq-ease), opacity .26s var(--iq-ease); }
.iq-project-lightbox.is-open .iq-project-lightbox-dialog{ opacity:1; transform:none; }
.iq-project-lightbox-toolbar{ position:absolute; top:14px; right:14px; z-index:20; display:flex; flex-direction:row-reverse; align-items:center; gap:8px; }
.iq-project-lightbox-toolbar button{ min-height:36px; padding:0 13px; border:1px solid rgba(0,0,0,.09); border-radius:999px; background:rgba(255,255,255,.94); color:var(--iq-ink); box-shadow:0 7px 22px rgba(0,0,0,.07); cursor:pointer; font:inherit; font-weight:700; }
.iq-project-lightbox-toolbar button:hover{ background:var(--iq-accent); color:var(--iq-panel-ink); }
.iq-project-lightbox-toolbar button:disabled{ opacity:.38; pointer-events:none; }
.iq-project-lightbox-nav{ display:flex; gap:6px; }
.iq-project-lightbox-scroll{ height:100%; overflow:auto; overscroll-behavior:contain; }
.iq-project-lightbox-stage{ min-height:100%; }
.iq-project-lightbox-shell{ width:min(1420px,100%); margin:0 auto; padding:clamp(72px,7vw,108px) var(--iq-gut) clamp(54px,7vw,100px); }
.iq-project-lightbox-shell .iq-public-content{ padding-top:clamp(22px,2.7vw,40px); }
.iq-project-lightbox-shell .iq-public-layout--floating-aside{ grid-template-columns:minmax(0,1fr) clamp(290px,22vw,350px); }
.iq-project-lightbox-shell .iq-public-aside{ top:72px; }

/* ══ Lightbox PROJET transparente — deux bentos crème ══════════════════════
   Scopée à .iq-project-lightbox:not(.iq-artist-lightbox) → ne touche QUE la
   lightbox d'UN projet (répertoire, portfolio public, projets sauvegardés).
   Les lightbox « portfolio d'artiste » (.iq-artist-lightbox) gardent leur
   cadre crème d'origine ; la page projet pleine (hors modale) est intacte. */
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-dialog{ inset:0; border-radius:0; background:transparent; box-shadow:none; }
/* Scroll plein écran, barre masquée (molette/trackpad + Précédent/Suivant). */
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-scroll{ scrollbar-width:none; -ms-overflow-style:none; }
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-scroll::-webkit-scrollbar{ width:0; height:0; display:none; }
/* [Bêta-test] Bouton « Fermer » visible aussi en desktop : la fermeture par clic
   à l'extérieur / Échap n'était pas assez découvrable. Précédent / Suivant
   restent réservés au mobile (≤700px) — en desktop la navigation se fait au
   clavier (←/→) et l'allure épurée est conservée. */
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-nav{ display:none; }
/* Remonter les bentos + aligner le haut des deux colonnes. */
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-shell{ padding:clamp(58px,5vw,74px) var(--iq-gut) clamp(40px,5vw,72px); }
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-shell .iq-public-content{ padding-top:0; }
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-shell .iq-public-head{ display:none; }
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-shell .iq-public-layout{ align-items:start; }
/* Colonne droite élargie de ~44px pour compenser le padding du bento crème. */
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-shell .iq-public-layout--floating-aside{ grid-template-columns:minmax(0,1fr) clamp(334px,24vw,396px); }
/* Bento GAUCHE : galerie, hauteur ajustée au contenu (pas de min-height
   forcée → pas de grand vide sous les projets à peu d'images). Fond = canvas
   du projet tel que choisi : BLANC par défaut (preset « blanc » → #fff hérité
   du gabarit), sinon la couleur choisie (clair / sombre / noir / personnalisée). */
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-shell .project-blocks{ border-radius:22px; }
/* Padding bas symétrique : neutraliser la marge du DERNIER élément rendu
   (le correctif PHP cible le dernier bloc de données, qui peut être vide). */
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-shell .project-blocks > *:last-child{ margin-bottom:0 !important; }
/* Bento DROITE : grand bento crème contenant les cartes blanches (inchangées). */
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-shell .iq-public-aside{ background:var(--iq-bg); border-radius:22px; padding:clamp(16px,1.3vw,22px); align-self:start; }
.iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-shell .iq-public-aside .iq-project-titlecard{ margin-bottom:14px; padding:2px 6px 0; }
.iq-project-lightbox-loading{ min-height:70vh; display:grid; place-items:center; color:var(--iq-muted); font-size:14px; }
/* Spinner de chargement (remplace le texte « Chargement… ») — clair, visible sur le voile sombre. */
.iq-project-lightbox-spinner{ width:34px; height:34px; border-radius:50%; border:3px solid rgba(255,255,255,.32); border-top-color:rgba(255,255,255,.92); animation:iq-lightbox-spin .7s linear infinite; }
@keyframes iq-lightbox-spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .iq-project-lightbox-spinner{ animation-duration:1.6s; } }
.iq-project-lightbox.is-loading .iq-project-lightbox-nav{ opacity:.45; pointer-events:none; }
@media(max-width:1040px){
  /* La règle propre à la lightbox de projet (plus spécifique) forçait une 2e
     colonne fixe qui écrasait le contenu du projet à ~6px sur mobile. On repasse
     en une seule colonne avec une spécificité équivalente. */
  .iq-project-lightbox-shell .iq-public-layout--floating-aside,
  .iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-shell .iq-public-layout--floating-aside{ grid-template-columns:1fr; }
  .iq-project-lightbox-shell .iq-public-aside{ position:static; }
}
@media(max-width:700px){
  .iq-project-lightbox-dialog{ inset:0; width:auto; transform:translateY(16px) scale(.992); border-radius:0; }
  .iq-project-lightbox.is-open .iq-project-lightbox-dialog{ transform:none; }
  /* Plein écran sur mobile : plus de marge « cliquer autour » pour fermer, donc
     on réaffiche aussi Précédent / Suivant (Fermer est déjà visible partout). */
  .iq-project-lightbox:not(.iq-artist-lightbox) .iq-project-lightbox-nav{ display:flex; }
  .iq-project-lightbox-toolbar{ left:10px; right:10px; justify-content:space-between; }
  .iq-project-lightbox-nav button{ padding:0 10px; }
  .iq-project-lightbox-shell{ padding-top:76px; }
}

.iq-public-account-actions{ display:flex; justify-content:flex-end; margin-top:calc(clamp(28px,4.5vw,64px) * -1); margin-bottom:24px; }
.iq-follow-card{ text-align:center; }
.iq-follow-card__avatar{ margin:0 auto 16px; max-width:180px; }
.iq-follow-card > h3{ font-size:clamp(26px,2.7vw,38px); }
.iq-follow-card > p{ margin:6px 0 16px; }
.iq-follow-card .iq-btn + .iq-btn{ margin-top:8px; }
.iq-contract-list{ margin-top:24px; }
.iq-contract-list .contrat-status{ display:inline-flex; padding:6px 9px; border-radius:999px; background:var(--iq-soft); color:var(--iq-muted); font-size:10px; font-weight:750; text-transform:uppercase; letter-spacing:.03em; }
.iq-contract-list .contrat-info h3{ margin-top:9px; }
.iq-contract-list .contrat-date{ display:block; margin-top:8px; color:var(--iq-muted); font-size:11px; }
.iq-contract-list .contrat-actions{ display:flex; gap:7px; flex-wrap:wrap; }

.iq-auth-page{ max-width:100%; }
.iq-auth-card{ max-width:580px; margin:0 auto; }
.iq-auth-options{ display:flex; justify-content:space-between; gap:16px; align-items:center; flex-wrap:wrap; }
.iq-auth-options a,.auth-switch a{ color:var(--iq-ink); text-decoration-color:var(--iq-accent); text-underline-offset:3px; }
.auth-switch{ margin-top:22px; color:var(--iq-muted); text-align:center; font-size:13px; }
.iq-auth-plans{ align-items:stretch; }
.iq-auth-plan{ display:flex; min-height:100%; flex-direction:column; color:inherit; text-decoration:none; transition:transform .2s var(--iq-ease),border-color .2s var(--iq-ease); }
.iq-auth-plan:hover{ transform:translateY(-3px); border-color:var(--iq-accent); }
.iq-auth-plan h3{ font-size:clamp(28px,3vw,42px); }
.iq-auth-plan p{ margin-top:10px; }
.iq-auth-plan .price{ display:block; margin:22px 0 14px; color:var(--iq-ink); font-size:12px; font-weight:750; }
.iq-auth-plan .iq-btn{ margin-top:auto; }
/* Case « + Portfolio illimité » : épinglée en bas, juste au-dessus du bouton. */
.iq-auth-plan-addon{ display:flex; align-items:flex-start; gap:9px; margin-top:auto; padding-top:14px; border-top:1px solid rgba(0,0,0,.07); cursor:pointer; font-size:13.5px; line-height:1.4; color:var(--iq-ink); }
.iq-auth-plan-addon input{ flex:0 0 auto; width:16px; height:16px; margin:1px 0 0; accent-color:var(--iq-accent); cursor:pointer; }
.iq-auth-plan-addon strong{ white-space:nowrap; }
.iq-auth-plan-addon + .iq-btn{ margin-top:12px; }
.iq-auth-register-intro{ margin:0 0 clamp(22px,3vw,34px); color:var(--iq-muted); text-align:left; }
.iq-auth-plan .iq-kicker{ display:block; margin-bottom:6px; }
.iq-auth-plan-features{ margin:12px 0 0; padding:0; list-style:none; }
.iq-auth-plan-features li{ position:relative; padding-left:20px; margin:7px 0; font-size:14px; line-height:1.45; }
.iq-auth-plan-features li:before{ content:"\2713"; position:absolute; left:0; top:0; font-weight:750; color:var(--iq-accent); }
.iq-auth-upsell{ margin:clamp(22px,3vw,34px) 0 0; padding:clamp(18px,2.4vw,28px); border:1px solid var(--iq-line); border-radius:14px; background:var(--iq-soft); text-align:left; }
.iq-auth-upsell h3{ margin:12px 0 10px; font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(27px,3vw,40px); line-height:1; letter-spacing:-.035em; color:var(--iq-ink); }
.iq-auth-upsell p{ margin:0; }
.iq-auth-upsell strong{ white-space:nowrap; }
.iq-adhesion-shortcode{ margin:clamp(22px,3vw,34px) 0; }
/* Page PMPro « Niveaux d'adhésion » : le shortcode est rendu dans .entry-content,
   dont les styles de prose fuient sur les formules. On rétablit l'apparence prévue
   (identique à la page Devenir membre) : carte-lien non soulignée + marges de titres. */
.iq-public-card.iq-auth-plan{ text-decoration:none; }
body.iq-public-modern .entry-content .iq-auth-plan h3{ margin-top:0; }
body.iq-public-modern .entry-content .iq-auth-upsell h3{ margin-top:12px; }

.iq-contract-success{ padding:clamp(24px,4vw,42px); }
.iq-contract-success h2{ font-family:var(--iq-display); font-size:clamp(32px,4vw,54px); font-weight:400; line-height:.95; letter-spacing:-.05em; margin-bottom:14px; }
.iq-contract-form a{ color:var(--iq-ink); text-decoration-color:var(--iq-accent); text-underline-offset:3px; }

@media(max-width:1040px){
  .iq-public-grid--4{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .iq-public-layout--floating-aside{ grid-template-columns:1fr; }
  .iq-public-layout--floating-aside .iq-public-aside{ position:static; }
}
@media(max-width:860px){
  .iq-public-layout{ grid-template-columns:1fr; }
  .iq-public-aside{ position:static; }
  .iq-public-grid,.iq-public-grid--4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.iq-public-modern .entry-content .iq-team-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px){
  .iq-public-grid,.iq-public-grid--4,.iq-public-grid--2,.iq-public-form-row{ grid-template-columns:1fr; }
  .iq-public-list-item{ align-items:flex-start; flex-direction:column; }
  body.iq-public-modern .entry-content .iq-team-grid{ grid-template-columns:1fr; }
}

/* Raffinement v47 â€” pages publiques alignÃ©es sur la rÃ©fÃ©rence du rÃ©pertoire. */
body.iq-public-modern{
  --nav-height:58px;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
body.iq-public-modern .nav:not(.iq-membernav){ height:var(--nav-height); }
body.iq-public-modern .nav:not(.iq-membernav) .nav__content{ padding-left:var(--iq-gut); padding-right:var(--iq-gut); }
body.iq-public-modern .nav:not(.iq-membernav) .nav__links{ gap:0; height:100%; }
body.iq-public-modern .nav:not(.iq-membernav) .nav__link{ display:flex; align-items:center; height:var(--nav-height); padding:0 16px; border-left:1px solid rgba(0,0,0,.08); }
body.iq-public-modern .nav:not(.iq-membernav) .nav__link--bordered{ height:auto; margin-left:10px; padding:8px 13px; border-left:1px solid var(--iq-ink); }

/* En-tÃªte + coquille : fusionnÃ©s plus haut (source unique). */

/* Sections + layout : fusionnÃ©s plus haut (source unique). */

.iq-public-search-section{ position:sticky; top:calc(var(--nav-height) + var(--iq-abo,0px)); z-index:80; margin:0 calc(var(--iq-gut) * -1) clamp(22px,3vw,40px); padding:7px var(--iq-gut); border-top:0; border-bottom:1px solid rgba(0,0,0,.055); background:var(--iq-bg); background:color-mix(in srgb,var(--iq-bg) 94%,white); box-shadow:0 1px 0 rgba(0,0,0,.055),0 10px 24px rgba(0,0,0,.035); }
/* .iq-public-search (barre) : fusionnÃ©e plus haut (source unique). */
.iq-public-search:before{ content:"Recherche"; align-self:center; color:var(--iq-muted); font-size:12px; font-weight:680; letter-spacing:-.025em; }
.iq-public-search .iq-field{ min-height:0; height:100%; padding:0; border-radius:0; background:transparent; box-shadow:none; font-size:15px; font-weight:560; letter-spacing:-.025em; }
.iq-public-search .iq-field:focus{ box-shadow:none; }
.iq-public-search .iq-btn{ min-height:26px; height:26px; padding:0 10px; font-size:12px; background:var(--iq-soft); border:0; color:var(--iq-muted); }
.iq-public-search .iq-btn:hover{ background:var(--iq-accent); color:var(--iq-panel-ink); }

/* Cartes / meta / empty / notice : fusionnÃ©s plus haut (source unique). */

/* Titre du projet dans la colonne de droite, au-dessus du bento. */
.iq-project-titlecard{ padding:0 4px 4px; }
.iq-project-titlecard h1{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(30px,2.8vw,44px); line-height:.94; letter-spacing:-.05em; color:var(--iq-ink); overflow-wrap:break-word; word-break:break-word; }
.iq-project-titlecard p{ margin-top:8px; color:var(--iq-muted); font-size:14px; letter-spacing:-.02em; }
.iq-project-titlecard p a{ color:var(--iq-ink); text-decoration:underline; text-underline-offset:2px; }
.iq-project-titlecard p a:hover{ color:var(--iq-accent); }

body.iq-public-modern .card-projet{ position:relative; display:block; aspect-ratio:1/1; border:0; border-radius:var(--iq-image-radius); background:var(--iq-soft); overflow:hidden; isolation:isolate; cursor:pointer; transition:transform .28s var(--iq-ease); box-shadow:none; }
/* Le filet 1px noir de .card (style.css) ne s'applique jamais aux vignettes projet. */
.card.card-projet{ border:0; }
body.iq-public-modern .card-projet:hover{ transform:translateY(-2px); }
body.iq-public-modern .card-projet__link{ position:absolute; inset:0; display:block; color:inherit; text-decoration:none; }
body.iq-public-modern .card-projet__image{ position:absolute; inset:0; aspect-ratio:auto; border-radius:0; background-color:var(--iq-soft); background-size:cover; background-position:center; display:grid; place-items:center; color:var(--iq-muted); font-size:12px; font-weight:700; }
/* Dégradé gris en bas des vignettes du portfolio RETIRÉ (retour bêta-test, 28 juin 2026) :
   il créait à la fois le « grisé en bas » et le « filet sombre » juste au-dessus du bandeau de titre. */
body.iq-public-modern .card-projet__badge,
body.iq-public-modern .card-projet__arrow{ position:absolute; top:14px; z-index:8; background:rgba(255,255,255,.92); border-radius:999px; font-size:12px; line-height:1; font-weight:680; letter-spacing:-.025em; }
body.iq-public-modern .card-projet__badge{ left:14px; max-width:calc(100% - 68px); padding:9px 11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.iq-public-modern .card-projet__arrow{ right:14px; width:34px; height:34px; display:grid; place-items:center; }
/* border:0 neutralise le « border-top:1px solid noir » hérité de style.css (ancien design),
   qui dessinait un filet noir sur le dessus du bandeau de titre (retour bêta-test, 28 juin 2026). */
body.iq-public-modern .card-projet__info{ position:absolute; left:10px; right:10px; bottom:10px; z-index:8; border:0; background:rgba(255,255,255,.94); border-radius:12px; padding:13px; opacity:0; transform:translateY(10px); transition:.24s var(--iq-ease); }
body.iq-public-modern .card-projet:hover .card-projet__info{ opacity:1; transform:translateY(0); }
body.iq-public-modern .card-projet__title{ font-family:var(--iq-display); font-weight:400; font-size:clamp(26px,2.3vw,38px); line-height:1.05; letter-spacing:-.055em; color:var(--iq-ink); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.iq-public-modern .card-projet__artist{ margin-top:6px; color:var(--iq-muted); font-size:12px; line-height:1.1; }
body.iq-public-modern .card-projet__actions{ position:absolute; top:14px; right:14px; z-index:12; display:flex; gap:7px; }
body.iq-public-modern .card-projet .action-btn{ width:34px; height:34px; display:grid; place-items:center; border:0; border-radius:999px; background:rgba(255,255,255,.92); color:var(--iq-ink); box-shadow:none; cursor:pointer; font-size:14px; line-height:1; }
body.iq-public-modern .card-projet .action-btn:hover,
body.iq-public-modern .card-projet .action-btn.is-active{ background:var(--iq-accent); color:var(--iq-panel-ink); }
body.iq-public-modern .iq-portfolio-page .card-projet__favorite{ position:absolute; top:14px; right:14px; z-index:12; width:38px; height:38px; display:grid; place-items:center; border:0; border-radius:999px; background:rgba(255,255,255,.94); color:var(--iq-ink); box-shadow:0 5px 16px rgba(0,0,0,.1); cursor:pointer; font-family:var(--iq-body); font-size:18px; line-height:1; transition:transform .18s var(--iq-ease),background .18s var(--iq-ease),color .18s var(--iq-ease); }
body.iq-public-modern .iq-portfolio-page .card-projet__favorite:hover,
body.iq-public-modern .iq-portfolio-page .card-projet__favorite:focus-visible{ transform:scale(1.06); background:var(--iq-ink); color:var(--iq-bg); }
body.iq-public-modern .iq-portfolio-page .card-projet__favorite.is-active{ background:var(--iq-ink); color:var(--iq-bg); }
body.iq-public-modern .iq-portfolio-page .card-projet__favorite:disabled{ cursor:wait; opacity:.68; }
@media(min-width:1180px){ body.iq-public-modern .card-projet{ aspect-ratio:1/1; } }

/* « Autres projets » (page projet) — hover discret façon moodboard : uniquement le
   titre + le cœur + un léger dégradé foncé pour la lisibilité (retour bêta-test, 28 juin 2026).
   Ciblé via .iq-related-projects pour ne PAS toucher les autres grilles (portfolio, recherche…). */
body.iq-public-modern .iq-related-projects .card-projet__badge,
body.iq-public-modern .iq-related-projects .card-projet__arrow,
body.iq-public-modern .iq-related-projects .card-projet__artist,
body.iq-public-modern .iq-related-projects .card-projet__actions .js-share{ display:none; }
body.iq-public-modern .iq-related-projects .card-projet__info{
    left:0; right:0; bottom:0; padding:24px 14px 12px; border-radius:0; transform:none;
    background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.58) 100%);
}
body.iq-public-modern .iq-related-projects .card-projet__title{
    color:#fff; font-family:inherit; font-size:14px; font-weight:600; line-height:1.15; letter-spacing:-.01em;
}
body.iq-public-modern .iq-related-projects .card-projet__actions{ opacity:0; transition:opacity .2s var(--iq-ease); }
body.iq-public-modern .iq-related-projects .card-projet:hover .card-projet__actions,
body.iq-public-modern .iq-related-projects .card-projet:focus-within .card-projet__actions{ opacity:1; }
@media(hover:none){ body.iq-public-modern .iq-related-projects .card-projet__actions{ opacity:1; } }
@media(hover:none){ body.iq-public-modern .card-projet__info{ opacity:1; transform:none; } }

.iq-artist-card{ position:relative; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; transition:transform .22s var(--iq-ease); }
.iq-artist-card:hover{ transform:translateY(-2px); }
.iq-artist-card .artist-card-link{ display:block; color:inherit; text-decoration:none; }
.iq-artist-card .artist-card-avatar{ position:relative; aspect-ratio:1; border-radius:var(--iq-image-radius); overflow:hidden; display:grid; place-items:center; background:var(--iq-soft); color:var(--iq-muted); box-shadow:0 12px 34px rgba(0,0,0,.055); }
.iq-artist-card .artist-card-avatar:after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 48%,rgba(0,0,0,.12)); pointer-events:none; }
.iq-artist-card .artist-card-avatar img{ width:100%; height:100%; object-fit:cover; }
.iq-artist-card .artist-card-projects{ position:absolute; left:10px; right:auto; bottom:10px; z-index:4; margin:12px 0; display:inline-flex; align-items:center; min-height:29px; padding:0 10px; border-radius:999px; background:rgba(255,255,255,.92); color:var(--iq-muted); font-size:12px; font-weight:680; letter-spacing:-.025em; }
.iq-artist-card .artist-card-arrow{ position:absolute; top:10px; right:10px; z-index:4; width:34px; height:34px; display:grid; place-items:center; border-radius:999px; background:rgba(255,255,255,.92); color:var(--iq-ink); }
.iq-artist-card .artist-card-copy{ padding:12px 2px 0; }
.iq-artist-card .artist-card-name{ margin:0; font-family:var(--iq-display); font-weight:400; font-size:clamp(26px,2.4vw,38px); line-height:.88; letter-spacing:-.055em; }
.iq-artist-card .artist-card-specialty{ margin-top:7px; color:var(--iq-muted); font-size:14px; line-height:1.18; letter-spacing:-.035em; }
.iq-artist-card > .iq-btn{ margin-top:12px; }

/* stat-item + tags : fusionnÃ©s plus haut (source unique). */

/* Contenu CMS (Gutenberg) : mÃªme cadre que les autres pages publiques.
   Le conteneur occupe toute la coquille ; seule la prose reste Ã  une mesure
   de lecture confortable, tandis que les composants (grille Ã©quipe, sections)
   s'Ã©tendent sur toute la largeur. Ã‰vite l'effet Â« gabarit diffÃ©rent Â». */
body.iq-public-modern .page-content{ max-width:none; }
body.iq-public-modern .entry-content{ max-width:none; line-height:1.58; }
body.iq-public-modern .entry-content > p,
body.iq-public-modern .entry-content > h2,
body.iq-public-modern .entry-content > h3,
body.iq-public-modern .entry-content > h4,
body.iq-public-modern .entry-content > ul,
body.iq-public-modern .entry-content > ol,
body.iq-public-modern .entry-content > blockquote,
body.iq-public-modern .entry-content > figure,
body.iq-public-modern .entry-content > .wp-block-image,
body.iq-public-modern .entry-content > .wp-block-quote{ max-width:none; }
body.iq-public-modern .entry-content .iq-team-grid{ max-width:none; }
body.iq-public-modern .entry-content .iq-team-member{ padding:0; border:0; border-radius:0; background:transparent; }
body.iq-public-modern .entry-content .iq-team-member__photo{ border-radius:var(--iq-image-radius); }

.iq-public-footer{ background:#d8d6cd; color:var(--iq-ink); margin-top:clamp(52px,7vw,110px); padding:clamp(44px,6vw,90px) var(--iq-gut) clamp(36px,5vw,72px); }
.iq-public-footer-main{ display:grid; grid-template-columns:minmax(260px,.9fr) minmax(360px,1.1fr); gap:clamp(28px,5vw,86px); align-items:start; }
.iq-public-footer-kicker{ display:flex; align-items:center; gap:8px; margin-bottom:18px; color:rgba(17,17,15,.68); font-size:12px; font-weight:700; }
.iq-public-footer-kicker:before{ content:""; width:10px; height:10px; border-radius:2px; background:var(--iq-ink); }
/* Logo image dans le footer : on masque le carré décoratif et on dimensionne l'image. */
.iq-public-footer-kicker--img{ margin-bottom:18px; }
.iq-public-footer-kicker--img:before{ display:none; }
.iq-public-footer-logo-img{ display:block; height:auto; width:auto; max-height:40px; max-width:200px; }
.iq-public-footer-statement h2{ max-width:8ch; font-family:var(--iq-display); font-weight:400; font-size:clamp(48px,6vw,104px); line-height:.82; letter-spacing:-.065em; }
.iq-public-footer-statement p{ margin-top:18px; max-width:34ch; color:rgba(17,17,15,.68); font-size:clamp(16px,1.3vw,21px); line-height:1.08; letter-spacing:-.035em; font-weight:560; }
.iq-public-footer-links{ display:grid; grid-template-columns:repeat(3,minmax(120px,1fr)); gap:clamp(18px,3vw,44px); }
.iq-public-footer-links h3{ font-size:12px; margin-bottom:14px; color:var(--iq-ink); }
.iq-public-footer-links a{ display:block; margin-top:10px; color:rgba(17,17,15,.68); line-height:1.15; text-decoration:none; }
.iq-public-footer-links a:hover{ color:var(--iq-ink); }
.iq-public-footer-bottom{ display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-top:clamp(44px,6vw,86px); padding-top:16px; border-top:1px solid rgba(17,17,15,.14); color:rgba(17,17,15,.58); font-size:12px; }
body.iq-repertoire-page .iq-public-footer{ margin-top:0; }

@media(max-width:980px){
  .iq-public-head-grid{ grid-template-columns:1fr; align-items:start; }
  .iq-public-head-note{ max-width:620px; }
}
@media(max-width:900px){
  .iq-public-footer-main,.iq-public-footer-links{ grid-template-columns:1fr; }
}
@media(max-width:768px){
  .nav:not(.iq-membernav) .nav__links{ height:auto; gap:0; }
  .nav:not(.iq-membernav) .nav__link{ height:auto; border-left:0; padding:var(--space-lg) 0; }
  .nav:not(.iq-membernav) .nav__link--bordered{ margin-left:0; }
}
@media(max-width:620px){
  .iq-public-head-top{ align-items:flex-start; flex-direction:column; }
  .iq-public-head h1{ font-size:clamp(52px,16vw,84px); }
  .iq-public-search{ grid-template-columns:minmax(0,1fr) auto; }
  .iq-public-search:before{ display:none; }
}

/* Page Artistes : liste typographique et apercu charge au survol. */
.iq-artists-shell{ position:relative; }
.iq-artists-toolbar{ position:relative; z-index:20; display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:8px; margin:0 0 clamp(28px,4vw,54px); padding:7px; border-radius:18px; background:color-mix(in srgb,var(--iq-bg) 90%,white); box-shadow:0 1px 0 rgba(0,0,0,.055),0 10px 24px rgba(0,0,0,.035); }
.iq-artists-search{ display:grid; grid-template-columns:auto auto minmax(0,1fr) auto; align-items:center; gap:9px; height:48px; padding:0 9px 0 15px; border-radius:999px; background:rgba(255,255,255,.88); box-shadow:inset 0 0 0 1px rgba(0,0,0,.055); color:var(--iq-muted); font-size:12px; }
.iq-artists-search-icon{ color:var(--iq-ink); font-family:var(--iq-display); font-size:21px; line-height:1; transform:translateY(-1px); }
.iq-artists-search-label{ white-space:nowrap; }
.iq-artists-search input{ min-width:0; height:100%; padding:0; border:0; outline:0; background:transparent; color:var(--iq-ink); font:inherit; font-size:15px; font-weight:560; letter-spacing:-.025em; }
.iq-artists-search input::-webkit-search-cancel-button{ cursor:pointer; }
/* Pas de rectangle de focus dans la pastille : on met l'état focus sur la pastille entière */
body.iq-public-modern .iq-artists-search input:focus-visible{ outline:0; }
.iq-artists-search:focus-within{ box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--iq-ink) 26%,transparent); }
.iq-artists-count{ min-width:72px; height:30px; display:inline-flex; align-items:center; justify-content:center; padding:0 10px; border-radius:999px; background:var(--iq-soft); color:var(--iq-muted); white-space:nowrap; }
.iq-artists-filter-toggle,.iq-artists-filter-reset{ min-height:48px; padding:0 17px; border:1px solid color-mix(in srgb,var(--iq-ink) 18%,transparent); border-radius:999px; background:transparent; color:var(--iq-ink); cursor:pointer; font-size:11px; font-weight:740; white-space:nowrap; }
.iq-artists-filter-toggle{ display:inline-flex; align-items:center; justify-content:center; gap:9px; }
.iq-artists-filter-toggle span{ min-width:22px; height:22px; display:grid; place-items:center; border-radius:999px; background:var(--iq-soft); color:var(--iq-muted); font-size:10px; }
.iq-artists-toolbar.filters-open .iq-artists-filter-toggle,.iq-artists-filter-toggle:hover{ background:rgba(255,255,255,.72); border-color:color-mix(in srgb,var(--iq-ink) 34%,transparent); }
.iq-artists-toolbar.has-active-filters .iq-artists-filter-toggle span{ background:var(--iq-accent); color:var(--iq-panel-ink); }
.iq-artists-shuffle{ min-height:48px; padding:0 17px; border:1px solid color-mix(in srgb,var(--iq-ink) 18%,transparent); border-radius:999px; background:transparent; color:var(--iq-ink); cursor:pointer; font-size:11px; font-weight:740; }
.iq-artists-shuffle:hover{ background:var(--iq-ink); color:var(--iq-bg); }
.iq-artists-filter-drawer{ display:none; grid-column:1/-1; grid-template-columns:repeat(3,minmax(0,1fr)) auto; align-items:stretch; gap:8px; padding-top:2px; }
.iq-artists-toolbar.filters-open .iq-artists-filter-drawer{ display:grid; }
.iq-artists-filter-reset{ align-self:stretch; color:var(--iq-muted); }
.iq-artists-filter-reset:hover{ background:var(--iq-ink); color:var(--iq-bg); }
.iq-artists-filter-reset[hidden]{ display:none; }
.iq-artists-active-filters{ grid-column:1/-1; display:flex; flex-wrap:wrap; gap:7px; }
.iq-artists-active-filters:empty{ display:none; }
.iq-artists-directory{ position:relative; display:block; min-height:520px; }
.iq-artists-heading{ margin-bottom:0; padding-bottom:14px; border-bottom:1px solid rgba(0,0,0,.14); }
.iq-artists-list{ border-bottom:1px solid rgba(0,0,0,.14); }
.iq-artist-row{ display:grid; grid-template-columns:34px minmax(0,1fr) auto 34px; align-items:center; gap:clamp(10px,1.5vw,22px); min-height:clamp(92px,9vw,138px); border-bottom:1px solid rgba(0,0,0,.14); color:var(--iq-ink); text-decoration:none; transition:opacity .18s var(--iq-ease); }
.iq-artist-row:last-child{ border-bottom:0; }
.iq-artist-row[hidden]{ display:none; }
.iq-artist-row:hover,.iq-artist-row:focus-visible,.iq-artist-row.is-active{ outline:0; }
.iq-artists-list:has(.iq-artist-row:hover) .iq-artist-row:not(:hover),
.iq-artists-list:has(.iq-artist-row.is-active) .iq-artist-row:not(.is-active){ opacity:.34; }
.iq-artist-index{ align-self:start; padding-top:clamp(25px,2.6vw,38px); color:var(--iq-muted); font-size:10px; }
.iq-artist-row-main{ min-width:0; display:flex; flex-direction:column; gap:8px; }
.iq-artist-row-main strong{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(32px,4vw,58px); line-height:.86; letter-spacing:-.06em; overflow-wrap:anywhere; }
.iq-artist-row-main small{ color:var(--iq-muted); font-size:13px; line-height:1.2; letter-spacing:-.025em; }
.iq-artist-project-count{ color:var(--iq-muted); font-size:11px; white-space:nowrap; }
.iq-artist-row-arrow{ width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(0,0,0,.16); border-radius:999px; color:var(--iq-ink); transition:.18s var(--iq-ease); }
.iq-artist-row:hover .iq-artist-row-arrow,.iq-artist-row:focus-visible .iq-artist-row-arrow,.iq-artist-row.is-active .iq-artist-row-arrow{ background:var(--iq-ink); color:var(--iq-bg); }
.iq-artists-empty{ padding:34px 0; color:var(--iq-muted); border-bottom:1px solid rgba(0,0,0,.14); }
.iq-artist-preview{ position:fixed; top:0; left:0; z-index:290; width:min(410px,calc(100vw - 32px)); visibility:hidden; opacity:0; pointer-events:none; transform:translate3d(var(--preview-x,0),var(--preview-y,0),0) scale(.985); transform-origin:top left; transition:opacity .16s var(--iq-ease),transform .09s linear,visibility 0s linear .18s; will-change:transform; }
.iq-artist-preview.is-visible{ visibility:visible; opacity:1; transform:translate3d(var(--preview-x,0),var(--preview-y,0),0) scale(1); transition-delay:0s; }
.iq-artist-preview-card{ position:relative; padding:16px; border-radius:22px; background:#fff; box-shadow:0 22px 58px rgba(17,17,15,.1),inset 0 0 0 1px rgba(0,0,0,.055); }
.iq-artist-preview.is-loading .iq-artist-preview-card{ opacity:.58; }
.iq-artist-preview-close{ display:none; position:absolute; top:12px; right:12px; z-index:4; width:34px; height:34px; border:0; border-radius:999px; background:rgba(255,255,255,.92); color:var(--iq-ink); cursor:pointer; font-size:21px; line-height:1; }
.iq-artist-preview-profile{ display:grid; grid-template-columns:64px minmax(0,1fr); align-items:center; gap:13px; padding-bottom:14px; }
.iq-artist-preview-avatar{ width:64px; height:64px; display:grid; place-items:center; border-radius:16px; background:var(--iq-soft) center/cover no-repeat; color:var(--iq-muted); font-family:var(--iq-display); font-size:28px; }
.iq-artist-preview-kicker{ display:flex; align-items:center; gap:7px; color:var(--iq-muted); font-size:10px; text-transform:uppercase; letter-spacing:.035em; }
.iq-artist-preview-kicker:before{ content:""; width:8px; height:8px; border-radius:2px; background:var(--iq-accent); }
.iq-artist-preview-profile h3{ margin-top:6px; font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(27px,2.5vw,38px); line-height:.9; letter-spacing:-.055em; }
.iq-artist-preview-specialty{ margin-top:5px; color:var(--iq-muted); font-size:12px; line-height:1.2; }
.iq-artist-preview-grid{ display:grid; grid-template-columns:1.25fr .75fr; grid-template-rows:repeat(2,minmax(112px,1fr)); gap:8px; min-height:300px; }
.iq-artist-preview-project{ position:relative; min-height:0; border-radius:14px; overflow:hidden; background-position:center; background-size:cover; }
.iq-artist-preview-project:first-child{ grid-row:span 2; }
.iq-artist-preview-project span{ position:absolute; left:8px; right:8px; bottom:8px; padding:8px 9px; border-radius:9px; background:rgba(255,255,255,.92); color:var(--iq-ink); font-size:10px; font-weight:650; line-height:1.1; opacity:0; transform:translateY(5px); transition:.18s var(--iq-ease); }
.iq-artist-preview-project:hover span{ opacity:1; transform:none; }
.iq-artist-preview-grid.is-empty{ min-height:210px; grid-template-columns:1fr; grid-template-rows:1fr; place-items:center; border-radius:14px; background:var(--iq-soft); }
.iq-artist-preview-grid.is-empty p{ color:var(--iq-muted); font-size:13px; }
.iq-artist-preview-bio{ margin:14px 2px 0; color:var(--iq-muted); font-size:13px; line-height:1.38; }
.iq-artist-preview-meta{ margin-top:14px; padding-top:12px; border-top:1px solid rgba(0,0,0,.1); color:var(--iq-muted); font-size:10px; text-transform:uppercase; letter-spacing:.035em; }
.iq-artist-preview-mobile-hint{ display:none; margin-top:10px; color:var(--iq-muted); font-size:10px; }
.iq-artist-lightbox-shell{ width:min(1520px,100%); }
.iq-artist-lightbox .iq-project-lightbox-dialog{ background:var(--iq-bg); }

@media(max-width:900px){
  .iq-artists-filter-drawer{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .iq-artists-filter-reset{ grid-column:1/-1; justify-self:end; min-height:38px; }
  .iq-artists-directory{ min-height:0; }
  .iq-artist-preview{ inset:auto 10px 10px; width:auto; max-height:calc(100vh - 84px); overflow:auto; transform:translateY(18px); }
  .iq-artist-preview.is-visible{ transform:none; pointer-events:auto; }
  .iq-artist-preview-card{ max-width:600px; margin:0 auto; }
  .iq-artist-preview-close,.iq-artist-preview-mobile-hint{ display:block; }
  .iq-artist-preview-grid{ min-height:260px; }
}
@media(max-width:620px){
  .iq-artists-toolbar{ grid-template-columns:minmax(0,1fr) auto; }
  .iq-artists-search{ grid-column:1/-1; }
  .iq-artists-shuffle{ min-width:0; padding-inline:13px; }
  .iq-artists-filter-toggle{ padding-inline:13px; }
  .iq-artists-filter-drawer{ grid-template-columns:1fr; }
  .iq-artists-filter-reset{ grid-column:auto; width:max-content; justify-self:end; }
  .iq-artists-search{ grid-template-columns:auto minmax(0,1fr) auto; }
  .iq-artists-search-label{ display:none; }
  .iq-artists-count{ min-width:0; }
  .iq-artist-row{ grid-template-columns:24px minmax(0,1fr) 30px; min-height:96px; gap:10px; }
  .iq-artist-row-main strong{ font-size:clamp(30px,10vw,46px); }
  .iq-artist-project-count{ display:none; }
  .iq-artist-row-arrow{ width:30px; height:30px; }
  .iq-artist-preview{ inset:auto 6px 6px; }
  .iq-artist-preview-card{ padding:12px; border-radius:18px; }
  .iq-artist-preview-grid{ min-height:220px; grid-template-rows:repeat(2,minmax(92px,1fr)); }
}

/* ===== Variante « liste de noms + mosaïque au survol » (page Artistes) ===== */
.iq-artists-toolbar--simple{ grid-template-columns:1fr; max-width:none; }

.iq-artists-directory--names{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,44%); gap:clamp(28px,4vw,72px); align-items:start; min-height:0; }

/* Gauche : noms sur UNE colonne (desktop) — moins de retours à la ligne. */
.iq-artists-directory--names .iq-artists-list{ border-bottom:0; columns:1; }
.iq-artists-directory--names .iq-artist-row{ display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; break-inside:avoid; min-height:0; padding:6px 0; border-bottom:0; }
.iq-artists-directory--names .iq-artist-row[hidden]{ display:none; }
/* Pas d'atténuation des autres noms au survol */
.iq-artists-directory--names .iq-artists-list:has(.iq-artist-row:hover) .iq-artist-row:not(:hover),
.iq-artists-directory--names .iq-artists-list:has(.iq-artist-row.is-active) .iq-artist-row:not(.is-active){ opacity:1; }
.iq-artists-directory--names .iq-artist-name{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:clamp(20px,1.7vw,28px); line-height:1.12; letter-spacing:-.035em; color:var(--iq-ink); transition:color .15s var(--iq-ease); overflow-wrap:break-word; word-break:break-word; min-width:0; }
.iq-artists-directory--names .iq-artist-row .iq-badge-pro{ margin-left:0; padding:3px 8px; }
.iq-artists-directory--names .iq-artist-row:hover .iq-artist-name,
.iq-artists-directory--names .iq-artist-row:focus-visible .iq-artist-name,
.iq-artists-directory--names .iq-artist-row.is-active .iq-artist-name{ color:var(--iq-accent); }

/* Droite : mosaïque ancrée (sticky), révélée au survol */
.iq-artists-directory--names .iq-artist-preview{ position:sticky; inset:auto; top:calc(var(--nav-height,62px) + 24px); width:auto; transform:none; will-change:auto; transition:opacity .2s var(--iq-ease),visibility 0s linear .2s; }
.iq-artists-directory--names .iq-artist-preview.is-visible{ transform:none; transition-delay:0s; }
.iq-artists-directory--names .iq-artist-preview-card{ padding:0; background:transparent; box-shadow:none; border-radius:0; }
/* Mosaïque : une grande vignette carrée + deux petites carrées dessous */
.iq-artists-directory--names .iq-artist-preview-grid{ display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto; gap:8px; min-height:0; }
.iq-artists-directory--names .iq-artist-preview-project{ aspect-ratio:1; min-height:0; grid-row:auto; }
.iq-artists-directory--names .iq-artist-preview-project:first-child{ grid-column:1 / -1; grid-row:auto; }
.iq-artists-directory--names .iq-artist-preview-project:nth-child(n+4){ display:none; }
.iq-artists-directory--names .iq-artist-preview-grid.is-empty{ grid-template-columns:1fr; min-height:200px; place-items:center; }

/* La liste réagit à la largeur réelle du contenu (container queries) */
.iq-artists-shell .iq-public-content{ container-type:inline-size; }
@container (max-width:820px){ .iq-artists-directory--names{ grid-template-columns:1fr; } }
@container (max-width:520px){ .iq-artists-directory--names .iq-artists-list{ columns:1; } }
/* Aperçu en feuille (mobile / appareils sans survol) */
@media(max-width:900px){
  .iq-artists-directory--names .iq-artist-preview{ position:fixed; inset:auto 10px 10px; top:auto; width:auto; max-height:calc(100vh - 84px); overflow:auto; }
  .iq-artists-directory--names .iq-artist-preview-card{ padding:12px; border-radius:18px; background:#fff; box-shadow:0 22px 58px rgba(17,17,15,.14); max-width:600px; margin:0 auto; }
  .iq-artists-directory--names .iq-artist-preview-grid{ min-height:240px; }
}

/* Compte IQ â€” espace gratuit de consultation et de sÃ©lection. */
.iq-account-shell{ --account-line:color-mix(in srgb,var(--iq-ink) 12%,transparent); }
.iq-account-tabs{ position:sticky; top:calc(var(--nav-height) + var(--iq-abo,0px)); z-index:40; display:flex; gap:4px; margin:0 0 clamp(34px,5vw,62px); padding:6px; border-radius:999px; background:var(--iq-bg); background:color-mix(in srgb,var(--iq-bg) 88%,white); box-shadow:0 1px 0 rgba(0,0,0,.06),0 12px 28px rgba(0,0,0,.04); overflow-x:auto; scrollbar-width:none; }
.iq-account-tabs::-webkit-scrollbar{ display:none; }
.iq-account-tabs a{ min-height:40px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 15px; border-radius:999px; color:var(--iq-muted); font-size:12px; font-weight:720; white-space:nowrap; text-decoration:none; }
.iq-account-tabs a:hover{ color:var(--iq-ink); }
.iq-account-tabs a.is-active{ background:var(--iq-ink); color:var(--iq-bg); }
.iq-account-tabs a span{ min-width:19px; height:19px; display:grid; place-items:center; border-radius:999px; background:var(--iq-accent); color:var(--iq-panel-ink); font-size:10px; }
.iq-account-welcome{ display:flex; justify-content:space-between; gap:20px; align-items:flex-end; padding-bottom:clamp(24px,3vw,38px); border-bottom:1px solid var(--account-line); }
.iq-account-welcome h2{ margin-top:8px; font-family:var(--iq-display); font-size:clamp(48px,7vw,96px); font-weight:400; line-height:.82; letter-spacing:-.06em; }
.iq-account-stats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid var(--account-line); }
.iq-account-stats a{ min-width:0; padding:clamp(22px,3vw,36px) clamp(12px,2vw,24px); border-right:1px solid var(--account-line); color:inherit; text-decoration:none; }
.iq-account-stats a:first-child{ padding-left:0; }
.iq-account-stats a:last-child{ border-right:0; }
.iq-account-stats b{ display:block; font-family:var(--iq-display); font-size:clamp(40px,5vw,72px); font-weight:400; line-height:.8; letter-spacing:-.055em; }
.iq-account-stats span{ display:block; margin-top:10px; color:var(--iq-muted); font-size:12px; }
.iq-account-section{ padding-top:clamp(38px,6vw,78px); }
.iq-account-section.is-first{ padding-top:0; }
.iq-account-section .iq-public-section-head{ align-items:flex-end; }
.iq-account-feed{ border-top:1px solid var(--account-line); }
.iq-account-feed article{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center; padding:18px 2px; border-bottom:1px solid var(--account-line); }
.iq-account-feed article.is-unread{ padding-left:14px; box-shadow:inset 4px 0 0 var(--iq-accent); }
.iq-account-feed-meta{ color:var(--iq-muted); font-size:10px; font-weight:720; text-transform:uppercase; letter-spacing:.035em; }
.iq-account-feed h3{ margin-top:5px; font-size:17px; line-height:1.1; }
.iq-account-feed p{ margin-top:5px; color:var(--iq-muted); font-size:13px; }
.iq-account-quiet{ padding:clamp(24px,4vw,46px); border-top:1px solid var(--account-line); border-bottom:1px solid var(--account-line); color:var(--iq-muted); text-align:center; }
/* Un seul filet : quand un etat vide suit directement l'entete de section (qui
   porte deja un border-bottom), on retire le border-top de l'etat vide pour ne
   pas afficher deux lignes paralleles. */
.iq-account-section .iq-public-section-head + .iq-account-quiet,
.iq-account-section .iq-public-section-head + .iq-public-empty{ border-top:0; }
/* Accordeon « Notifications » de l'espace visiteur (surface claire, distinct du
   bloc equivalent du portail membre qui est sur surface accent). */
.iq-account-notif-prefs{ background:var(--iq-soft); border-radius:18px; padding:2px clamp(18px,2.2vw,28px) clamp(14px,1.8vw,20px); }
.iq-account-notif-prefs > summary{ cursor:pointer; list-style:none; display:flex; align-items:center; gap:10px; padding:16px 0; font-family:var(--iq-display); font-size:clamp(18px,2vw,24px); font-weight:var(--iq-display-weight); letter-spacing:-.03em; }
.iq-account-notif-prefs > summary::-webkit-details-marker{ display:none; }
.iq-account-notif-prefs > summary:before{ content:""; width:9px; height:9px; border-radius:2px; background:var(--iq-muted); flex:0 0 auto; }
.iq-account-notif-prefs > summary:after{ content:"+"; margin-left:auto; font-family:var(--iq-body); font-weight:650; color:var(--iq-muted); }
.iq-account-notif-prefs[open] > summary:after{ content:"\2013"; }
.iq-account-notif-prefs .iq-account-notif-saved{ margin:2px 0 10px; color:var(--iq-muted); font-size:13px; font-weight:600; }
.iq-account-notif-prefs .iq-account-notif-hint{ margin:0 0 4px; color:var(--iq-muted); font-size:13px; line-height:1.45; }
.iq-account-notif-prefs .iq-notif-pref-row{ display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; padding:14px 0; border-top:1px solid var(--account-line); }
.iq-account-notif-prefs .iq-notif-pref-label{ color:var(--iq-ink); font-size:14px; }
.iq-account-notif-prefs .iq-notif-pref-label strong{ font-weight:660; }
.iq-account-notif-prefs .checkbox-label{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; color:var(--iq-muted); font-size:13px; white-space:nowrap; }
.iq-account-notif-prefs form p:last-child{ margin-top:16px; margin-bottom:0; }
.iq-account-recent{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:var(--iq-gap); }
.iq-account-recent > a{ min-width:0; color:inherit; text-decoration:none; }
.iq-account-recent > a > span{ display:block; aspect-ratio:1; border-radius:var(--iq-image-radius); background:var(--iq-soft) center/cover no-repeat; }
.iq-account-recent b{ display:block; margin-top:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.iq-account-recent small{ display:block; margin-top:3px; color:var(--iq-muted); font-size:10px; text-transform:uppercase; }
.iq-account-recent .iq-account-quiet{ grid-column:1/-1; }
.iq-account-create{ display:grid; grid-template-columns:minmax(220px,340px) auto; gap:8px; }
.iq-account-create .iq-field{ min-height:42px; }
.iq-collection-list{ border-top:1px solid var(--account-line); }
.iq-collection{ border-bottom:1px solid var(--account-line); }
.iq-collection summary{ display:flex; justify-content:space-between; gap:20px; align-items:center; padding:22px 2px; cursor:pointer; list-style:none; }
.iq-collection summary::-webkit-details-marker{ display:none; }
.iq-collection summary h3{ margin-top:7px; font-family:var(--iq-display); font-size:clamp(30px,4vw,52px); font-weight:400; line-height:.88; letter-spacing:-.055em; }
.iq-collection summary > span{ color:var(--iq-muted); font-size:11px; font-weight:700; }
.iq-collection[open] summary > span{ color:var(--iq-ink); }
.iq-collection-body{ padding:0 0 26px; }
.iq-collection-actions{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
.iq-share-link{ flex:1 1 420px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
.iq-share-link .iq-field{ min-height:38px; height:38px; font-size:12px; }
.iq-collection-projects{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:var(--iq-gap); }
.iq-collection-projects article{ position:relative; min-width:0; }
.iq-collection-projects a{ color:inherit; text-decoration:none; }
.iq-collection-projects img,.iq-collection-projects a > span{ width:100%; aspect-ratio:1; display:block; border-radius:13px; object-fit:cover; background:var(--iq-soft); }
.iq-collection-projects b{ display:block; margin-top:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.iq-collection-projects form{ position:absolute; top:7px; right:7px; }
.iq-collection-projects form button{ width:29px; height:29px; border:0; border-radius:999px; background:rgba(255,255,255,.94); color:var(--iq-ink); cursor:pointer; font-size:18px; }
.iq-account-saved-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(18px,2vw,28px) var(--iq-gap); }
.iq-account-saved-item{ min-width:0; }
.iq-account-saved-item > form{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; margin-top:9px; }
.iq-account-saved-item > form .iq-field{ min-height:38px; height:38px; padding-inline:10px; font-size:11px; }
.iq-account-artists{ border-top:1px solid var(--account-line); }
.iq-account-artists article{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:center; padding:16px 2px; border-bottom:1px solid var(--account-line); }
.iq-account-artists article > a{ display:grid; grid-template-columns:72px minmax(0,1fr); align-items:center; gap:16px; color:inherit; text-decoration:none; }
.iq-account-artist-avatar{ width:72px; height:72px; border-radius:16px; background:var(--iq-soft) center/cover no-repeat; }
.iq-account-artists h3{ font-family:var(--iq-display); font-size:clamp(26px,3vw,42px); font-weight:400; line-height:.9; letter-spacing:-.05em; }
.iq-account-artists p{ margin-top:5px; color:var(--iq-muted); font-size:12px; }
.iq-account-history{ border-top:1px solid var(--account-line); }
.iq-account-history > a{ display:grid; grid-template-columns:68px minmax(0,1fr) auto; gap:16px; align-items:center; padding:13px 2px; border-bottom:1px solid var(--account-line); color:inherit; text-decoration:none; }
.iq-account-history > a > span{ width:68px; height:68px; border-radius:14px; background:var(--iq-soft) center/cover no-repeat; }
.iq-account-history small{ color:var(--iq-muted); font-size:10px; text-transform:uppercase; letter-spacing:.025em; }
.iq-account-history h3{ margin-top:5px; font-family:var(--iq-display); font-size:clamp(24px,2.8vw,36px); font-weight:400; line-height:.9; letter-spacing:-.045em; }
.iq-account-profile{ max-width:900px; }
.iq-account-profile .iq-public-actions{ margin-top:24px; }
.iq-account-activation{ max-width:760px; margin:0 auto; }
.iq-account-activation h2{ margin-top:12px; font-size:clamp(34px,5vw,62px); }
.iq-account-activation p{ margin:15px 0 22px; }
.iq-shared-selection-cta{ display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-top:clamp(38px,5vw,72px); padding-top:24px; border-top:1px solid var(--iq-line); }

@media(max-width:1040px){
  .iq-account-recent,.iq-collection-projects{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .iq-account-saved-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:860px){
  .iq-account-tabs{ top:0; margin-inline:calc(var(--iq-gut) * -1); border-radius:0; }
  .iq-account-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .iq-account-stats a:nth-child(2){ border-right:0; }
  .iq-account-stats a:nth-child(-n+2){ border-bottom:1px solid var(--account-line); }
  .iq-account-stats a:nth-child(3){ padding-left:0; }
  .iq-account-recent,.iq-collection-projects{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .iq-account-saved-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px){
  .iq-account-welcome{ align-items:flex-start; flex-direction:column; }
  .iq-account-feed article,.iq-account-artists article{ grid-template-columns:1fr; align-items:start; }
  .iq-account-create{ width:100%; grid-template-columns:1fr auto; }
  .iq-account-recent,.iq-collection-projects{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .iq-account-saved-grid{ grid-template-columns:1fr; }
  .iq-account-history > a{ grid-template-columns:58px minmax(0,1fr) auto; }
  .iq-account-history > a > span{ width:58px; height:58px; }
}

/* Compte IQ v2: interface plus rectiligne, proche du chrome public. */
.iq-account-shell .iq-btn{ min-height:40px; border-radius:3px; padding-inline:14px; box-shadow:none; }
.iq-account-shell .iq-btn--sm{ min-height:36px; }
.iq-account-shell .iq-field{ border-radius:3px; background:rgba(255,255,255,.78); }
.iq-account-tabs{
  top:var(--nav-height); gap:0; padding:0; border-top:1px solid var(--account-line);
  border-bottom:1px solid var(--account-line); border-radius:0; background:var(--iq-bg); box-shadow:none;
}
.iq-account-tabs a{
  min-height:44px; padding:0 18px; border-left:1px solid var(--account-line); border-radius:0;
  font-size:11px; font-weight:650; letter-spacing:-.01em;
}
.iq-account-tabs a:last-child{ border-right:1px solid var(--account-line); }
.iq-account-tabs a.is-active{
  background:rgba(255,255,255,.68); color:var(--iq-ink);
  box-shadow:inset 0 -2px 0 var(--iq-accent);
}
.iq-account-tabs a span{ min-width:18px; height:18px; border-radius:2px; }
.iq-account-welcome h2{ font-size:clamp(46px,6vw,82px); }
.iq-account-section .iq-public-section-head{ gap:22px; padding-bottom:17px; border-bottom:1px solid var(--account-line); }
.iq-account-section-note{ margin-top:8px; color:var(--iq-muted); font-size:12px; line-height:1.45; }
.iq-account-feed{ border-top:0; }
.iq-account-feed article{ padding-block:20px; }
.iq-account-feed article.is-unread{ box-shadow:inset 3px 0 0 var(--iq-accent); }
.iq-account-quiet{ display:grid; gap:6px; }
.iq-account-quiet b{ color:var(--iq-ink); font-size:14px; }
.iq-account-quiet span{ font-size:12px; }
.iq-account-recent > a > span{ border-radius:4px; }
.iq-account-create{ grid-template-columns:minmax(220px,330px) auto; }

.iq-collections-workspace{
  display:grid; grid-template-columns:minmax(240px,290px) minmax(0,1fr); min-height:440px;
  border-bottom:1px solid var(--account-line);
}
.iq-collection-sidebar{
  min-width:0; border-right:1px solid var(--account-line); background:color-mix(in srgb,var(--iq-bg) 82%,white);
}
.iq-collection-sidebar-head{ display:grid; gap:4px; padding:16px; border-bottom:1px solid var(--account-line); }
.iq-collection-sidebar-head b{ font-size:12px; font-weight:720; }
.iq-collection-sidebar-head span{ color:var(--iq-muted); font-size:10px; line-height:1.35; }
.iq-collection-list{ border:0; }
.iq-collection-nav-item{
  position:relative; width:100%; min-height:80px; display:grid; grid-template-columns:58px minmax(0,1fr) auto;
  gap:12px; align-items:center; padding:11px 13px; border:0; border-bottom:1px solid var(--account-line);
  background:transparent; color:var(--iq-ink); text-align:left; cursor:pointer;
  transition:background .18s var(--iq-ease),box-shadow .18s var(--iq-ease),transform .18s var(--iq-ease);
}
.iq-collection-nav-item:hover{ background:rgba(255,255,255,.56); }
.iq-collection-nav-item.is-active{ background:#fff; box-shadow:inset 3px 0 0 var(--iq-accent); }
.iq-collection-nav-preview{ width:58px; height:52px; display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.iq-collection-nav-preview i{ min-width:0; background:var(--iq-soft) center/cover no-repeat; }
.iq-collection-nav-copy{ min-width:0; display:grid; gap:5px; }
.iq-collection-nav-copy strong{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; font-weight:680; }
.iq-collection-nav-copy small{ color:var(--iq-muted); font-size:10px; }
.iq-collection-nav-status{ align-self:start; padding-top:2px; color:var(--iq-muted); font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.035em; }
.iq-collection-panels{ min-width:0; }
.iq-collection-panel{ min-height:100%; padding:clamp(20px,2.7vw,34px); background:rgba(255,255,255,.46); }
.iq-collection-panel[hidden]{ display:none; }
.iq-collection-panel-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:22px; padding-bottom:20px; }
.iq-collection-panel-head h3{
  margin-top:10px; font-family:var(--iq-display); font-size:clamp(36px,4.4vw,62px);
  font-weight:400; line-height:.86; letter-spacing:-.055em;
}
.iq-collection-drop-label{ color:var(--iq-muted); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.035em; }
.iq-collection-actions{
  min-height:53px; margin:0 0 22px; padding:8px 0; border-top:1px solid var(--account-line);
  border-bottom:1px solid var(--account-line);
}
.iq-collection-delete{ margin-left:auto; }
.iq-collection-delete .iq-btn{ color:var(--iq-muted); }
.iq-share-link{ flex:1 1 300px; }
.iq-collection-dropzone{ position:relative; min-height:210px; border:1px solid transparent; transition:.18s var(--iq-ease); }
.iq-collection-projects{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.iq-collection-projects img,.iq-collection-projects a > span{ border-radius:3px; }
.iq-collection-projects form button{ border:1px solid rgba(0,0,0,.12); border-radius:2px; box-shadow:none; }

.iq-account-saved-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.iq-account-saved-item{ position:relative; cursor:grab; transition:opacity .18s var(--iq-ease),transform .18s var(--iq-ease); }
.iq-account-saved-item:active{ cursor:grabbing; }
.iq-account-saved-item.is-dragging{ opacity:.38; transform:scale(.985); }
.iq-account-drag-handle{
  position:absolute; z-index:15; top:12px; left:50%; min-height:27px; display:flex; align-items:center;
  padding:0 9px; border-radius:2px; background:rgba(17,17,15,.9); color:var(--iq-bg);
  font-size:9px; font-weight:720; line-height:1; pointer-events:none; opacity:0;
  transform:translate(-50%,-4px); transition:.18s var(--iq-ease); white-space:nowrap;
}
.iq-account-saved-item:hover .iq-account-drag-handle{ opacity:1; transform:translate(-50%,0); }
.iq-account-add-form{ grid-template-columns:minmax(0,1fr) auto; }
.iq-account-add-form .iq-btn{ min-height:38px; }
body.is-account-dragging .iq-collection-nav-item,
body.is-account-dragging .iq-collection-dropzone{ border-color:color-mix(in srgb,var(--iq-accent) 45%,transparent); }
.iq-collection-nav-item.is-drop-target{
  z-index:2; background:color-mix(in srgb,var(--iq-accent) 12%,white);
  box-shadow:inset 3px 0 0 var(--iq-accent),0 8px 22px rgba(0,0,0,.06); transform:translateX(4px);
}
.iq-collection-dropzone.is-drop-target{
  background:color-mix(in srgb,var(--iq-accent) 8%,transparent);
  box-shadow:inset 0 0 0 2px var(--iq-accent);
}
.iq-collection-nav-item.is-drop-success,.iq-collection-dropzone.is-drop-success{
  background:color-mix(in srgb,var(--iq-accent) 16%,white);
}
.iq-account-artists article > a{ grid-template-columns:64px minmax(0,1fr); }
.iq-account-artist-avatar{ width:64px; height:64px; border-radius:3px; }
.iq-account-history > a > span{ border-radius:3px; }
.iq-account-profile{ max-width:980px; }

@media(max-width:1040px){
  .iq-collections-workspace{ grid-template-columns:230px minmax(0,1fr); }
  .iq-collection-nav-item{ grid-template-columns:46px minmax(0,1fr); }
  .iq-collection-nav-preview{ width:46px; height:44px; }
  .iq-collection-nav-status{ display:none; }
  .iq-collection-projects{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:860px){
  .iq-account-tabs{ top:0; padding-left:var(--iq-gut); margin-inline:calc(var(--iq-gut) * -1); }
  .iq-collections-workspace{ grid-template-columns:1fr; }
  .iq-collection-sidebar{ border-right:0; border-bottom:1px solid var(--account-line); }
  .iq-collection-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .iq-collection-nav-item:nth-child(odd){ border-right:1px solid var(--account-line); }
  .iq-account-saved-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px){
  .iq-account-tabs a{ padding-inline:14px; }
  .iq-account-section .iq-public-section-head{ align-items:flex-start; }
  .iq-account-create{ grid-template-columns:1fr; }
  .iq-collection-sidebar-head span,.iq-account-section-note{ display:none; }
  .iq-collection-list{
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none;
  }
  .iq-collection-list::-webkit-scrollbar{ display:none; }
  .iq-collection-nav-item{
    flex:0 0 230px; grid-template-columns:48px minmax(0,1fr); border-right:1px solid var(--account-line);
    scroll-snap-align:start;
  }
  .iq-collection-nav-preview{ width:48px; height:44px; }
  .iq-collection-panel{ padding:20px 0; background:transparent; }
  .iq-collection-panel-head{ align-items:flex-start; }
  .iq-collection-drop-label{ display:none; }
  .iq-collection-actions{ align-items:stretch; }
  .iq-share-link{ order:3; flex-basis:100%; }
  .iq-collection-delete{ margin-left:0; }
  .iq-account-saved-grid{
    display:flex; gap:14px; margin-inline:calc(var(--iq-gut) * -1); padding:0 var(--iq-gut) 9px;
    overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none;
  }
  .iq-account-saved-grid::-webkit-scrollbar{ display:none; }
  .iq-account-saved-item{ flex:0 0 min(78vw,310px); scroll-snap-align:start; }
  .iq-account-saved-item{ cursor:default; }
  .iq-account-drag-handle{ display:none; }
  .iq-collection-projects{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Compte IQ v3: chrome net, contenu bento, cartes sauvegardÃ©es minimales. */
.iq-account-shell .iq-btn{ border-radius:999px; }
.iq-account-shell .iq-field{ border-radius:12px; background:#fff; }

.iq-account-tabs{
  min-height:58px; display:flex; align-items:stretch; justify-content:space-between; gap:24px;
  margin-bottom:clamp(38px,5vw,64px); padding:0; border:0; border-bottom:1px solid var(--account-line);
  background:var(--iq-bg); box-shadow:none;
}
.iq-account-tabs-brand{
  flex:0 0 auto; min-height:58px; display:flex !important; align-items:center; gap:9px; padding:0 !important;
  border:0 !important; background:transparent !important; box-shadow:none !important; color:var(--iq-ink) !important;
  font-family:var(--iq-display); font-size:18px !important; font-weight:400 !important; letter-spacing:-.035em !important;
}
.iq-account-tabs-brand i{ width:8px; height:8px; border-radius:1px; background:var(--iq-accent); }
.iq-account-tabs-links{ min-width:0; display:flex; align-items:stretch; margin-left:auto; overflow-x:auto; scrollbar-width:none; }
.iq-account-tabs-links::-webkit-scrollbar{ display:none; }
.iq-account-tabs-links > a{
  min-height:58px; padding:0 17px; border:0; border-left:1px solid var(--account-line); border-radius:0;
  color:var(--iq-muted); font-size:11px; font-weight:620; box-shadow:none;
}
.iq-account-tabs-links > a:last-child{ border-right:1px solid var(--account-line); }
.iq-account-tabs-links > a:hover,
.iq-account-tabs-links > a.is-active{ background:rgba(255,255,255,.62); color:var(--iq-ink); }
.iq-account-tabs-links > a.is-active{ box-shadow:inset 0 -2px 0 var(--iq-accent); }
.iq-account-tabs-links > a span{ border-radius:999px; }

.iq-account-section.is-first > .iq-public-section-head{ border-bottom:0; }
.iq-account-create{
  align-items:center; padding:8px; border-radius:16px; background:#fff;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.065);
}
.iq-account-create .iq-field{ min-height:44px; border-radius:10px; background:var(--iq-bg); box-shadow:none; }

.iq-collections-workspace{
  grid-template-columns:minmax(235px,280px) minmax(0,1fr); gap:14px; min-height:440px;
  border:0; background:transparent;
}
.iq-collection-sidebar,
.iq-collection-panel{
  border:0; border-radius:20px; background:#fff;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.055);
}
.iq-collection-sidebar{ padding:10px; }
.iq-collection-sidebar-head{ padding:10px 10px 14px; border:0; }
.iq-collection-sidebar-head b{ font-size:13px; }
.iq-collection-sidebar-head span{ font-size:11px; }
.iq-collection-list{ display:grid; gap:5px; }
.iq-collection-nav-item{
  min-height:76px; grid-template-columns:54px minmax(0,1fr); gap:12px; padding:10px;
  border:0 !important; border-radius:13px; background:transparent;
}
.iq-collection-nav-item:hover{ background:var(--iq-soft); }
.iq-collection-nav-item.is-active{
  background:color-mix(in srgb,var(--iq-accent) 12%,var(--iq-soft));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--iq-accent) 32%,transparent);
}
.iq-collection-nav-preview{ width:54px; height:54px; border-radius:10px; overflow:hidden; gap:2px; background:var(--iq-soft); }
.iq-collection-nav-preview i{ border-radius:2px; }
.iq-collection-nav-copy strong{ font-size:13px; }
.iq-collection-nav-status{
  position:absolute; top:10px; right:10px; padding:4px 6px; border-radius:999px;
  background:rgba(255,255,255,.76); font-size:8px;
}
.iq-collection-panel{ padding:clamp(22px,3vw,34px); }
.iq-collection-panel-head{ padding-bottom:18px; }
.iq-collection-panel-head h3{ font-size:clamp(38px,4.4vw,60px); }
.iq-collection-drop-label{ padding:7px 10px; border-radius:999px; background:var(--iq-soft); }
.iq-collection-actions{
  min-height:0; gap:7px; margin:0 0 22px; padding:8px; border:0; border-radius:14px;
  background:color-mix(in srgb,var(--iq-bg) 66%,white);
}
.iq-share-link{ flex:0 0 auto; display:block; }
.iq-collection-delete{ margin-left:auto; }
.iq-collection-delete .iq-btn{ border-color:transparent; background:transparent; }
.iq-collection-dropzone{ min-height:200px; border:0; border-radius:14px; }
.iq-collection-projects{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.iq-collection-projects img,.iq-collection-projects a > span{ border-radius:13px; }
.iq-collection-projects b{ margin-top:9px; font-size:11px; }
.iq-collection-projects form button{
  width:28px; height:28px; border:0; border-radius:999px; background:rgba(255,255,255,.94);
  box-shadow:0 4px 14px rgba(0,0,0,.08);
}
.iq-collection-dropzone .iq-account-quiet{ border:1px dashed var(--account-line); border-radius:14px; }

.iq-account-saved-grid{ gap:clamp(18px,2vw,26px) var(--iq-gap); }
.iq-account-saved-item{ cursor:grab; }
.iq-account-saved-item h3{
  margin-top:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-size:12px; font-weight:650; letter-spacing:-.02em;
}
.iq-account-saved-card{
  position:relative; display:block; aspect-ratio:1/1; overflow:hidden; border-radius:16px;
  background:var(--iq-soft); color:var(--iq-ink); text-decoration:none;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.055);
}
.iq-account-saved-image{
  position:absolute; inset:0; display:block; background:var(--iq-soft) center/cover no-repeat;
  transition:transform .28s var(--iq-ease);
}
.iq-account-saved-image.is-placeholder::after{
  content:"Image"; position:absolute; inset:0; display:grid; place-items:center; color:var(--iq-muted); font-size:11px;
}
.iq-account-saved-item:hover .iq-account-saved-image{ transform:scale(1.015); }
.iq-account-saved-artist{
  position:absolute; top:12px; left:12px; z-index:2; max-width:calc(100% - 58px);
  min-height:29px; display:flex; align-items:center; padding:0 10px; border-radius:999px;
  background:rgba(255,255,255,.93); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-size:11px; font-weight:680; letter-spacing:-.02em;
}
.iq-account-saved-drag{
  position:absolute; top:12px; right:12px; z-index:2; width:30px; height:30px; display:grid; place-items:center;
  border-radius:999px; background:rgba(255,255,255,.9); color:var(--iq-muted); font-size:13px;
  opacity:0; transform:translateY(-3px); transition:.18s var(--iq-ease);
}
.iq-account-saved-item:hover .iq-account-saved-drag{ opacity:1; transform:none; }
.iq-account-add-form{ display:none !important; }
.iq-account-drag-handle{ display:none; }
.iq-account-saved-item.is-dragging{ opacity:.42; transform:scale(.985); }

body.is-account-dragging .iq-collection-nav-item{ box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--iq-accent) 50%,transparent); }
.iq-collection-nav-item.is-drop-target{
  background:color-mix(in srgb,var(--iq-accent) 17%,white);
  box-shadow:inset 0 0 0 2px var(--iq-accent),0 8px 22px rgba(0,0,0,.06); transform:scale(1.015);
}
.iq-collection-dropzone.is-drop-target{
  border-radius:14px; background:color-mix(in srgb,var(--iq-accent) 8%,transparent);
  box-shadow:inset 0 0 0 2px var(--iq-accent);
}

@media(max-width:1040px){
  .iq-account-tabs{ gap:12px; }
  .iq-account-tabs-links > a{ padding-inline:13px; }
  .iq-collections-workspace{ grid-template-columns:220px minmax(0,1fr); }
  .iq-collection-nav-item{ grid-template-columns:46px minmax(0,1fr); }
  .iq-collection-nav-preview{ width:46px; height:46px; }
  .iq-collection-projects{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:860px){
  .iq-account-tabs{
    min-height:52px; gap:0; margin-inline:calc(var(--iq-gut) * -1); padding-left:var(--iq-gut);
  }
  .iq-account-tabs-brand{ display:none !important; }
  .iq-account-tabs-links{ margin-left:0; }
  .iq-account-tabs-links > a{ min-height:52px; }
  .iq-collections-workspace{ grid-template-columns:1fr; gap:12px; }
  .iq-collection-sidebar{ border:0; }
  .iq-collection-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .iq-collection-nav-item{ border-radius:12px; }
  .iq-collection-panel{ border-radius:18px; }
}
@media(max-width:620px){
  .iq-account-create{ padding:7px; border-radius:14px; }
  .iq-collection-sidebar{ padding:8px; border-radius:16px; }
  .iq-collection-list{ display:flex; gap:6px; margin:0; padding:0 0 2px; }
  .iq-collection-nav-item{
    flex:0 0 230px; grid-template-columns:48px minmax(0,1fr); border:0 !important; border-radius:12px;
  }
  .iq-collection-panel{ padding:20px 14px; border-radius:16px; background:#fff; }
  .iq-collection-actions{ align-items:center; border-radius:12px; }
  .iq-share-link{ order:initial; flex-basis:auto; }
  .iq-collection-delete{ margin-left:0; }
  .iq-account-saved-item{ flex-basis:min(76vw,300px); }
  .iq-account-saved-drag{ display:none; }
  .iq-account-add-form{
    display:grid !important; grid-template-columns:minmax(0,1fr) auto; gap:7px; margin-top:8px;
  }
  .iq-account-add-form .iq-field{ min-height:38px; height:38px; padding-inline:10px; font-size:11px; }
  .iq-account-add-form .iq-btn{ min-height:38px; padding-inline:13px; }
}

/* Compte IQ v4: classement par sÃ©lection, vignettes carrÃ©es comme le moodboard. */
.iq-collection-nav-item.is-active{
  background:var(--iq-soft);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.13);
}
.iq-collection-nav-status{ color:var(--iq-muted); }
.iq-collection-drop-label{ color:var(--iq-muted); background:var(--iq-soft); }

.iq-account-saved-head-actions{ display:flex; align-items:center; gap:10px; }
.iq-account-saved-head-actions .iq-btn[aria-pressed="true"]{
  border-color:var(--iq-ink); background:var(--iq-ink); color:var(--iq-bg);
}
.iq-account-organize-form{ position:relative; }
.iq-account-organize-bar{
  position:fixed; left:50%; bottom:18px; z-index:120; width:min(760px,calc(100vw - 32px));
  display:grid; grid-template-columns:auto minmax(180px,1fr) auto auto; align-items:center; gap:8px;
  padding:9px; border-radius:18px; background:var(--iq-ink); color:var(--iq-bg);
  box-shadow:0 18px 50px rgba(0,0,0,.22); transform:translateX(-50%);
}
.iq-account-organize-bar[hidden]{ display:none !important; }
.iq-account-organize-bar strong{ padding-inline:9px; font-size:12px; white-space:nowrap; }
.iq-account-organize-bar .iq-field{
  min-height:42px; height:42px; border-radius:11px; background:#fff; box-shadow:none;
}
.iq-account-organize-bar .iq-btn{
  min-height:42px; border-color:rgba(255,255,255,.24); background:transparent; color:var(--iq-bg);
}
.iq-account-organize-bar .iq-btn--ink{ border-color:#fff; background:#fff; color:var(--iq-ink); }
.iq-account-organize-bar .iq-btn:disabled{ opacity:.38; cursor:not-allowed; }

.iq-account-saved-item{ position:relative; cursor:default; }
.iq-account-saved-card{ aspect-ratio:1; }
.iq-account-saved-title{
  position:absolute; left:0; right:0; bottom:0; z-index:2; padding:24px 14px 13px;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.58)); color:#fff;
  opacity:0; transition:opacity .2s var(--iq-ease);
}
.iq-account-saved-title b{ display:block; font-size:13px; font-weight:620; line-height:1.15; }
.iq-account-saved-card:hover .iq-account-saved-title,
.iq-account-saved-card:focus-visible .iq-account-saved-title{ opacity:1; }
.iq-account-saved-drag{ display:none; }
.iq-account-project-check{
  position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none;
}
.iq-account-selection-mark{
  position:absolute; top:12px; right:12px; z-index:4; width:32px; height:32px; display:none;
  place-items:center; border:1px solid rgba(0,0,0,.18); border-radius:999px;
  background:rgba(255,255,255,.92); color:transparent; font-size:13px; font-weight:800;
}
.iq-account-organize-form.is-organizing .iq-account-saved-item{ cursor:pointer; }
.iq-account-organize-form.is-organizing .iq-account-saved-card{ cursor:pointer; }
.iq-account-organize-form.is-organizing .iq-account-selection-mark{ display:grid; }
.iq-account-organize-form.is-organizing .iq-account-saved-item.is-selected .iq-account-saved-card{
  box-shadow:inset 0 0 0 3px var(--iq-ink);
}
.iq-account-organize-form.is-organizing .iq-account-saved-item.is-selected .iq-account-selection-mark{
  border-color:var(--iq-ink); background:var(--iq-ink); color:#fff;
}
.iq-account-organize-form.is-organizing .iq-account-saved-item:not(.is-selected) .iq-account-saved-image{ opacity:.78; }

@media(max-width:760px){
  .iq-account-organize-bar{
    left:10px; right:10px; bottom:10px; width:auto; transform:none;
    grid-template-columns:minmax(0,1fr) auto;
  }
  .iq-account-organize-bar strong{ grid-column:1; grid-row:1; }
  .iq-account-organize-bar .js-account-organize-cancel{ grid-column:2; grid-row:1; min-height:34px; }
  .iq-account-organize-bar .iq-field{ grid-column:1/-1; grid-row:2; }
  .iq-account-organize-bar .iq-btn--ink{ grid-column:1/-1; grid-row:3; }
}
@media(max-width:620px){
  .iq-account-saved-head-actions{ gap:7px; }
  .iq-account-saved-head-actions .iq-public-count{ display:none; }
  .iq-account-add-form{ display:none !important; }
  .iq-account-saved-item{ flex-basis:min(72vw,280px); }
  .iq-account-saved-artist{ font-size:10px; }
}

/* Compte IQ v5: navigation neutre, sÃ©lection explicite et projets en lightbox. */
.iq-account-shell .iq-kicker::before,
.iq-account-shell .iq-public-section-title::before,
.iq-account-shell .iq-public-head-mark{ background:var(--iq-ink); }
/* H : moins de puces carrées dans le Compte IQ — on garde le repère sur le
   TITRE de section et on retire celui du petit kicker (double puce). */
.iq-account-shell .iq-kicker::before{ display:none; }
/* F : rangée « artiste suivi » alignée (le × sur la même ligne que l'artiste,
   séparateur unique). Global : sert au portail membre ET au Compte IQ. */
.iq-account-followed-row{ display:flex; align-items:center; gap:12px; border-bottom:1px solid rgba(0,0,0,.12); }
.iq-account-followed-row:last-child{ border-bottom:0; }
.iq-account-followed-row .iq-artist-row{ flex:1; border-bottom:0; }
.iq-account-followed-directory .iq-artists-list{ border-bottom:0; }
.iq-account-shell .iq-btn--primary{
  border-color:var(--iq-ink); background:var(--iq-ink); color:var(--iq-bg);
}
.iq-account-shell .iq-field:focus{ box-shadow:inset 0 0 0 1.5px var(--iq-ink); }
.iq-account-feed article.is-unread{ box-shadow:inset 3px 0 0 var(--iq-ink); }

.iq-account-tabs{
  min-height:60px; align-items:center; gap:8px; margin-bottom:0; padding:6px;
  border:1px solid rgba(255,255,255,.08); border-radius:12px;
  background:var(--iq-ink); box-shadow:0 12px 28px rgba(0,0,0,.08); overflow:hidden;
}
.iq-account-tabs-brand{
  min-height:46px; padding:0 14px !important; color:var(--iq-bg) !important;
  font-size:17px !important;
}
.iq-account-tabs-brand i{
  width:7px; height:7px; border-radius:1px; background:rgba(255,255,255,.48);
}
.iq-account-tabs-links{ gap:3px; }
.iq-account-tabs-links > a{
  min-height:46px; padding:0 15px; border:0 !important; border-radius:7px;
  color:rgba(255,255,255,.62); font-size:11px; font-weight:650;
}
.iq-account-tabs-links > a:hover{
  background:rgba(255,255,255,.09); color:#fff;
}
.iq-account-tabs-links > a.is-active{
  background:var(--iq-bg); color:var(--iq-ink); box-shadow:none;
}
.iq-account-tabs-links > a span{
  min-width:18px; height:18px; border-radius:4px; background:#fff; color:var(--iq-ink);
}
.iq-account-tabs-links > a.is-active span{ background:var(--iq-ink); color:#fff; }
.iq-account-tabs + .iq-account-notice{ margin-top:12px; }
.iq-account-notice{
  margin-bottom:clamp(34px,4.5vw,56px); border-color:rgba(0,0,0,.13);
  border-radius:12px; background:#fff; box-shadow:none;
}
.iq-account-tabs + .iq-account-welcome,
.iq-account-tabs + .iq-account-section{ margin-top:clamp(34px,4.5vw,56px); }

.iq-account-saved-card,
.iq-collection-projects a{ cursor:pointer; }
.iq-account-project-toggle{
  position:absolute; top:12px; right:12px; z-index:6; width:34px; height:34px; display:none;
  place-items:center; padding:0; border:1px solid rgba(0,0,0,.2); border-radius:999px;
  background:rgba(255,255,255,.94); color:transparent; box-shadow:0 5px 16px rgba(0,0,0,.08);
  cursor:pointer;
}
.iq-account-project-toggle:hover,
.iq-account-project-toggle:focus-visible{
  border-color:var(--iq-ink); outline:none; background:#fff;
}
.iq-account-organize-form.is-organizing .iq-account-saved-item{ cursor:default; }
.iq-account-organize-form.is-organizing .iq-account-saved-card{ cursor:pointer; }
.iq-account-organize-form.is-organizing .iq-account-project-toggle{ display:grid; }
.iq-account-organize-form.is-organizing .iq-account-saved-item.is-selected .iq-account-project-toggle{
  border-color:var(--iq-ink); background:var(--iq-ink); color:#fff;
}
.iq-account-organize-form.is-organizing .iq-account-saved-item:not(.is-selected) .iq-account-saved-image{
  opacity:.82;
}

.iq-account-project-lightbox .iq-project-lightbox-toolbar button:hover{
  background:var(--iq-ink); color:var(--iq-bg);
}

@media(max-width:1040px){
  .iq-account-tabs{ gap:5px; }
  .iq-account-tabs-links > a{ padding-inline:12px; }
}
@media(max-width:860px){
  .iq-account-tabs{
    min-height:56px; top:0; margin-inline:calc(var(--iq-gut) * -1);
    padding:5px var(--iq-gut); border-inline:0; border-radius:0;
  }
  .iq-account-tabs-links{ width:100%; margin-left:0; }
  .iq-account-tabs-links > a{ min-height:44px; }
}
@media(max-width:620px){
  .iq-account-tabs-links > a{ padding-inline:13px; }
  .iq-account-project-toggle{ top:10px; right:10px; width:32px; height:32px; }
}

/* Compte IQ v6: navigation calquÃ©e sur le menu public. */
.iq-account-tabs{
  min-height:var(--nav-height); align-items:stretch; gap:0; padding:0;
  border:0; border-bottom:1px solid var(--iq-line); border-radius:0;
  background:var(--iq-bg); box-shadow:none; overflow-x:auto;
}
.iq-account-tabs-brand{
  min-height:var(--nav-height); padding:0 !important; color:var(--iq-ink) !important;
  font-family:var(--iq-display); font-size:23px !important; font-weight:400 !important;
  letter-spacing:-.04em !important;
}
.iq-account-tabs-brand i{
  width:9px; height:9px; border-radius:1px; background:var(--iq-ink);
}
.iq-account-tabs-links{ gap:0; align-items:stretch; }
.iq-account-tabs-links > a{
  min-height:var(--nav-height); padding:0 16px; border:0 !important;
  border-left:1px solid rgba(0,0,0,.08) !important; border-radius:0;
  background:transparent; color:var(--iq-muted); font-family:var(--iq-body);
  font-size:16px; font-weight:560; letter-spacing:-.02em;
}
.iq-account-tabs-links > a:last-child{ border-right:1px solid rgba(0,0,0,.08) !important; }
.iq-account-tabs-links > a:hover,
.iq-account-tabs-links > a.is-active{
  background:rgba(255,255,255,.65); color:var(--iq-ink); box-shadow:none;
}
.iq-account-tabs-links > a span{
  min-width:19px; height:19px; border-radius:999px; background:var(--iq-ink); color:var(--iq-bg);
}

.iq-account-saved-card,
.iq-collection-projects a{ cursor:pointer; }
.iq-account-organize-form.is-organizing .iq-account-saved-card{ cursor:pointer; }

@media(max-width:1040px){
  .iq-account-tabs-links > a{ padding-inline:14px; font-size:14px; }
}
@media(max-width:860px){
  .iq-account-tabs{
    min-height:54px; margin-inline:calc(var(--iq-gut) * -1);
    padding:0 0 0 var(--iq-gut); border-inline:0;
  }
  .iq-account-tabs-links{ width:auto; overflow:visible; }
  .iq-account-tabs-links > a{ min-height:54px; padding-inline:15px; font-size:14px; }
}

/* Compte IQ v7: en-tÃªte rÃ©duit et navigation pleine largeur. */
.iq-account-shell .iq-public-head{
  padding-bottom:clamp(22px,3vw,38px); border-bottom:0;
}
.iq-account-shell .iq-public-head-top{ display:none; }
.iq-account-shell .iq-public-head-grid{ gap:0; }
.iq-account-shell .iq-public-content{ padding-top:0; }
.iq-account-tabs{ margin-bottom:clamp(34px,5vw,62px); }
.iq-account-tabs-links{
  width:100%; margin-left:0; overflow-x:auto;
}
.iq-account-tabs-links > a{ flex:1 1 0; min-width:max-content; }
.iq-account-tabs-links > a:first-child{ border-left:1px solid rgba(0,0,0,.08) !important; }

.iq-account-followed-directory{ min-height:360px; }

/* =====================================================================
   CORRECTIONS AUDIT MOBILE (2026-06)
   Ajouts en fin de feuille : priment dans la cascade sans modifier les
   regles existantes. Reversible : supprimer ce bloc annule les correctifs.
   ===================================================================== */

/* 1) Pied de page : liens en display:block sans padding => zone tactile
   ~18px de haut. Sur mobile (footer en 1 colonne) on vise ~44px. */
@media(max-width:900px){
  .iq-public-footer-links a{ margin-top:2px; padding:12px 0; line-height:1.2; }
}

/* 2) Bouton "ne plus suivre" (x) : aucune taille definie => cible ~16px.
   On lui donne une vraie zone tactile (40x40) sans changer son role. */
.iq-account-unfollow{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; padding:0; font-size:20px; line-height:1;
  background:transparent; border:0; border-radius:10px; cursor:pointer;
}
.iq-account-unfollow:hover{ background:rgba(0,0,0,.06); }

/* 3) Bouton « Déconnexion » visible dans la nav du Compte IQ (portail visiteur).
   L'ancien bouton n'apparaissait que dans l'onglet Profil. */
.iq-account-tabs .iq-account-logout{
  flex:0 0 auto; align-self:center; margin-left:14px;
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 17px; border-radius:999px;
  background:var(--iq-white,#fff); color:var(--iq-ink);
  border:1px solid var(--iq-line,#d8d6cd);
  font-size:12px; font-weight:680; letter-spacing:-.01em;
  text-decoration:none; white-space:nowrap;
  transition:border-color .16s var(--iq-ease,ease);
}
.iq-account-tabs .iq-account-logout:hover{ border-color:var(--iq-ink); filter:none; }
@media(max-width:860px){
  .iq-account-tabs .iq-account-logout{ margin-left:8px; padding:8px 14px; }
}

/* 4) Hamburger : c'est un <button> et, hors .iq-repertoire, aucun reset ne
   s'applique => le navigateur dessine sa boîte par défaut (cadre incohérent).
   On le ramène à une icône propre (3 traits, sans cadre ni fond). */
.nav__hamburger{
  -webkit-appearance:none; appearance:none;
  border:0; background:transparent; padding:0; border-radius:0; box-shadow:none;
}

/* 5) Sous-menu « Mon espace » (Compte IQ) sur mobile : la barre débordait
   horizontalement (non navigable). On active simplement le retour à la ligne
   (wrap) en CONSERVANT le look segmenté/carré d'origine : séparateurs, coins peu
   arrondis, onglet actif en bloc. Les onglets remplissent la rangée puis passent
   à la ligne suivante ; « Déconnexion » descend sous la rangée d'onglets. */
@media(max-width:768px){
  .iq-account-tabs{ flex-wrap:wrap; overflow:visible; }
  .iq-account-tabs-links{ width:100%; flex-wrap:wrap; overflow:visible; margin-left:0; }
  /* Filet horizontal entre les rangées (et au-dessus de la 1re) : grille nette. */
  .iq-account-tabs-links > a{ border-top:1px solid rgba(0,0,0,.08); }
  /* « Déconnexion » détaché des onglets. */
  .iq-account-tabs .iq-account-logout{ flex:0 0 auto; margin-left:0; margin-top:14px; }
}

/* 6) Menu hamburger ouvert : la capsule « Mon espace / Devenir membre / Connexion »
   apparaissait collée à gauche. Cause : au mobile, .nav__link passe en
   padding:var(--space-lg) 0 (padding horizontal 0) et la capsule est un conteneur
   display:flex dont le justify-content par défaut (flex-start) ignore text-align.
   On en refait un vrai bouton centré (flex centré + padding) sur toutes les pages. */
@media(max-width:768px){
  .nav:not(.iq-membernav) .nav__links .nav__link--bordered{
    box-sizing:border-box;
    margin-left:0; margin-right:0;
    padding:14px 20px;
    justify-content:center; text-align:center;
  }
}

/* 7) Répertoire — carte grise : seul « Au hasard » subsiste, en PASTILLE accent.
   Précédent/Suivant et la note clavier sont retirés (la navigation reste
   possible via molette, flèches du clavier et swipe).
   8) Carte blanche : champs labellisés en petits caractères (Titre/Artiste/
   Année), identiques en Découverte et Ambiance. */
.iq-explore-side-card .iq-shuffle{
  display:inline-flex; align-items:center; justify-content:center;
  margin-top:clamp(16px,2.2vw,24px); min-height:42px; padding:0 22px;
  border:1px solid var(--accent); border-radius:999px;
  background:var(--accent); color:var(--panel-ink);
  font-family:var(--body); font-size:13px; font-weight:780; letter-spacing:-.01em;
  white-space:nowrap; cursor:pointer;
  transition:background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), transform .15s var(--ease);
}
.iq-explore-side-card .iq-shuffle:hover{ background:var(--ink); border-color:var(--ink); color:var(--bg); transform:translateY(-1px); }
.iq-reader-field{ padding:11px 0; border-top:1px solid rgba(17,17,15,.09); border-top:1px solid color-mix(in srgb,var(--ink) 9%,transparent); }
.iq-reader-field:first-child{ border-top:0; padding-top:2px; }
.iq-reader-label{ display:block; margin-bottom:3px; color:var(--muted); font-size:10.5px; font-weight:760; letter-spacing:.06em; text-transform:uppercase; }
.iq-reader-value{ display:block; color:var(--ink); font-size:15px; font-weight:560; letter-spacing:-.015em; line-height:1.22; overflow-wrap:break-word; word-break:break-word; }

/* 9) Liste des artistes (mode noms) sur mobile/tablette : la grille passe en UNE
   colonne pleine largeur et la colonne « aperçu » (survol, inutile au toucher)
   est masquée — sans ça il restait un vide à droite car l'@container d'origine
   ne se déclenche pas sur tous les navigateurs (Safari mobile). Les noms
   s'affichent alors en 2 colonnes lisibles sur toute la largeur. */
@media(max-width:820px){
  .iq-artists-directory--names{ grid-template-columns:1fr; }
  .iq-artists-directory--names .iq-artist-preview{ display:none; }
  .iq-artists-directory--names .iq-artists-list{ columns:2; column-gap:clamp(14px,4vw,22px); }
  .iq-artists-directory--names .iq-artist-name{ font-size:clamp(15px,4.6vw,21px); line-height:1.16; }
}

/* 10) Abonnement iCal du calendrier des membres : encart sobre sous le titre. */
.iq-calendar-subscribe{ margin:0 0 clamp(20px,3vw,32px); }
.iq-calendar-subscribe .iq-small{ margin:8px 0 0; max-width:62ch; }
.iq-calendar-subscribe .iq-calendar-link{ margin-top:10px; max-width:540px; font-size:12px; }

/* 11) Réseaux sociaux des membres : icônes monochromes (site web + plateformes).
   Source unique : inc/social-links.php. Couleur via currentColor → monochrome,
   teinte au survol avec l'accent du thème. */
.iq-social-icons{ display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 0; }
.iq-social-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:999px;
  border:1px solid var(--iq-line); background:var(--iq-white);
  color:var(--iq-ink); transition:.16s var(--iq-ease);
}
.iq-social-icon svg{ width:18px; height:18px; display:block; }
.iq-social-icon svg path{ fill:currentColor; }
.iq-social-icon:hover,
.iq-social-icon:focus-visible{
  background:var(--iq-accent); border-color:var(--iq-accent);
  color:var(--iq-panel-ink); outline:none;
}
/* Sur une surface accentuée (ex. aside immersif), garder le contraste. */
.iq-accent-surface .iq-social-icon{ background:var(--iq-white); border-color:var(--iq-line); color:var(--iq-ink); }
.iq-accent-surface .iq-social-icon:hover,
.iq-accent-surface .iq-social-icon:focus-visible{ background:var(--iq-ink); border-color:var(--iq-ink); color:var(--iq-bg); }
/* Carte artiste de la page projet : icônes sous les boutons, centrées et dégagées. */
.iq-project-artist .iq-social-icons{ margin-top:18px; justify-content:center; }

/* ============================================================
   ACCESSIBILITÉ — lien d'évitement + texte lecteur d'écran
   (ajouté suite à l'audit du 28 juin 2026)
   ============================================================ */
.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%);
  height:1px; width:1px; margin:-1px; padding:0; overflow:hidden;
  position:absolute !important; white-space:nowrap; word-wrap:normal !important;
}
.iq-skip-link{
  position:absolute; left:-9999px; top:0; z-index:100000;
  padding:.7rem 1.1rem; background:var(--iq-ink,#11110f); color:var(--iq-bg,#f6f5ef);
  text-decoration:none; border-radius:0 0 8px 0; font-weight:600;
}
.iq-skip-link:focus,
.iq-skip-link:focus-visible{ left:0; outline:2px solid var(--iq-accent,#c95616); outline-offset:2px; }


/* [Audit #90] Reseaux de l'association dans le pied de page public. */
.iq-public-footer-social{display:flex;align-items:center;gap:.55rem;margin-top:1.1rem;flex-wrap:wrap}
.iq-public-footer-social-link{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;color:rgba(17,17,15,.68);border:1px solid var(--iq-line,#d8d6cd);transition:color .15s ease,border-color .15s ease,background-color .15s ease}
.iq-public-footer-social-link:hover,.iq-public-footer-social-link:focus-visible{color:var(--iq-accent,#c95616);border-color:var(--iq-accent,#c95616)}
.iq-public-footer-social-link svg{width:17px;height:17px;fill:currentColor}
/* Coordonnées de l'association dans le pied de page : compactes, sous les réseaux. [Bêta-test] */
.iq-public-footer-contact{margin-top:1.4rem;display:flex;flex-direction:column;gap:3px;font-size:13px;line-height:1.4;color:rgba(17,17,15,.62)}
.iq-public-footer-contact address{font-style:normal;white-space:pre-line;margin:0}
.iq-public-footer-contact a{color:rgba(17,17,15,.62);text-decoration:none;width:fit-content}
.iq-public-footer-contact a:hover,.iq-public-footer-contact a:focus-visible{color:var(--iq-ink)}

/* ══ Mes permissions + bandeaux promo des membres ══════════════════════════
   Bandeau public (À propos / Devenir membre) : image approuvée d'un·e membre
   consentant·e, cliquable vers son portfolio, crédit discret dessous. */
.iq-promo-banner{ margin:0 0 clamp(20px,3vw,36px); }
.iq-promo-banner-link{ display:block; border-radius:clamp(18px,1.6vw,26px); overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,.1); }
.iq-promo-banner-img{ display:block; width:100%; aspect-ratio:3/1; object-fit:cover; }
@media(max-width:700px){ .iq-promo-banner-img{ aspect-ratio:2/1; } }
.iq-promo-banner-credit{ display:block; margin-top:8px; font-size:12px; color:var(--iq-muted,#6f6d66); text-align:right; }
.iq-promo-banner-credit a{ color:inherit; text-decoration:none; }
.iq-promo-banner-credit a:hover,.iq-promo-banner-credit a:focus-visible{ color:var(--iq-ink); text-decoration:underline; }

/* Page portail « Mes permissions » : consentements + cartes d'images. */
.iq-perm-consent-rows{ display:flex; flex-direction:column; gap:10px; margin:14px 0 4px; }
/* Bento unique pour la zone de vignettes : n'existe pas sans image (rendu
   conditionnel), pleine largeur dès la première et se remplit au fur et à
   mesure (3 colonnes = quota max). Grisé transparent, langage du portail. */
.iq-perm-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,1.8vw,22px); margin:18px 0 clamp(24px,3vw,34px); padding:clamp(12px,1.6vw,18px); background:color-mix(in srgb,var(--iq-panel-ink) 7%,transparent); border-radius:18px; }
@media(max-width:900px){ .iq-perm-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px){ .iq-perm-grid{ grid-template-columns:1fr; } }
/* Vignette nue dans le bento : image carrée, plus de filet par carte. */
.iq-perm-card{ margin:0; color:var(--iq-panel-ink); }
.iq-perm-card-img{ display:block; width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:12px; }
.iq-perm-card-meta{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:10px; padding:0 2px; }
.iq-perm-badge{ font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px; white-space:nowrap; }
.iq-perm-badge.is-approved{ background:var(--iq-panel-ink); color:var(--iq-accent); }
.iq-perm-badge.is-pending{ background:color-mix(in srgb,var(--iq-panel-ink) 10%,transparent); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--iq-panel-ink) 35%,transparent); color:var(--ptxt); }
.iq-perm-remove{ font-size:12px; font-weight:600; color:var(--ptxt); text-decoration:none; }
.iq-perm-remove:hover,.iq-perm-remove:focus-visible{ color:var(--iq-panel-ink); text-decoration:underline; }
.iq-perm-upload{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:18px; }
.iq-notice--error{ border-color:#e5b1b1; background:#fdf2f2; color:#8a1f1f; }
/* Textes descriptifs de la page : plus lisibles que les .iq-hint génériques (12px), pleine largeur. */
.iq-perm-consents .iq-hint,.iq-perm-block .iq-hint{ font-size:15px; line-height:1.45; }
.iq-perm-consents .checkbox-label{ font-size:15px; }
/* Sélecteur de fichier : input natif masqué (mais focusable), pastille noire à
   texte accent + état « ✓ nom-du-fichier » bien visible une fois choisi. */
.iq-perm-file{ display:inline-flex; align-items:center; gap:12px; position:relative; cursor:pointer; max-width:100%; }
.iq-perm-file input[type="file"]{ position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; clip-path:inset(50%); }
.iq-perm-file-btn{ display:inline-flex; align-items:center; padding:9px 18px; border:1px solid var(--iq-ink,#11110f); border-radius:999px; background:var(--iq-ink,#11110f); color:var(--iq-accent,#c95616); font-size:13px; font-weight:600; white-space:nowrap; transition:box-shadow .15s var(--iq-ease),filter .15s var(--iq-ease); }
.iq-perm-file:hover .iq-perm-file-btn{ box-shadow:0 3px 9px rgba(17,17,15,.22); filter:brightness(1.25); }
.iq-perm-file input[type="file"]:focus-visible ~ .iq-perm-file-btn{ outline:2px solid var(--iq-panel-ink); outline-offset:2px; }
.iq-perm-file-name{ font-size:13px; color:var(--ptxt); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.iq-perm-file.is-filled .iq-perm-file-name{ padding:5px 13px; border-radius:999px; background:color-mix(in srgb,var(--iq-panel-ink) 10%,transparent); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--iq-panel-ink) 30%,transparent); color:var(--iq-panel-ink); font-weight:600; }
/* Courte description (réseaux sociaux) : boîte de texte pleine largeur SOUS la sélection
   de fichier, au langage du portail (grisé transparent, pas de blanc). */
.iq-perm-caption{ flex:1 1 100%; width:100%; min-width:0; padding:10px 12px; border:1px solid color-mix(in srgb,var(--iq-panel-ink) 40%,transparent); border-radius:10px; background:color-mix(in srgb,var(--iq-panel-ink) 6%,transparent); color:var(--iq-panel-ink); font:inherit; font-size:14px; line-height:1.4; resize:vertical; }
.iq-perm-caption::placeholder{ color:var(--ptxt); }
.iq-perm-caption:focus{ outline:none; border-color:var(--iq-panel-ink); }
/* Description du membre sous la vignette : 2 lignes max (texte complet en infobulle). */
.iq-perm-caption-text{ margin:8px 2px 0; font-size:12px; line-height:1.35; color:var(--ptxt); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
/* Surtitre déplacé AU-DESSUS du bandeau promo : rapproché de l'image qu'il chapeaute. */
.iq-public-head-top--above-banner{ margin-bottom:14px; }

/* Ancre #repertoire : les liens « Répertoire » (nav + footer) atterrissent sur la
   recherche du répertoire, dégagée de la nav fixe. */
.iq-rep-anchor{ display:block; scroll-margin-top:calc(var(--nav-height,62px) + 6px); }

/* =====================================================================
   Sondage de dates (CA) — page publique /sondage/{jeton}. FR seulement.
   ===================================================================== */
.iq-sondage-notice{ border-radius:12px; padding:12px 16px; margin-bottom:18px; font-weight:600; }
.iq-sondage-notice.is-ok{ background:#e3efdd; color:#2f5d2a; }
.iq-sondage-notice.is-bad{ background:#f6e3de; color:#8c3b2e; }
.iq-sondage-retenu{ border-radius:12px; padding:14px 16px; margin-bottom:18px; background:var(--iq-soft); font-size:17px; }
.iq-sondage-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:14px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.07); }
.iq-sondage-grid{ width:100%; border-collapse:collapse; background:#fff; font-size:14px; }
.iq-sondage-grid th,.iq-sondage-grid td{ padding:10px 12px; text-align:center; border-bottom:1px solid rgba(0,0,0,.06); white-space:nowrap; }
.iq-sondage-grid thead th{ font-size:12px; font-weight:720; letter-spacing:-.01em; background:var(--iq-soft); }
.iq-sondage-grid .iq-sondage-who{ text-align:left; font-weight:620; position:sticky; left:0; background:#fff; max-width:180px; overflow:hidden; text-overflow:ellipsis; }
.iq-sondage-grid thead .iq-sondage-who{ background:var(--iq-soft); }
.iq-sondage-grid td.est-oui{ background:#e3efdd; color:#2f5d2a; font-weight:700; }
.iq-sondage-grid td.est-sinecessaire{ background:#f4ecd4; color:#7a5d18; }
.iq-sondage-grid td.est-non{ color:#b9b6ad; }
.iq-sondage-grid th.est-best,.iq-sondage-grid .iq-sondage-total td.est-best{ box-shadow:inset 0 0 0 2px var(--iq-accent); }
.iq-sondage-pin{ display:inline-block; margin-left:6px; padding:2px 8px; border-radius:999px; background:var(--iq-accent); color:var(--iq-panel-ink); font-size:10px; text-transform:uppercase; letter-spacing:.04em; }
.iq-sondage-total td{ border-top:2px solid rgba(0,0,0,.14); font-size:15px; }
.iq-sondage-total td span,.iq-sondage-legende span{ color:#7a5d18; }
.iq-sondage-legende{ margin-top:10px; color:var(--iq-muted); font-size:13px; }
.iq-sondage-vide{ color:var(--iq-muted); }
/* Formulaire de réponse */
.iq-sondage-hp{ position:absolute; left:-9999px; top:auto; }
.iq-sondage-nom{ display:block; max-width:420px; margin-bottom:18px; }
.iq-sondage-nom span{ display:block; margin-bottom:6px; font-size:13px; font-weight:700; }
.iq-sondage-nom input{ width:100%; border:1px solid rgba(0,0,0,.18); border-radius:10px; padding:11px 13px; font:inherit; background:#fff; }
.iq-sondage-nom input:focus-visible{ outline:2px solid var(--iq-accent); outline-offset:1px; }
/* Rangée de réponse : puce-calendrier à gauche, pastilles à droite. */
.iq-sondage-creneau{ display:flex; align-items:center; gap:16px; border:0; border-radius:14px; padding:10px 14px; margin:0 0 8px; background:#fff; box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.iq-sondage-quand{ display:flex; flex-direction:column; align-items:center; flex:0 0 80px; padding:8px 6px; border-radius:12px; background:var(--iq-soft); line-height:1.05; }
.iq-sq-jour{ font-size:10px; font-weight:760; text-transform:uppercase; letter-spacing:.06em; color:var(--iq-muted); }
.iq-sq-num{ font-family:var(--iq-display); font-weight:var(--iq-display-weight); font-size:27px; }
.iq-sq-mois{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--iq-muted); }
.iq-sq-heure{ margin-top:5px; padding:2px 8px; border-radius:999px; background:#fff; font-size:11px; font-weight:750; }
.iq-sondage-options{ display:flex; flex-wrap:wrap; gap:8px; }
/* En-têtes de grille sur deux lignes (date / heure). */
.iq-sondage-th-date{ display:block; }
.iq-sondage-th-heure{ display:block; margin-top:2px; font-weight:620; font-size:11px; color:var(--iq-muted); }
@media(max-width:560px){
  .iq-sondage-creneau{ gap:12px; padding:9px 11px; }
  .iq-sondage-quand{ flex-basis:68px; }
  .iq-sondage-options span{ padding:7px 10px; font-size:12.5px; }
}
.iq-sondage-options label{ cursor:pointer; }
.iq-sondage-options input{ position:absolute; opacity:0; pointer-events:none; }
.iq-sondage-options span{ display:inline-block; border:1px solid rgba(0,0,0,.16); border-radius:999px; padding:8px 14px; font-size:13.5px; font-weight:620; background:var(--iq-bg); transition:background .15s,border-color .15s,color .15s; }
.iq-sondage-options input:focus-visible + span{ outline:2px solid var(--iq-accent); outline-offset:1px; }
.iq-sondage-options input[value="oui"]:checked + span{ background:#e3efdd; border-color:#2f5d2a; color:#2f5d2a; }
.iq-sondage-options input[value="sinecessaire"]:checked + span{ background:#f4ecd4; border-color:#7a5d18; color:#7a5d18; }
.iq-sondage-options input[value="non"]:checked + span{ background:#efece4; border-color:rgba(0,0,0,.3); color:var(--iq-muted); }
.iq-sondage-envoyer{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:16px; }
.iq-sondage-envoyer button{ border:0; border-radius:999px; padding:13px 24px; background:var(--iq-ink); color:var(--iq-bg); font:inherit; font-weight:750; cursor:pointer; }
.iq-sondage-envoyer button:hover{ background:var(--iq-accent); color:var(--iq-panel-ink); }
.iq-sondage-envoyer span{ color:var(--iq-muted); font-size:13px; }
