/* @portee: public */
/* =========================================================================
   EIT GROUP — Site public v2 (agent 5)
   En-tête / pied de page, accueil (titre animé, vidéo, bandeau email, « Nos chiffres »),
   offres, guide, habillage postuler / merci, lecteur vidéo (eitp-*), éditeur « Nos chiffres » (pub-chx-*).
   Préfixes : .pub-*, .eitp-*. Uniquement les variables du thème + la charte (noir, blanc, vert).
   ========================================================================= */

.pub { --pub-gutter: 16px; --pub-top-h: 84px; --pub-glow: color-mix(in srgb, var(--brand) 22%, transparent); min-height: 100dvh; display: flex; flex-direction: column; }
@media (min-width: 768px) { .pub { --pub-gutter: 28px; } }
@media (max-width: 767px) { .pub { --pub-top-h: 68px; } }
.pub-main { flex: 1 0 auto; }
html.pub-lock, html.eitp-lock { overflow: hidden; }
html.pub-lock body, html.eitp-lock body { overflow: hidden; }

/* ------------------------------------------------------------- Titres de section */
.pub-sec { padding-block: clamp(3.2rem, 1.6rem + 5vw, 6.5rem); }
.pub-sec.is-tight { padding-block: clamp(1.6rem, 1rem + 2vw, 3rem); }
.pub-sec.is-flush { padding-top: 0; }
.pub-band { background: var(--bg-sunken); border-block: 1px solid var(--line); }
.pub-kicker { display: inline-flex; align-items: center; gap: .45rem; font-size: .78rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; color: var(--brand-ink); }
.pub-kicker .ph-fill, .pub-kicker .ph { font-size: 1rem; }
.pub-kicker.is-light { color: #8BD35F; }
.pub-head { display: flex; flex-direction: column; gap: .6rem; max-width: 760px; margin-bottom: clamp(1.6rem, 1rem + 2vw, 2.6rem); }
.pub-head h2, .pub-h2 { margin: 0; font-size: clamp(1.85rem, 1.2rem + 2.4vw, 3rem); font-stretch: 114%; font-weight: 820; letter-spacing: -0.025em; line-height: 1.05; text-wrap: balance; }
.pub-head p { margin: 0; color: var(--text-2); font-size: clamp(1rem, .95rem + .3vw, 1.15rem); max-width: 62ch; }
.pub-head.is-row { flex-direction: row; align-items: flex-end; justify-content: space-between; max-width: none; flex-wrap: wrap; gap: 1rem 2rem; }
.pub-head.is-row > div { display: flex; flex-direction: column; gap: .6rem; max-width: 720px; }
.pub-more { display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; font-size: .9rem; }
.pub-more .ph { transition: transform .2s var(--ease); }
.pub-more:hover .ph { transform: translateX(3px); }
.pub-pill { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .7rem; border-radius: var(--r-pill); background: var(--bg-sunken); border: 1px solid var(--line); font-size: .78rem; font-weight: 700; color: var(--text-2); white-space: nowrap; }
.pub-pill.is-brand { background: var(--brand); border-color: var(--brand); color: #000; }

/* Boutons complémentaires */
.btn .ph-arrow-right, .btn .ph-arrow-up-right { transition: transform .2s var(--ease); }
.btn:hover .ph-arrow-right { transform: translateX(3px); }
.pub-btn-soft { --btn-bg: var(--bg-elev); --btn-fg: var(--text); --btn-bd: var(--line-strong); }
.pub-btn-soft .ph-fill { color: var(--brand-ink); font-size: 1.25rem; }
.pub-btn-glass { --btn-bg: rgba(255,255,255,.08); --btn-fg: #fff; --btn-bd: rgba(255,255,255,.22); backdrop-filter: blur(6px); }
.pub-btn-glass:hover { background: rgba(255,255,255,.16); }

/* ------------------------------------------------------------- Bandeau d'annonce */
.pub-annonce { background: #000; color: #fff; font-size: .88rem; position: relative; z-index: 51; border-bottom: 1px solid rgba(255,255,255,.08); }
.pub-annonce.is-urgent { background: var(--signal); color: #000; }
.pub-annonce-inner { display: flex; align-items: center; gap: .75rem; min-height: 44px; padding-block: .45rem; }
.pub-annonce-ic { width: 1.8rem; height: 1.8rem; border-radius: 50%; display: grid; place-items: center; background: var(--brand); color: #000; flex-shrink: 0; font-size: .95rem; }
.pub-annonce.is-urgent .pub-annonce-ic { background: #000; color: var(--signal); }
.pub-annonce a { color: #8BD35F; font-weight: 750; white-space: nowrap; }
.pub-annonce.is-urgent a { color: #000; text-decoration: underline; }
.pub-annonce-x { border: 0; background: transparent; color: inherit; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; cursor: pointer; opacity: .75; flex-shrink: 0; }
.pub-annonce-x:hover { opacity: 1; background: rgba(255,255,255,.12); }

/* ------------------------------------------------------------- En-tête */
.pub-top { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--bg) 78%, transparent); backdrop-filter: blur(16px) saturate(1.3); -webkit-backdrop-filter: blur(16px) saturate(1.3); border-bottom: 1px solid transparent; transition: border-color .25s, box-shadow .25s, background .25s; }
.pub-top.is-scrolled { border-bottom-color: var(--line); box-shadow: 0 10px 30px -22px rgba(0,0,0,.45); background: color-mix(in srgb, var(--bg) 90%, transparent); }
.pub-top-inner { height: var(--pub-top-h); display: flex; align-items: center; gap: clamp(.8rem, 2vw, 2rem); transition: height .25s var(--ease); }
.pub-top.is-scrolled .pub-top-inner { height: calc(var(--pub-top-h) - 12px); }

.pub-brand { display: inline-flex; align-items: center; gap: .85rem; color: var(--text); text-decoration: none !important; flex-shrink: 0; min-width: 0; }
.pub-brand-mark { position: relative; display: grid; place-items: center; flex-shrink: 0; border-radius: 50%; }
.pub-brand-mark img { width: 56px; height: 56px; border-radius: 50%; background: #fff; box-shadow: none; transition: transform .45s var(--ease), width .25s var(--ease), height .25s var(--ease); }
.pub-brand:hover .pub-brand-mark img { transform: rotate(-8deg) scale(1.04); }
/* v3 : logo rond, sans aucun contour ni halo vert (demande du client). Thème sombre : liseré neutre à peine visible, sinon le rond noir disparaît sur le fond noir. */
[data-theme="dark"] .pub-brand-mark img { box-shadow: 0 0 0 1px rgba(255,255,255,.1); }
.pub-brand-text { display: flex; flex-direction: column; min-width: 0; }
.pub-brand-text b { font-size: 1.5rem; font-weight: 860; font-stretch: 125%; letter-spacing: .01em; line-height: 1; white-space: nowrap; }
.pub-brand-text small { display: inline-flex; align-items: center; gap: .4rem; margin-top: .32rem; font-size: .7rem; font-weight: 720; letter-spacing: .14em; text-transform: uppercase; color: var(--text-2); white-space: nowrap; }
.pub-brand-text small::before { content: ""; width: 1rem; height: 2px; border-radius: 2px; background: var(--brand); flex-shrink: 0; }
.pub-top.is-scrolled .pub-brand-mark img { width: 48px; height: 48px; }
@media (max-width: 767px) {
  .pub-brand { gap: .65rem; }
  .pub-brand-mark img, .pub-top.is-scrolled .pub-brand-mark img { width: 44px; height: 44px; }
  .pub-brand-text b { font-size: 1.2rem; }
  .pub-brand-text small { font-size: .6rem; letter-spacing: .1em; margin-top: .25rem; }
  .pub-brand-text small::before { width: .6rem; }
}
@media (max-width: 374px) { .pub-brand-text b { font-size: 1.08rem; } .pub-brand-text small { font-size: .55rem; letter-spacing: .06em; } .pub-brand-text small::before { display: none; } }

.pub-nav { display: flex; align-items: center; gap: .15rem; margin-inline: auto; }
.pub-nav a { position: relative; white-space: nowrap; padding: .55rem .85rem; border-radius: var(--r-pill); color: var(--text-2); font-weight: 650; font-size: .94rem; text-decoration: none !important; transition: color .15s, background .15s; }
.pub-nav a:hover { color: var(--text); background: var(--bg-hover); }
.pub-nav a.is-active { color: var(--text); }
.pub-nav a::after { content: ""; position: absolute; left: 50%; bottom: .2rem; width: 1.1rem; height: 3px; border-radius: 3px; background: var(--brand); transform: translateX(-50%) scaleX(0); transition: transform .25s var(--ease); }
.pub-nav a.is-active::after { transform: translateX(-50%) scaleX(1); }
.pub-actions { display: flex; align-items: center; gap: .4rem; margin-left: auto; }
.pub-nav + .pub-actions { margin-left: 0; }
.pub-burger { display: none; width: 2.75rem; height: 2.75rem; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--bg-elev); cursor: pointer; position: relative; flex-shrink: 0; }
.pub-burger span { position: absolute; left: 50%; width: 1.15rem; height: 2px; border-radius: 2px; background: var(--text); transform: translateX(-50%); transition: transform .28s var(--ease), opacity .2s, top .28s var(--ease); }
.pub-burger span:nth-child(1) { top: calc(50% - 6px); } .pub-burger span:nth-child(2) { top: calc(50% - 1px); } .pub-burger span:nth-child(3) { top: calc(50% + 4px); }
.pub-top.is-open .pub-burger span:nth-child(1) { top: calc(50% - 1px); transform: translateX(-50%) rotate(45deg); }
.pub-top.is-open .pub-burger span:nth-child(2) { opacity: 0; }
.pub-top.is-open .pub-burger span:nth-child(3) { top: calc(50% - 1px); transform: translateX(-50%) rotate(-45deg); }
@media (max-width: 1279px) { .pub-nav { display: none; } .pub-burger { display: inline-block; } .pub-hide-lg { display: none !important; } }
@media (min-width: 1280px) and (max-width: 1439px) { .pub-hide-xl { display: none !important; } .pub-nav a { padding: .5rem .62rem; font-size: .9rem; } }
.pub-only-xl { display: none !important; }
@media (min-width: 1280px) and (max-width: 1439px) { .pub-only-xl { display: inline-flex !important; } }
@media (max-width: 899px) { .pub-hide-md { display: none !important; } }
@media (max-width: 559px) { .pub-hide-sm { display: none !important; } }

/* Menu mobile */
.pub-menu { position: fixed; left: 0; right: 0; top: 0; bottom: 0; z-index: 49; padding-top: calc(var(--pub-top-h) - 12px); background: color-mix(in srgb, var(--bg) 60%, transparent); backdrop-filter: blur(6px); }
.pub-menu-panel { height: 100%; overflow-y: auto; background: var(--bg); border-top: 1px solid var(--line); padding: 1rem var(--pub-gutter) calc(1.5rem + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 1.2rem; }
@media (min-width: 700px) { .pub-menu-panel { max-width: 520px; margin-left: auto; height: auto; max-height: 100%; border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0 0 0 var(--r-xl); box-shadow: var(--shadow-pop); } }
.pub-menu-links { display: flex; flex-direction: column; }
.pub-menu-links a { display: flex; align-items: center; gap: .85rem; padding: .85rem .35rem; border-bottom: 1px solid var(--line); color: var(--text); font-size: 1.12rem; font-weight: 720; font-stretch: 108%; text-decoration: none !important; }
.pub-menu-links a > .ph { color: var(--text-3); transition: transform .2s var(--ease); }
.pub-menu-links a:hover > .ph { transform: translateX(3px); color: var(--text); }
.pub-menu-links a.is-active { color: var(--brand-ink); }
.pub-menu-ic { width: 2.4rem; height: 2.4rem; border-radius: var(--r); display: grid; place-items: center; background: var(--bg-sunken); color: var(--text-2); font-size: 1.15rem; flex-shrink: 0; }
.pub-menu-links a.is-cta .pub-menu-ic { background: var(--brand); color: #000; }
.pub-menu-cta { display: flex; flex-direction: column; gap: .6rem; }
.pub-menu-foot { display: flex; justify-content: space-between; align-items: center; gap: .6rem; }
.pub-menu-rh { display: inline-flex; align-items: center; gap: .45rem; color: var(--text-3); font-size: .86rem; font-weight: 600; align-self: center; }
.pub-menu-in { animation: pub-menu-in .3s var(--ease); }
.pub-menu-out { animation: pub-menu-in .2s var(--ease) reverse; }
@keyframes pub-menu-in { from { opacity: 0; } to { opacity: 1; } }
.pub-menu-in .pub-menu-panel { animation: pub-panel-in .35s var(--ease); }
@keyframes pub-panel-in { from { transform: translateY(-14px); opacity: .4; } }

/* ------------------------------------------------------------- Héros */
.pub-hero { position: relative; overflow: hidden; padding-block: clamp(2.4rem, 1rem + 5vw, 5.5rem) clamp(4.5rem, 2rem + 6vw, 7.5rem); }
.pub-hero-bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
/* v4 (agent 2) : texture et halo paramétrables (Apparence du site). Variables posées sur .pub : --pub-tex-k (intensité, 1 = défaut),
   --pub-tex-size (taille du motif, 64px), --pub-halo (couleur, vert EIT), --pub-halo-k (intensité du halo) ; attributs data-texture / data-halo.
   Valeurs par défaut = rendu v3 à l'identique. Les autres textures sont dans parts/public-v4.css. */
.pub-hero-grid { --tex-c: var(--line); --tex-s: var(--pub-tex-size, 64px); position: absolute; inset: -1px; background-image: linear-gradient(var(--tex-c) 1px, transparent 1px), linear-gradient(90deg, var(--tex-c) 1px, transparent 1px); background-size: var(--tex-s) var(--tex-s); opacity: calc(.55 * var(--pub-tex-k, 1)); -webkit-mask-image: radial-gradient(ellipse 80% 70% at 70% 30%, #000 20%, transparent 75%); mask-image: radial-gradient(ellipse 80% 70% at 70% 30%, #000 20%, transparent 75%); }
.pub-orb { --halo: var(--pub-halo, var(--brand)); position: absolute; border-radius: 50%; filter: blur(60px); opacity: calc(.55 * var(--pub-halo-k, 1)); }
.pub-orb.is-a { width: 46vw; height: 46vw; max-width: 720px; max-height: 720px; right: -10vw; top: -14vw; background: radial-gradient(circle, color-mix(in srgb, var(--halo) 55%, transparent), transparent 65%); animation: pub-float 18s ease-in-out infinite; }
.pub-orb.is-b { width: 30vw; height: 30vw; max-width: 460px; max-height: 460px; left: -12vw; bottom: -12vw; background: radial-gradient(circle, color-mix(in srgb, var(--halo) 30%, transparent), transparent 65%); animation: pub-float 22s ease-in-out infinite reverse; }
[data-theme="light"] .pub-orb { opacity: calc(.35 * var(--pub-halo-k, 1)); }
@keyframes pub-float { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-3vw, 2vw); } }
.pub-hero-inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 3.5vw, 5rem); align-items: center; }
@media (max-width: 1023px) { .pub-hero-inner { grid-template-columns: minmax(0, 1fr); } }
.pub-hero-copy { display: flex; flex-direction: column; align-items: flex-start; container-type: inline-size; min-width: 0; }

.pub-eyebrow { display: inline-flex; align-items: center; gap: .55rem; padding: .38rem .8rem .38rem .55rem; border-radius: var(--r-pill); background: var(--bg-elev); border: 1px solid var(--line); color: var(--text-2); font-size: .86rem; font-weight: 640; text-decoration: none !important; box-shadow: var(--shadow-1); margin-bottom: 1.4rem; animation: pub-rise .6s var(--ease) backwards; max-width: 100%; }
.pub-eyebrow b { color: var(--text); font-weight: 800; }
.pub-eyebrow .ph { transition: transform .2s var(--ease); }
.pub-eyebrow:hover { border-color: var(--brand-line); color: var(--text); }
.pub-eyebrow:hover .ph { transform: translateX(3px); }
.pub-live { position: relative; width: .6rem; height: .6rem; border-radius: 50%; background: var(--brand); flex-shrink: 0; }
.pub-live::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--brand); animation: pub-ping 1.8s cubic-bezier(0, 0, .2, 1) infinite; }
@keyframes pub-ping { 75%, 100% { transform: scale(2.6); opacity: 0; } }
@keyframes pub-rise { from { opacity: 0; transform: translateY(14px); } }

/* Titre animé « Postulez ici. Uniquement ici. » */
.pub-title { margin: 0 0 1.3rem; font-size: clamp(2.15rem, 10.4cqi, 5.6rem); font-stretch: 120%; font-weight: 860; letter-spacing: -0.035em; line-height: .98; color: var(--text); }
.pub-title-line { display: block; }
.pub-w { display: inline-block; opacity: 0; transform: translateY(.42em) rotate(2.5deg); filter: blur(10px); animation: pub-word .85s var(--ease) forwards; animation-delay: calc(var(--i) * 115ms + 150ms); transform-origin: left bottom; }
@keyframes pub-word { to { opacity: 1; transform: none; filter: blur(0); } }
.pub-k { position: relative; display: inline-block; z-index: 0; }
/* soulignement qui balaie le premier « ici » */
.pub-w.is-under .pub-k::after { content: ""; position: absolute; left: .02em; right: .02em; bottom: .02em; height: .11em; border-radius: 99px; background: var(--brand); transform: scaleX(0); transform-origin: left; animation: pub-sweep .7s cubic-bezier(.7, 0, .2, 1) forwards; animation-delay: calc(var(--n) * 115ms + 550ms); }
/* surlignage vert qui balaie le dernier « ici », texte en noir, brillance qui revient */
.pub-w.is-mark .pub-k { padding-inline: .06em; margin-inline: -.06em; animation: pub-ink .25s ease forwards, pub-pulse 7s ease-in-out infinite; animation-delay: calc(var(--n) * 115ms + 1000ms), calc(var(--n) * 115ms + 3200ms); }
.pub-w.is-mark .pub-k::before { content: ""; position: absolute; inset: .1em -.04em .02em; border-radius: .12em; z-index: -1; background: linear-gradient(105deg, var(--brand) 0 42%, #A5EC74 50%, var(--brand) 58% 100%); background-size: 260% 100%; background-position: 100% 0; transform: scaleX(0); transform-origin: left; box-shadow: 0 .18em .5em -.2em color-mix(in srgb, var(--brand) 70%, transparent); animation: pub-sweep .75s cubic-bezier(.7, 0, .2, 1) forwards, pub-shine 7s ease-in-out infinite; animation-delay: calc(var(--n) * 115ms + 800ms), calc(var(--n) * 115ms + 3200ms); }
@keyframes pub-sweep { to { transform: scaleX(1); } }
@keyframes pub-ink { to { color: #000; } }
@keyframes pub-shine { 0%, 82% { background-position: 100% 0; } 96%, 100% { background-position: 0 0; } }
@keyframes pub-pulse { 0%, 80%, 100% { transform: scale(1); } 86% { transform: scale(1.06) rotate(-1.5deg); } 92% { transform: scale(.985); } }

.pub-lead { margin: 0; font-size: clamp(1.04rem, .96rem + .4vw, 1.24rem); line-height: 1.6; color: var(--text-2); max-width: 56ch; animation: pub-rise .7s var(--ease) backwards; animation-delay: .7s; }
.pub-cta { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; animation: pub-rise .7s var(--ease) backwards; animation-delay: .85s; }
.pub-cta .btn-lg { min-height: 3.4rem; border-radius: var(--r); }
.pub-cta-main { box-shadow: 0 14px 30px -14px color-mix(in srgb, var(--brand) 85%, transparent); }
.pub-cta-main:hover { transform: translateY(-1px); }
.pub-cta-video { padding-left: .55rem; }
.pub-cta-play { width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center; background: var(--bg-inverse); color: var(--text-inverse); font-size: .9rem; position: relative; }
.pub-cta-play::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid var(--brand); opacity: .0; animation: pub-ring 2.6s ease-out infinite; }
@keyframes pub-ring { 0% { transform: scale(.85); opacity: .9; } 70%, 100% { transform: scale(1.35); opacity: 0; } }
.pub-trust { list-style: none; margin: 1.8rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; color: var(--text-2); font-size: .88rem; font-weight: 600; animation: pub-rise .7s var(--ease) backwards; animation-delay: 1s; }
.pub-trust li { display: inline-flex; align-items: center; gap: .4rem; }
.pub-trust .ph-bold { color: var(--brand-ink); }
@media (max-width: 559px) {
  .pub-cta { flex-direction: column; align-items: stretch; width: 100%; }
  .pub-cta .btn { width: 100%; }
  .pub-cta-video { justify-content: center; }
  .pub-trust { flex-direction: column; gap: .4rem; }
}

.pub-hero-media { position: relative; animation: pub-media-in .9s var(--ease) backwards; animation-delay: .35s; min-width: 0; }
@keyframes pub-media-in { from { opacity: 0; transform: translateY(24px) scale(.98); } }
.pub-media-frame { position: relative; padding: .55rem; border-radius: calc(var(--r-xl) + .55rem); background: linear-gradient(160deg, color-mix(in srgb, var(--brand) 30%, var(--line)), var(--line) 40%, var(--line)); box-shadow: 0 40px 90px -40px color-mix(in srgb, var(--pub-halo, var(--brand)) min(100%, calc(55% * var(--pub-halo-k, 1))), transparent), var(--shadow-2); }
.pub[data-halo="off"] .pub-media-frame { box-shadow: var(--shadow-2); }
.pub-media-frame::before { content: ""; position: absolute; inset: 1px; border-radius: inherit; background: var(--bg-elev); }
.pub-media-frame > * { position: relative; }

/* ------------------------------------------------------------- Lecteur vidéo (eitp) */
.eitp-wrap { display: flex; flex-direction: column; gap: .7rem; min-width: 0; }
.eitp-slot { position: relative; aspect-ratio: 16 / 9; width: 100%; }
.eitp { position: absolute; inset: 0; border-radius: var(--r-xl); background: #000; color: #fff; outline: none; container-type: size; -webkit-tap-highlight-color: transparent; user-select: none; }
.eitp:focus-visible { box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand) 75%, transparent); }
.eitp-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #000; cursor: pointer; border-radius: inherit; }
.eitp-poster { position: absolute; inset: 0; z-index: 3; width: 100%; border: 0; border-radius: inherit; overflow: hidden; padding: clamp(.9rem, 4cqi, 1.6rem); margin: 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; text-align: left; color: #fff; cursor: pointer; background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.82)); }
.eitp-play { position: absolute; left: 50%; top: 46%; transform: translate(-50%, -50%); width: clamp(3.8rem, 16cqi, 5.6rem); height: clamp(3.8rem, 16cqi, 5.6rem); border-radius: 50%; background: var(--brand); color: #000; display: grid; place-items: center; font-size: clamp(1.5rem, 6cqi, 2.3rem); box-shadow: 0 0 0 0 rgba(92,172,48,.55); animation: eitp-beat 2.4s ease-out infinite; transition: transform .25s var(--ease); }
.eitp-play .ph-fill { margin-left: .12em; }
.eitp-poster:hover .eitp-play { transform: translate(-50%, -50%) scale(1.07); }
.eitp-play.is-loading .ph-fill { opacity: 0; }
.eitp-play.is-loading::after { content: ""; position: absolute; width: 40%; height: 40%; border: 3px solid rgba(0,0,0,.25); border-top-color: #000; border-radius: 50%; animation: eitp-spin .8s linear infinite; }
@keyframes eitp-beat { 0% { box-shadow: 0 0 0 0 rgba(92,172,48,.55); } 70%, 100% { box-shadow: 0 0 0 clamp(14px, 4cqi, 24px) rgba(92,172,48,0); } }
.eitp-poster-info { display: flex; flex-direction: column; gap: .5rem; }
.eitp-tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.eitp-tag { display: inline-flex; align-items: center; gap: .3rem; padding: .22rem .6rem; border-radius: var(--r-pill); background: rgba(255,255,255,.14); backdrop-filter: blur(6px); font-size: .74rem; font-weight: 700; color: #fff; }
.eitp-tag.is-brand { background: rgba(92,172,48,.28); color: #A5EC74; }
.eitp-poster-title { font-size: clamp(1rem, 4.2cqi, 1.5rem); font-weight: 800; font-stretch: 112%; line-height: 1.15; text-shadow: 0 2px 12px rgba(0,0,0,.5); }
@container (max-width: 380px) { .eitp-tags .eitp-tag:not(.is-brand) { display: none; } }

.eitp-captions { position: absolute; left: 50%; bottom: 4.6rem; transform: translateX(-50%); width: min(90%, 820px); text-align: center; z-index: 4; pointer-events: none; transition: bottom .25s var(--ease); }
.eitp.is-idle .eitp-captions { bottom: 1rem; }
.eitp-captions span { display: inline; background: rgba(0,0,0,.72); backdrop-filter: blur(4px); color: #fff; padding: .2rem .6rem; border-radius: 7px; font-size: clamp(.78rem, 2.6cqi, 1.12rem); line-height: 1.7; font-weight: 600; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
@container (max-width: 420px) { .eitp-captions { bottom: 3.9rem; width: 94%; } .eitp-captions span { font-size: .74rem; line-height: 1.6; padding: .15rem .45rem; } }

.eitp-controls { position: absolute; left: 0; right: 0; bottom: 0; z-index: 5; border-bottom-left-radius: inherit; border-bottom-right-radius: inherit; padding: 1.6rem .7rem .55rem; background: linear-gradient(180deg, transparent, rgba(0,0,0,.82)); display: flex; flex-direction: column; gap: .35rem; transition: opacity .3s, transform .3s var(--ease); }
.eitp.is-idle .eitp-controls { opacity: 0; transform: translateY(8px); pointer-events: none; }
.eitp.is-idle { cursor: none; }
.eitp-progress { position: relative; height: 16px; cursor: pointer; touch-action: none; margin-inline: .2rem; }
.eitp-progress::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 4px; transform: translateY(-50%); border-radius: 4px; background: rgba(255,255,255,.25); transition: height .15s; }
.eitp-progress:hover::before { height: 6px; }
.eitp-progress-fill { position: absolute; left: 0; top: 50%; height: 4px; transform: translateY(-50%); border-radius: 4px; background: var(--brand); transition: height .15s; }
.eitp-progress:hover .eitp-progress-fill { height: 6px; }
.eitp-progress-knob { position: absolute; top: 50%; width: 13px; height: 13px; border-radius: 50%; background: #fff; transform: translate(-50%, -50%) scale(0); transition: transform .15s; box-shadow: 0 0 0 3px rgba(92,172,48,.5); }
.eitp-progress:hover .eitp-progress-knob, .eitp-progress:focus-visible .eitp-progress-knob { transform: translate(-50%, -50%) scale(1); }
.eitp-bar { display: flex; align-items: center; gap: .3rem; }
.eitp-btn { background: rgba(255,255,255,.12); border: 0; color: #fff; width: 2.3rem; height: 2.3rem; border-radius: 50%; display: grid; place-items: center; cursor: pointer; font-size: 1.1rem; flex-shrink: 0; transition: background .15s, transform .1s; }
.eitp-btn:hover { background: rgba(255,255,255,.26); }
.eitp-btn:active { transform: scale(.94); }
.eitp-btn.is-main { width: 2.6rem; height: 2.6rem; background: #fff; color: #000; }
.eitp-btn.is-on, .eitp-btn.is-open { background: var(--brand); color: #000; }
.eitp-btn:focus-visible { box-shadow: 0 0 0 3px var(--brand); border-radius: 50%; }
.eitp-time { font-size: .78rem; font-weight: 700; margin-left: .3rem; white-space: nowrap; opacity: .92; }
@container (max-width: 460px) { .eitp-opt { display: none !important; } .eitp-btn { width: 2.1rem; height: 2.1rem; font-size: 1rem; } .eitp-btn.is-main { width: 2.3rem; height: 2.3rem; } .eitp-controls { padding: 1.2rem .45rem .4rem; } .eitp-time { font-size: .7rem; } }
@container (max-width: 330px) { .eitp-time { display: none; } }

.eitp-voicebox { position: relative; }
.eitp-voices { position: absolute; right: -2.5rem; bottom: calc(100% + .6rem); width: min(300px, calc(100vw - 32px)); max-height: min(320px, 60vh); overflow-y: auto; padding: .4rem; border-radius: 14px; background: rgba(12,14,11,.94); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.12); box-shadow: 0 20px 50px -20px rgba(0,0,0,.9); z-index: 8; color: #fff; text-align: left; scrollbar-width: thin; }
.eitp-voices-head { padding: .45rem .55rem .55rem; display: flex; flex-direction: column; gap: .1rem; border-bottom: 1px solid rgba(255,255,255,.1); margin-bottom: .3rem; }
.eitp-voices-head b { font-size: .86rem; }
.eitp-voices-head span { font-size: .72rem; color: rgba(255,255,255,.6); }
.eitp-voice { display: flex; align-items: center; gap: .55rem; width: 100%; padding: .5rem .55rem; border: 0; border-radius: 9px; background: transparent; color: #fff; font: inherit; font-size: .84rem; font-weight: 600; text-align: left; cursor: pointer; }
.eitp-voice:hover { background: rgba(255,255,255,.08); }
.eitp-voice.is-on { background: rgba(92,172,48,.18); }
.eitp-voice .ph { font-size: 1.05rem; color: rgba(255,255,255,.5); }
.eitp-voice.is-on .ph { color: #8BD35F; }
.eitp-voice small { color: rgba(255,255,255,.5); font-size: .7rem; font-weight: 600; }
.eitp-natural { font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; padding: .12rem .4rem; border-radius: 99px; background: var(--brand); color: #000; flex-shrink: 0; }
.eitp-voices-empty { margin: 0; padding: .6rem; font-size: .78rem; color: rgba(255,255,255,.7); }

.eitp-spinner { position: absolute; left: 50%; top: 50%; width: 3rem; height: 3rem; margin: -1.5rem 0 0 -1.5rem; border: 3px solid rgba(255,255,255,.2); border-top-color: var(--brand); border-radius: 50%; animation: eitp-spin .8s linear infinite; z-index: 4; pointer-events: none; }
@keyframes eitp-spin { to { transform: rotate(360deg); } }
.eitp-flash { position: absolute; left: 50%; top: 50%; width: 4.2rem; height: 4.2rem; margin: -2.1rem 0 0 -2.1rem; border-radius: 50%; background: rgba(0,0,0,.5); display: grid; place-items: center; font-size: 1.8rem; z-index: 4; pointer-events: none; animation: eitp-flash .52s ease-out forwards; }
@keyframes eitp-flash { from { opacity: 1; transform: scale(.8); } to { opacity: 0; transform: scale(1.35); } }

.eitp-end { position: absolute; inset: 0; z-index: 6; border-radius: inherit; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .7rem; padding: 1rem; text-align: center; background: radial-gradient(ellipse at center, rgba(0,0,0,.72), rgba(0,0,0,.9)); backdrop-filter: blur(4px); }
.eitp-end-kicker { display: inline-flex; align-items: center; gap: .4rem; color: #8BD35F; font-weight: 750; font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; }
.eitp-end-title { font-size: clamp(1rem, 5cqi, 1.7rem); font-weight: 820; font-stretch: 112%; line-height: 1.15; max-width: 24ch; text-wrap: balance; }
.eitp-end-cta { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-top: .3rem; }
.eitp-btn-light { --btn-bg: #fff; --btn-fg: #000; --btn-bd: #fff; }
.eitp-btn-light:hover { background: #E9ECE6; }
.eitp-btn-ghost { --btn-bg: rgba(255,255,255,.1); --btn-fg: #fff; --btn-bd: rgba(255,255,255,.25); }
.eitp-btn-ghost:hover { background: rgba(255,255,255,.2); }
@container (max-width: 420px) { .eitp-end-cta .btn { min-height: 2.2rem; padding: .35rem .7rem; font-size: .8rem; } .eitp-end-kicker { display: none; } }

.eitp-foot { display: flex; align-items: center; justify-content: space-between; gap: .6rem 1rem; flex-wrap: wrap; padding: .15rem .35rem .2rem; }
.eitp-foot-text { display: inline-flex; align-items: flex-start; gap: .4rem; color: var(--text-2); font-size: .84rem; line-height: 1.4; min-width: 0; flex: 1 1 240px; }
.eitp-foot-text .ph { margin-top: .1rem; color: var(--brand-ink); }
.eitp-big { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .95rem; border-radius: var(--r-pill); border: 1px solid var(--line-strong); background: var(--bg-elev); color: var(--text); font: inherit; font-size: .86rem; font-weight: 720; cursor: pointer; white-space: nowrap; transition: border-color .15s, background .15s, transform .15s; }
.eitp-big:hover { border-color: var(--brand); background: var(--brand-soft); transform: translateY(-1px); }
.eitp-big .ph-bold { color: var(--brand-ink); }

/* Mode cinéma (« Regarder en grand ») : le même lecteur passe au premier plan */
.eitp-backdrop { position: fixed; inset: 0; z-index: 255; background: rgba(0,0,0,.9); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.eitp-cinema-bar { position: absolute; left: 0; right: 0; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: max(.8rem, env(safe-area-inset-top)) var(--pub-gutter, 16px) .8rem; color: #fff; }
.eitp-cinema-title { display: inline-flex; align-items: center; gap: .5rem; font-weight: 750; font-stretch: 108%; font-size: clamp(.9rem, .8rem + .4vw, 1.1rem); min-width: 0; }
.eitp-cinema-title .ph-fill { color: var(--brand); font-size: 1.3rem; }
.eitp-close { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: #fff; height: 2.6rem; padding: 0 .9rem; border-radius: var(--r-pill); cursor: pointer; font: inherit; font-weight: 700; font-size: .88rem; flex-shrink: 0; }
.eitp-close:hover { background: rgba(255,255,255,.18); }
.eitp-close .ph { font-size: 1.15rem; }
.eitp.is-cinema { position: fixed; z-index: 260; inset: auto; left: 50%; top: 50%; width: min(94vw, calc((100dvh - 150px) * 16 / 9)); height: auto; aspect-ratio: 16 / 9; transform: translate(-50%, -48%); border-radius: 18px; box-shadow: 0 50px 120px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.08); animation: eitp-zoom .38s var(--ease) both; }
@keyframes eitp-zoom { from { opacity: .4; transform: translate(-50%, -45%) scale(.92); } to { opacity: 1; transform: translate(-50%, -48%) scale(1); } }
@media (max-width: 767px) and (orientation: portrait) { .eitp.is-cinema { width: 100vw; border-radius: 0; } }
@media (orientation: landscape) and (max-height: 520px) { .eitp.is-cinema { width: min(100vw, calc((100dvh - 64px) * 16 / 9)); transform: translate(-50%, -44%); } @keyframes eitp-zoom { from { opacity: .4; } to { opacity: 1; } } }

/* Plein écran : plus de coins arrondis ni de ratio imposé, la vidéo garde ses proportions */
.eitp.is-fs { position: fixed; inset: 0; width: 100% !important; height: 100% !important; max-width: none; aspect-ratio: auto; border-radius: 0 !important; transform: none !important; box-shadow: none; animation: none; }
.eitp:fullscreen { width: 100% !important; height: 100% !important; aspect-ratio: auto; border-radius: 0 !important; transform: none !important; box-shadow: none; animation: none; background: #000; }
.eitp:-webkit-full-screen { width: 100% !important; height: 100% !important; aspect-ratio: auto; border-radius: 0 !important; transform: none !important; box-shadow: none; animation: none; background: #000; }
.eitp.is-fs .eitp-video { object-fit: contain; }
.eitp.is-fs .eitp-captions { bottom: 6rem; }
.eitp.is-fs.is-idle .eitp-captions { bottom: 2.4rem; }
.eitp.is-fs .eitp-captions span { font-size: clamp(1rem, 1.6vw, 1.6rem); }
.eitp.is-fs .eitp-controls { padding: 2.6rem max(1.2rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1.2rem, env(safe-area-inset-left)); }
.eitp-video::-webkit-media-text-track-display { font-size: 1.1em; }

/* ------------------------------------------------------------- Bandeau « CV par email » */
.pub-mailban-wrap { position: relative; margin-top: clamp(-3.6rem, -2rem - 2vw, -2.2rem); }
.pub-mailban { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1.1rem 1.4rem; align-items: center; padding: 1.25rem 1.4rem 1.25rem 1.6rem; border-radius: var(--r-xl); background: var(--bg-elev); border: 1px solid var(--line); box-shadow: var(--shadow-2); overflow: hidden; }
.pub-mailban::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 7px; background: repeating-linear-gradient(-45deg, var(--signal) 0 9px, #000 9px 18px); }
.pub-mailban::after { content: ""; position: absolute; left: -60px; top: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--signal) 22%, transparent), transparent 70%); pointer-events: none; }
.pub-mailban > * { position: relative; z-index: 1; }
.pub-mailban-icon { position: relative; width: 3.6rem; height: 3.6rem; border-radius: 18px; display: grid; place-items: center; background: color-mix(in srgb, var(--signal) 16%, var(--bg-elev)); color: var(--signal); font-size: 1.8rem; border: 1px solid color-mix(in srgb, var(--signal) 35%, transparent); }
.pub-mailban-icon > span { position: absolute; right: -6px; bottom: -6px; width: 1.55rem; height: 1.55rem; border-radius: 50%; display: grid; place-items: center; background: var(--danger); color: #fff; font-size: .8rem; box-shadow: 0 0 0 3px var(--bg-elev); }
.pub-mailban-title { font-weight: 820; font-stretch: 110%; font-size: clamp(1.02rem, .95rem + .35vw, 1.22rem); line-height: 1.22; letter-spacing: -0.01em; }
.pub-mailban-text { margin: .3rem 0 0; color: var(--text-2); font-size: .93rem; line-height: 1.6; }
.pub-mailban-text b { color: var(--text); font-weight: 750; }
.pub-mail { display: inline-block; padding: 0 .45rem; border-radius: 6px; background: var(--bg-sunken); border: 1px solid var(--line); color: var(--text); font-weight: 650; font-size: .9em; text-decoration: none; position: relative; white-space: nowrap; }
.pub-mail::after { content: ""; position: absolute; left: .3rem; right: .3rem; top: 52%; height: 2px; border-radius: 2px; background: var(--danger); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease) .4s; }
.pub-mailban.is-revealed .pub-mail::after, .pub-mailban:not([data-reveal]) .pub-mail::after { transform: scaleX(1); }
.pub-mailban-actions { display: flex; flex-direction: column; gap: .5rem; }
.pub-mailban-actions .btn { justify-content: center; }
@media (max-width: 1023px) { .pub-mailban { grid-template-columns: auto minmax(0, 1fr); } .pub-mailban-actions { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; } .pub-mailban-actions .btn { flex: 1 1 200px; } }
@media (max-width: 559px) { .pub-mailban { grid-template-columns: minmax(0, 1fr); padding: 1.15rem 1.1rem 1.15rem 1.35rem; } .pub-mailban-icon { width: 3rem; height: 3rem; font-size: 1.5rem; border-radius: 14px; } }
.pub-mailban.is-inline { box-shadow: none; }

/* ------------------------------------------------------------- Annonces */
.pub-annonces { display: grid; gap: 1rem; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
.pub-cols-1 { --cols: 1; } .pub-cols-2 { --cols: 2; } .pub-cols-3 { --cols: 3; }
@media (max-width: 980px) { .pub-annonces { grid-template-columns: minmax(0, 1fr); } }
.pub-ann { display: flex; gap: 1rem; padding: 1rem; border-radius: var(--r-lg); background: var(--bg-elev); border: 1px solid var(--line); transition: transform .2s var(--ease), box-shadow .2s, border-color .2s; }
.pub-ann:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); border-color: var(--line-strong); }
.pub-ann img { width: 96px; height: 96px; border-radius: var(--r); object-fit: cover; flex-shrink: 0; }
.pub-ann-body { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.pub-ann-body h3 { margin: 0; font-size: 1.05rem; }
.pub-ann-body p { margin: 0; color: var(--text-2); font-size: .88rem; }

/* ------------------------------------------------------------- Nos chiffres */
.pub-stats { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 2fr); gap: clamp(1.6rem, 1rem + 3vw, 3.5rem); align-items: center; padding: clamp(1.8rem, 1rem + 3.5vw, 3.6rem); border-radius: calc(var(--r-xl) + 4px); background: #000; color: #fff; border: 1px solid rgba(255,255,255,.08); }
[data-theme="dark"] .pub-stats { background: var(--bg-elev); border-color: var(--line); }
.pub-stats::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 48px 48px; -webkit-mask-image: radial-gradient(ellipse at 20% 0%, #000, transparent 70%); mask-image: radial-gradient(ellipse at 20% 0%, #000, transparent 70%); pointer-events: none; }
.pub-stats::after { content: ""; position: absolute; right: -10%; bottom: -60%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(92,172,48,.32), transparent 65%); pointer-events: none; }
.pub-stats > * { position: relative; z-index: 1; }
.pub-stats-head { display: flex; flex-direction: column; gap: .7rem; align-items: flex-start; }
.pub-stats-head h2 { margin: 0; font-size: clamp(1.7rem, 1.1rem + 2vw, 2.6rem); font-stretch: 114%; font-weight: 820; letter-spacing: -0.025em; line-height: 1.06; color: #fff; text-wrap: balance; }
.pub-stats-head p { margin: 0; color: rgba(255,255,255,.7); font-size: .98rem; max-width: 44ch; }
.pub-stats-edit { display: inline-flex; align-items: center; gap: .35rem; margin-top: .3rem; padding: .3rem .7rem; border-radius: var(--r-pill); border: 1px dashed rgba(255,255,255,.3); color: rgba(255,255,255,.8); font-size: .78rem; font-weight: 650; }
.pub-stats-edit:hover { color: #fff; border-color: var(--brand); text-decoration: none; }
.pub-stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: rgba(255,255,255,.1); border-radius: var(--r-lg); overflow: hidden; border: 1px solid rgba(255,255,255,.1); }
[data-theme="dark"] .pub-stats-grid { background: var(--line); border-color: var(--line); }
.pub-stats-grid { grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
.pub-stat { position: relative; grid-column: span var(--span, 1); container-type: inline-size; display: flex; flex-direction: column; gap: .35rem; padding: clamp(1.1rem, .8rem + 1.2vw, 1.7rem); background: #000; transition: background .25s; opacity: 0; transform: translateY(14px); }
[data-theme="dark"] .pub-stat { background: var(--bg-elev); }
.pub-stats.is-revealed .pub-stat { animation: pub-stat-in .7s var(--ease) forwards; animation-delay: var(--d, 0ms); }
@keyframes pub-stat-in { to { opacity: 1; transform: none; } }
.pub-stat::before { content: ""; position: absolute; left: 0; top: 0; height: 2px; width: 100%; background: var(--brand); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease); }
.pub-stat:hover { background: #0B0E0A; }
[data-theme="dark"] .pub-stat:hover { background: var(--bg-hover); }
.pub-stat:hover::before { transform: scaleX(1); }
.pub-stat-ic { width: 2.4rem; height: 2.4rem; border-radius: 12px; display: grid; place-items: center; background: rgba(92,172,48,.16); color: #8BD35F; font-size: 1.2rem; margin-bottom: .4rem; transition: transform .3s var(--ease); }
.pub-stat:hover .pub-stat-ic { transform: translateY(-2px) rotate(-6deg); }
.pub-stat-num { display: flex; align-items: baseline; gap: .08em; font-size: clamp(1.7rem, 19cqi, 3.2rem); font-weight: 850; font-stretch: 122%; letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums; color: #fff; white-space: nowrap; }
.pub-stat-fix { color: var(--brand); font-size: .62em; font-weight: 800; }
.pub-stat-label { color: rgba(255,255,255,.72); font-size: .9rem; font-weight: 600; line-height: 1.3; }
[data-theme="dark"] .pub-stat-label { color: var(--text-2); }
@media (max-width: 1023px) { .pub-stats { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 680px) { .pub-stats-grid { grid-template-columns: repeat(min(2, var(--cols, 2)), minmax(0, 1fr)); } .pub-stat { grid-column: auto; } .pub-stat:last-child:nth-child(odd) { grid-column: 1 / -1; } }

/* ------------------------------------------------------------- Deux façons de postuler */
.pub-paths { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
@media (max-width: 860px) { .pub-paths { grid-template-columns: minmax(0, 1fr); } }
.pub-path { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 1rem; padding: clamp(1.4rem, 1rem + 1.6vw, 2.4rem); border-radius: var(--r-xl); background: var(--bg-elev); border: 1px solid var(--line); transition: transform .25s var(--ease), box-shadow .25s, border-color .25s; }
.pub-path:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); border-color: var(--line-strong); }
.pub-path > .btn { align-self: flex-start; margin-top: auto; }
.pub-path h3 { margin: 0; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); font-stretch: 112%; font-weight: 800; letter-spacing: -0.02em; }
.pub-path p { margin: 0; color: var(--text-2); }
.pub-path-top { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.pub-path-ic { width: 3rem; height: 3rem; border-radius: 16px; display: grid; place-items: center; font-size: 1.45rem; background: var(--brand-soft); color: var(--brand-ink); }
.pub-path.is-featured { background: #000; color: #fff; border-color: #000; }
[data-theme="dark"] .pub-path.is-featured { background: linear-gradient(160deg, #0F1A0A, var(--bg-elev) 55%); border-color: var(--brand-line); }
.pub-path.is-featured::after { content: ""; position: absolute; right: -80px; top: -80px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(92,172,48,.35), transparent 65%); pointer-events: none; }
.pub-path.is-featured > * { position: relative; z-index: 1; }
.pub-path.is-featured p, .pub-path.is-featured .pub-checks li { color: rgba(255,255,255,.75); }
.pub-path.is-featured .pub-path-ic { background: var(--brand); color: #000; }
.pub-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.pub-checks li { display: flex; gap: .65rem; align-items: flex-start; font-size: .96rem; color: var(--text); }
.pub-checks li .ph-bold, .pub-checks li .ph { flex-shrink: 0; width: 1.35rem; height: 1.35rem; border-radius: 50%; display: grid; place-items: center; font-size: .78rem; background: var(--brand-soft); color: var(--brand-ink); margin-top: .1rem; }
.pub-path.is-featured .pub-checks li .ph-bold { background: rgba(92,172,48,.22); color: #8BD35F; }
.pub-checks li.is-off { opacity: .6; }
.pub-checks li.is-off .ph { background: var(--bg-sunken); color: var(--text-3); }

/* ------------------------------------------------------------- Cartes d'offre */
.pub-jobs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.pub-jobs > div { display: flex; min-width: 0; }
@media (max-width: 1080px) { .pub-jobs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .pub-jobs { grid-template-columns: minmax(0, 1fr); } }
.pub-job { position: relative; display: flex; flex-direction: column; gap: .9rem; width: 100%; padding: 1.25rem; border-radius: var(--r-lg); background: var(--bg-elev); border: 1px solid var(--line); color: var(--text); text-decoration: none !important; transition: transform .22s var(--ease), box-shadow .22s, border-color .22s; overflow: hidden; }
.pub-job::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 3px; background: var(--brand); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.pub-job:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); border-color: var(--line-strong); }
.pub-job:hover::before, .pub-job.is-featured::before { transform: scaleX(1); }
.pub-job.is-featured { border-color: var(--brand-line); background: linear-gradient(180deg, var(--brand-soft), var(--bg-elev) 45%); }
.pub-job-top { display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem; }
.pub-job-ic { width: 2.8rem; height: 2.8rem; border-radius: 14px; display: grid; place-items: center; background: var(--bg-sunken); color: var(--brand-ink); font-size: 1.35rem; border: 1px solid var(--line); transition: background .2s, color .2s; }
.pub-job:hover .pub-job-ic { background: var(--brand); color: #000; border-color: var(--brand); }
.pub-job-flags { display: flex; flex-wrap: wrap; gap: .3rem; justify-content: flex-end; }
.pub-flag { display: inline-flex; align-items: center; gap: .25rem; padding: .2rem .55rem; border-radius: var(--r-pill); font-size: .72rem; font-weight: 750; white-space: nowrap; }
.pub-flag.is-urgent { background: var(--orange-soft); color: var(--orange); }
.pub-flag.is-star { background: var(--brand); color: #000; }
.pub-flag.is-new { background: var(--info-soft); color: var(--info); }
.pub-job-body { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.pub-job-domain { font-size: .74rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; color: var(--text-3); }
.pub-job-title { margin: 0; font-size: 1.16rem; font-weight: 780; font-stretch: 106%; line-height: 1.25; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.pub-job-sum { margin: 0; color: var(--text-2); font-size: .88rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pub-job-meta { display: flex; flex-wrap: wrap; gap: .35rem; }
.pub-job-meta span { display: inline-flex; align-items: center; gap: .3rem; padding: .25rem .6rem; border-radius: var(--r-pill); background: var(--bg-sunken); color: var(--text-2); font-size: .78rem; font-weight: 620; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.pub-job-meta .ph { color: var(--text-3); }
.pub-job-foot { display: flex; align-items: center; gap: .6rem; margin-top: auto; padding-top: .85rem; border-top: 1px dashed var(--line); }
.pub-job-ref { font-size: .74rem; color: var(--text-3); font-weight: 650; font-variant-numeric: tabular-nums; }
.pub-job-deadline { display: inline-flex; align-items: center; gap: .3rem; font-size: .8rem; color: var(--text-2); font-weight: 650; margin-left: auto; white-space: nowrap; }
.pub-job-deadline.is-soon { color: var(--orange); }
.pub-job-go { width: 2.1rem; height: 2.1rem; border-radius: 50%; display: grid; place-items: center; background: var(--bg-inverse); color: var(--text-inverse); flex-shrink: 0; transition: transform .25s var(--ease), background .2s; }
.pub-job-deadline + .pub-job-go { margin-left: 0; }
.pub-job-ref + .pub-job-go { margin-left: auto; }
.pub-job:hover .pub-job-go { transform: rotate(45deg); background: var(--brand); color: #000; }

/* État vide */
.pub-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .7rem; padding: clamp(2rem, 1rem + 4vw, 3.6rem) 1.2rem; border-radius: var(--r-xl); border: 1.5px dashed var(--line-strong); background: var(--bg-elev); }
.pub-empty-ic { width: 4.2rem; height: 4.2rem; border-radius: 22px; display: grid; place-items: center; font-size: 2rem; background: var(--brand-soft); color: var(--brand-ink); margin-bottom: .3rem; animation: pub-bob 3.4s ease-in-out infinite; }
@keyframes pub-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.pub-empty h3 { margin: 0; font-size: 1.25rem; font-stretch: 108%; }
.pub-empty p { margin: 0; color: var(--text-2); max-width: 52ch; }
.pub-empty-cta { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-top: .4rem; }

/* ------------------------------------------------------------- Domaines, étapes, galerie, actualités, FAQ */
.pub-domains .domain { transition: transform .25s var(--ease), box-shadow .25s; }
.pub-domains .domain:hover { transform: translateY(-3px); box-shadow: var(--shadow-pop); }
.pub-domain-go { position: absolute !important; right: 1rem; top: 1rem; z-index: 1; width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center; background: var(--brand); color: #000; opacity: 0; transform: scale(.7); transition: opacity .25s, transform .25s var(--ease); }
.pub-domains .domain:hover .pub-domain-go { opacity: 1; transform: none; }
.pub-domains .domain-name { overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; }
@media (max-width: 520px) {
  .pub-domains { grid-auto-rows: 132px; }
  .pub-domains .domain { padding: .8rem; }
  .pub-domains .domain-name { font-size: .9rem; line-height: 1.15; }
  .pub-domains .domain.is-big .domain-name { font-size: 1.2rem; }
  .pub-domains .domain-count { font-size: .7rem; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
  .pub-domains .ph-badge { top: .7rem; left: .7rem; width: 2rem; height: 2rem; font-size: 1rem; }
}

.pub-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; counter-reset: none; position: relative; }
.pub-step { position: relative; display: flex; flex-direction: column; gap: .5rem; padding: 1.4rem 1.25rem; border-radius: var(--r-lg); background: var(--bg-elev); border: 1px solid var(--line); transition: transform .22s var(--ease), border-color .22s, box-shadow .22s; }
.pub-step:hover { transform: translateY(-3px); border-color: var(--brand-line); box-shadow: var(--shadow-2); }
.pub-step-n { position: absolute; right: 1rem; top: .6rem; font-size: 3.4rem; font-weight: 880; font-stretch: 125%; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px var(--line-strong); font-variant-numeric: tabular-nums; transition: -webkit-text-stroke-color .2s; }
.pub-step:hover .pub-step-n { -webkit-text-stroke-color: var(--brand); }
.pub-step-ic { width: 2.8rem; height: 2.8rem; border-radius: 14px; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand-ink); font-size: 1.35rem; margin-bottom: .4rem; }
.pub-step h3 { margin: 0; font-size: 1.05rem; padding-right: 2.6rem; }
.pub-step p { margin: 0; color: var(--text-2); font-size: .9rem; }
@media (max-width: 980px) { .pub-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px) { .pub-steps { grid-template-columns: minmax(0, 1fr); } }

.pub-albums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 860px) { .pub-albums { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pub-albums > :first-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; } }
@media (max-width: 520px) { .pub-albums { grid-template-columns: minmax(0, 1fr); } .pub-albums > :first-child { aspect-ratio: 4 / 3; } }
.pub-album { transition: transform .25s var(--ease), box-shadow .25s; }
.pub-album:hover { transform: translateY(-3px); box-shadow: var(--shadow-pop); }
.pub-news { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 980px) { .pub-news { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .pub-news { grid-template-columns: minmax(0, 1fr); } }
.pub-faq { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: start; }
.pub-faq .pub-head { position: sticky; top: calc(var(--pub-top-h) + 1rem); margin-bottom: 0; }
@media (max-width: 900px) { .pub-faq { grid-template-columns: minmax(0, 1fr); } .pub-faq .pub-head { position: static; } }
.pub-faq-list .faq-item:first-child { border-top: 1px solid var(--line); }

/* ------------------------------------------------------------- Pied de page */
.pub-foot { margin-top: clamp(4.5rem, 2.5rem + 4vw, 6.5rem); border-top: 1px solid var(--line); background: var(--bg-sunken); padding-bottom: 1.4rem; }
.pub-foot-cta { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.4fr) auto; gap: 1.5rem 2.5rem; align-items: center; margin-top: calc(-1 * clamp(2.5rem, 1.5rem + 2vw, 3.6rem)); margin-bottom: clamp(2.5rem, 1.5rem + 3vw, 4rem); padding: clamp(1.6rem, 1rem + 3vw, 3.2rem); border-radius: calc(var(--r-xl) + 4px); background: #000; color: #fff; border: 1px solid rgba(255,255,255,.08); box-shadow: var(--shadow-pop); }
.pub-foot-cta::before { content: ""; position: absolute; inset: 0; background: var(--pub-cta-photo, url("../../img/opt/informatique.jpg")) center / cover no-repeat; /* v4 : plus la photo d'équipe rejetée ; --pub-cta-photo réglable (visuels) */ opacity: .22; -webkit-mask-image: linear-gradient(90deg, transparent 20%, #000 90%); mask-image: linear-gradient(90deg, transparent 20%, #000 90%); }
.pub-foot-cta::after { content: ""; position: absolute; left: -10%; top: -80%; width: 55%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(92,172,48,.38), transparent 65%); pointer-events: none; }
.pub-foot-cta > * { position: relative; z-index: 1; }
.pub-foot-cta-text { display: flex; flex-direction: column; gap: .6rem; }
.pub-foot-cta .pub-kicker { color: #8BD35F; }
.pub-foot-cta h2 { margin: 0; color: #fff; font-size: clamp(1.7rem, 1.1rem + 2.2vw, 2.8rem); font-stretch: 116%; font-weight: 840; letter-spacing: -0.025em; line-height: 1.04; text-wrap: balance; }
.pub-foot-cta p { margin: 0; color: rgba(255,255,255,.72); max-width: 56ch; }
.pub-foot-cta-btns { display: flex; flex-direction: column; gap: .6rem; }
@media (max-width: 860px) { .pub-foot-cta { grid-template-columns: minmax(0, 1fr); } .pub-foot-cta-btns { flex-direction: row; flex-wrap: wrap; } .pub-foot-cta-btns .btn { flex: 1 1 220px; } }
.pub-foot-grid { display: grid; grid-template-columns: minmax(0, 1.9fr) repeat(4, minmax(0, 1fr)); gap: 2rem 1.6rem; padding-top: clamp(2.5rem, 1.5rem + 2vw, 3.5rem); }
.pub-foot-cta + .pub-foot-grid, .container:has(.pub-foot-cta) + .container .pub-foot-grid { padding-top: 0; }
@media (max-width: 1080px) { .pub-foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pub-foot-brand { grid-column: 1 / -1; } }
@media (max-width: 339px) { .pub-foot-grid { grid-template-columns: minmax(0, 1fr); } }
.pub-foot-brand { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; }
.pub-brand.is-foot .pub-brand-mark img { width: 76px; height: 76px; }
.pub-brand.is-foot .pub-brand-text b { font-size: 1.68rem; }
.pub-brand.is-foot .pub-brand-text small { font-size: .74rem; }
@media (max-width: 380px) { .pub-brand.is-foot .pub-brand-mark img { width: 62px; height: 62px; } .pub-brand.is-foot .pub-brand-text b { font-size: 1.45rem; } .pub-brand.is-foot .pub-brand-text small { font-size: .62rem; } }
.pub-foot-brand p { margin: 0; color: var(--text-2); font-size: .92rem; max-width: 42ch; }
.pub-foot-brand .pub-foot-only { display: flex; gap: .5rem; align-items: flex-start; color: var(--text); font-weight: 650; font-size: .88rem; padding: .7rem .85rem; border-radius: var(--r); background: var(--brand-soft); border: 1px solid var(--brand-line); }
.pub-foot-only .ph-fill { color: var(--brand-ink); font-size: 1.15rem; margin-top: .05rem; flex-shrink: 0; }
.pub-socials { display: flex; gap: .45rem; flex-wrap: wrap; }
.pub-socials a { width: 2.5rem; height: 2.5rem; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line-strong); color: var(--text-2); font-size: 1.15rem; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.pub-socials a:hover { background: var(--brand); color: #000; border-color: var(--brand); transform: translateY(-2px); text-decoration: none; }
.pub-foot-col { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.pub-foot-col h3 { margin: 0 0 .7rem; font-size: .78rem; font-weight: 780; letter-spacing: .12em; text-transform: uppercase; color: var(--text-3); }
.pub-foot-col a, .pub-foot-col .pub-foot-line { display: inline-flex; align-items: center; gap: .45rem; padding: .28rem 0; color: var(--text-2); font-size: .93rem; font-weight: 550; text-decoration: none !important; transition: color .15s, transform .15s; overflow-wrap: anywhere; }
.pub-foot-col a:hover { color: var(--text); transform: translateX(2px); }
.pub-foot-line .ph { color: var(--brand-ink); flex-shrink: 0; }
.pub-foot-news { margin-top: clamp(2rem, 1.5rem + 2vw, 3rem); }
.pub-foot-bottom { display: flex; justify-content: space-between; align-items: center; gap: .8rem 1.2rem; flex-wrap: wrap; margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--line); color: var(--text-3); font-size: .84rem; }
.pub-foot-tools { display: inline-flex; align-items: center; gap: .35rem; }

/* ------------------------------------------------------------- Connexion (layouts/auth) */
.pub-auth-brand { display: flex; flex-direction: column; align-items: flex-start; gap: .9rem; }
.pub-brand.is-auth { color: #fff; }
.pub-brand.is-auth .pub-brand-mark img { width: 68px; height: 68px; box-shadow: 0 14px 34px -14px rgba(0,0,0,.7); }
.pub-brand.is-auth .pub-brand-text b { font-size: 1.85rem; color: #fff; }
.pub-brand.is-auth .pub-brand-text small { color: rgba(255,255,255,.75); font-size: .74rem; }
.pub-auth-space { display: inline-flex; align-items: center; gap: .45rem; padding: .3rem .8rem; border-radius: var(--r-pill); background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(6px); color: #fff; font-size: .8rem; font-weight: 700; }
.pub-auth-space .ph-fill { color: var(--brand); font-size: .55rem; }
@media (max-width: 900px) { .pub-auth-brand { flex-direction: row; flex-wrap: wrap; align-items: center; } .pub-brand.is-auth .pub-brand-mark img { width: 54px; height: 54px; } .pub-brand.is-auth .pub-brand-text b { font-size: 1.45rem; } }

/* ------------------------------------------------------------- En-tête de page (pages intérieures) */
.pub-page-hero { position: relative; overflow: hidden; padding-block: clamp(2.2rem, 1rem + 4vw, 4.6rem) clamp(1.8rem, 1rem + 2.5vw, 3rem); border-bottom: 1px solid var(--line); }
.pub-page-hero .pub-hero-grid { opacity: calc(.45 * var(--pub-tex-k, 1)); }
.pub-page-hero > .container { position: relative; }
.pub-page-title { margin: 0; font-size: clamp(2.2rem, 1.2rem + 3.6vw, 4.1rem); font-stretch: 118%; font-weight: 850; letter-spacing: -0.03em; line-height: 1; text-wrap: balance; animation: pub-rise .6s var(--ease) backwards; }
.pub-page-lead { margin: 0; color: var(--text-2); font-size: clamp(1.02rem, .96rem + .35vw, 1.2rem); max-width: 62ch; animation: pub-rise .6s var(--ease) backwards; animation-delay: .1s; }
.pub-crumb { display: inline-flex; align-items: center; gap: .35rem; color: var(--text-2); font-size: .86rem; font-weight: 600; }
.pub-crumb:hover { color: var(--text); text-decoration: none; }

/* ------------------------------------------------------------- Offres : liste */
.pub-search { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto; gap: .5rem; padding: .5rem; margin-top: 1.4rem; border-radius: calc(var(--r-lg) + 2px); background: var(--bg-elev); border: 1px solid var(--line); box-shadow: var(--shadow-2); animation: pub-rise .6s var(--ease) backwards; animation-delay: .18s; }
.pub-search .input, .pub-search .select { border-color: transparent; background-color: var(--bg-sunken); min-height: 3rem; }
.pub-search .input:focus, .pub-search .select:focus { border-color: var(--brand); background-color: var(--bg-elev); }
.pub-search .input-icon > .ph { font-size: 1.15rem; }
.pub-search .btn { min-height: 3rem; }
@media (max-width: 1023px) { .pub-search { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pub-search > :first-child { grid-column: 1 / -1; } .pub-search > .btn { display: none; } }
@media (max-width: 620px) { .pub-search { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .pub-search > :last-of-type:not(.btn) { grid-column: 1 / -1; } }
.pub-chips { display: flex; gap: .4rem; overflow-x: auto; padding: .2rem 0 .4rem; margin-top: 1rem; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 92%, transparent); mask-image: linear-gradient(90deg, #000 92%, transparent); }
.pub-chips::-webkit-scrollbar { display: none; }
.pub-chip { display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .85rem; border-radius: var(--r-pill); border: 1px solid var(--line); background: var(--bg-elev); color: var(--text-2); font-size: .84rem; font-weight: 650; white-space: nowrap; text-decoration: none !important; transition: border-color .15s, color .15s, background .15s; }
.pub-chip:hover { border-color: var(--line-strong); color: var(--text); }
.pub-chip.is-active { background: var(--bg-inverse); border-color: var(--bg-inverse); color: var(--text-inverse); }
.pub-chip .n { font-size: .72rem; font-weight: 800; padding: 0 .4rem; border-radius: 99px; background: var(--bg-sunken); color: var(--text-2); }
.pub-chip.is-active .n { background: var(--brand); color: #000; }
.pub-list-bar { display: flex; align-items: center; justify-content: space-between; gap: .8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.pub-count { font-size: .95rem; color: var(--text-2); }
.pub-count b { color: var(--text); font-size: 1.05rem; }
.pub-active { display: flex; gap: .35rem; flex-wrap: wrap; align-items: center; }
.pub-results { position: relative; transition: opacity .2s; }
.pub-results.is-busy { opacity: .45; pointer-events: none; }
.pub-pages { margin-top: 1.8rem; display: flex; justify-content: center; }
.pub-pages .pagination { justify-content: center; }
.pub-hint { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem 1.2rem; align-items: center; margin-top: 2rem; padding: 1.2rem 1.4rem; border-radius: var(--r-lg); background: var(--bg-elev); border: 1px solid var(--line); }
.pub-hint-ic { width: 3rem; height: 3rem; border-radius: 15px; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand-ink); font-size: 1.45rem; }
.pub-hint b { display: block; font-size: 1.02rem; }
.pub-hint span { color: var(--text-2); font-size: .9rem; }
.pub-hint-cta { display: flex; gap: .5rem; flex-wrap: wrap; }
@media (max-width: 860px) { .pub-hint { grid-template-columns: auto minmax(0, 1fr); } .pub-hint-cta { grid-column: 1 / -1; } }

/* Offres : détail */
.pub-offer-hero .pub-offer-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .3rem; }
.pub-offer-hero .pub-job-meta span { background: var(--bg-elev); border: 1px solid var(--line); font-size: .84rem; padding: .35rem .75rem; }
.pub-offer { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(1.5rem, 1rem + 2.5vw, 3.5rem); align-items: start; }
@media (max-width: 1023px) { .pub-offer { grid-template-columns: minmax(0, 1fr); } }
.pub-offer-main { display: flex; flex-direction: column; gap: 2rem; min-width: 0; }
.pub-offer-block { display: flex; flex-direction: column; gap: .7rem; }
.pub-offer-block h2 { margin: 0; display: flex; align-items: center; gap: .6rem; font-size: 1.3rem; font-stretch: 108%; font-weight: 780; }
.pub-offer-block h2 .ph { width: 2.2rem; height: 2.2rem; border-radius: 11px; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand-ink); font-size: 1.1rem; }
.pub-offer-side { position: sticky; top: calc(var(--pub-top-h) + 1rem); display: flex; flex-direction: column; gap: 1rem; }
@media (max-width: 1023px) { .pub-offer-side { position: static; order: -1; } }
.pub-apply { padding: 1.3rem; border-radius: var(--r-xl); background: var(--bg-elev); border: 1px solid var(--line); box-shadow: var(--shadow-2); display: flex; flex-direction: column; gap: 1rem; }
.pub-apply-date { display: flex; align-items: center; gap: .8rem; padding: .85rem; border-radius: var(--r); background: var(--bg-sunken); }
.pub-apply-date .ph { width: 2.6rem; height: 2.6rem; border-radius: 12px; display: grid; place-items: center; background: var(--bg-elev); color: var(--brand-ink); font-size: 1.25rem; border: 1px solid var(--line); }
.pub-apply-date small { display: block; color: var(--text-3); font-size: .76rem; font-weight: 650; }
.pub-apply-date b { font-size: 1rem; }
.pub-share { display: flex; gap: .4rem; flex-wrap: wrap; }
.pub-docs { display: flex; flex-wrap: wrap; gap: .4rem; }
.pub-mobile-apply { display: none; }
@media (max-width: 1023px) {
  .pub-mobile-apply { display: flex; position: sticky; bottom: 0; z-index: 30; gap: .5rem; padding: .7rem var(--pub-gutter) calc(.7rem + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(12px); border-top: 1px solid var(--line); }
  .pub-mobile-apply .btn { flex: 1; }
}

/* ------------------------------------------------------------- Guide « Comment postuler » */
.pub-guide-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(1.8rem, 1rem + 3vw, 4rem); align-items: center; }
@media (max-width: 1023px) { .pub-guide-hero { grid-template-columns: minmax(0, 1fr); } }
.pub-guide-hero .pub-cta { animation-delay: .2s; margin-top: 1.4rem; }
.pub-toc { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: 1.2rem; }
.pub-toc a { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .75rem; border-radius: var(--r-pill); background: var(--bg-elev); border: 1px solid var(--line); color: var(--text-2); font-size: .82rem; font-weight: 650; text-decoration: none !important; }
.pub-toc a:hover { color: var(--text); border-color: var(--brand-line); }
.pub-ways { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
@media (max-width: 900px) { .pub-ways { grid-template-columns: minmax(0, 1fr); } }
.pub-way { display: flex; flex-direction: column; gap: 1.1rem; padding: clamp(1.3rem, 1rem + 1.5vw, 2.2rem); border-radius: var(--r-xl); background: var(--bg-elev); border: 1px solid var(--line); }
.pub-way.is-featured { border-color: var(--brand-line); box-shadow: 0 0 0 1px var(--brand-line) inset; }
.pub-way-head { display: flex; align-items: center; gap: .9rem; }
.pub-way-head h3 { margin: 0; font-size: 1.45rem; font-stretch: 110%; font-weight: 800; }
.pub-way-head p { margin: .1rem 0 0; color: var(--text-2); font-size: .9rem; }
.pub-way > .btn { align-self: flex-start; margin-top: auto; }
.pub-tl { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; counter-reset: tl; }
.pub-tl li { position: relative; display: grid; grid-template-columns: 2.3rem minmax(0, 1fr); gap: .9rem; padding-bottom: 1.15rem; counter-increment: tl; }
.pub-tl li::before { content: counter(tl); width: 2.3rem; height: 2.3rem; border-radius: 50%; display: grid; place-items: center; background: var(--bg-sunken); border: 1px solid var(--line-strong); font-weight: 800; font-size: .9rem; color: var(--text); font-variant-numeric: tabular-nums; z-index: 1; }
.pub-tl li::after { content: ""; position: absolute; left: calc(1.15rem - 1px); top: 2.3rem; bottom: 0; width: 2px; background: var(--line); }
.pub-tl li:last-child { padding-bottom: 0; }
.pub-tl li:last-child::after { display: none; }
.pub-way.is-featured .pub-tl li::before { background: var(--brand); border-color: var(--brand); color: #000; }
.pub-tl b { display: block; font-size: .98rem; margin-top: .25rem; }
.pub-tl span { color: var(--text-2); font-size: .9rem; }
.pub-donts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 900px) { .pub-donts { grid-template-columns: minmax(0, 1fr); } }
.pub-dont { display: flex; gap: .9rem; align-items: flex-start; padding: 1.2rem; border-radius: var(--r-lg); background: var(--bg-elev); border: 1px solid var(--line); }
.pub-dont .pub-dont-ic { width: 2.6rem; height: 2.6rem; border-radius: 13px; display: grid; place-items: center; flex-shrink: 0; font-size: 1.25rem; background: var(--danger-soft); color: var(--danger); }
.pub-dont.is-do .pub-dont-ic { background: var(--brand-soft); color: var(--brand-ink); }
.pub-dont b { display: block; margin-bottom: .2rem; }
.pub-dont span { color: var(--text-2); font-size: .9rem; }
.pub-docs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .8rem; }
.pub-doc { display: flex; gap: .75rem; align-items: center; padding: .9rem 1rem; border-radius: var(--r); background: var(--bg-elev); border: 1px solid var(--line); }
.pub-doc .ph { width: 2.3rem; height: 2.3rem; border-radius: 11px; display: grid; place-items: center; background: var(--bg-sunken); color: var(--brand-ink); font-size: 1.15rem; flex-shrink: 0; }
.pub-doc b { display: block; font-size: .92rem; }
.pub-doc small { color: var(--text-3); font-size: .78rem; }
.pub-req { font-size: .66rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; padding: .1rem .4rem; border-radius: 99px; background: var(--brand); color: #000; margin-left: .3rem; vertical-align: .1em; }

/* ------------------------------------------------------------- Postuler / Merci (habillage) */
.pub-apply-hero .pub-steps-mini { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .6rem; }
.pub-apply-hero .pub-steps-mini span { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .7rem; border-radius: var(--r-pill); background: var(--bg-elev); border: 1px solid var(--line); font-size: .8rem; font-weight: 650; color: var(--text-2); }
.pub-apply-hero .pub-steps-mini .ph { color: var(--brand-ink); }
.pub-merci { position: relative; overflow: hidden; }
.pub-merci > .container { position: relative; }
.pub-merci-card { position: relative; max-width: 880px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.3rem; }
.pub-burst { position: relative; width: 6.2rem; height: 6.2rem; border-radius: 50%; display: grid; place-items: center; background: var(--brand); color: #000; font-size: 2.8rem; box-shadow: 0 20px 50px -16px color-mix(in srgb, var(--brand) 80%, transparent); animation: pub-pop .7s cubic-bezier(.2, 1.6, .4, 1) both; }
.pub-burst::before, .pub-burst::after { content: ""; position: absolute; inset: -10px; border-radius: 50%; border: 2px solid var(--brand); opacity: 0; animation: pub-ring 2.4s ease-out .5s infinite; }
.pub-burst::after { animation-delay: 1.3s; }
@keyframes pub-pop { from { transform: scale(.3); opacity: 0; } }
.pub-ref { display: inline-flex; align-items: center; gap: .6rem; padding: .7rem 1.2rem; border-radius: var(--r); border: 1.5px dashed var(--line-strong); background: var(--bg-elev); color: var(--text); font: inherit; font-size: clamp(1.2rem, 1rem + 1vw, 1.6rem); font-weight: 820; font-stretch: 110%; letter-spacing: .04em; cursor: pointer; font-variant-numeric: tabular-nums; transition: border-color .15s, background .15s; }
.pub-ref:hover { border-color: var(--brand); background: var(--brand-soft); }
.pub-track { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; max-width: 720px; counter-reset: trk; }
.pub-track > div { position: relative; display: flex; flex-direction: column; align-items: center; gap: .5rem; font-size: .82rem; font-weight: 650; color: var(--text-3); counter-increment: trk; }
.pub-track > div::before { content: counter(trk); width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center; background: var(--bg-elev); border: 1.5px solid var(--line-strong); font-weight: 800; color: var(--text-2); z-index: 1; }
.pub-track > div::after { content: ""; position: absolute; top: 1.1rem; left: 50%; width: 100%; height: 2px; background: var(--line); }
.pub-track > div:last-child::after { display: none; }
.pub-track > div.is-done { color: var(--text); }
.pub-track > div.is-done::before { content: "✓"; background: var(--brand); border-color: var(--brand); color: #000; }
.pub-track > div.is-done::after { background: linear-gradient(90deg, var(--brand), var(--line)); }
.pub-next { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1.4rem; align-items: center; width: 100%; padding: clamp(1.2rem, 1rem + 1.5vw, 2rem); border-radius: var(--r-xl); background: var(--bg-elev); border: 1px solid var(--line); text-align: left; box-shadow: var(--shadow-2); }
@media (max-width: 760px) { .pub-next { grid-template-columns: minmax(0, 1fr); } }
.pub-next h2 { margin: 0 0 .4rem; font-size: 1.3rem; font-stretch: 108%; }
.pub-next p { margin: 0; color: var(--text-2); font-size: .92rem; }
.pub-next-btns { display: flex; flex-direction: column; gap: .5rem; }

/* ------------------------------------------------------------- Confidentialité */
.pub-legal { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: start; }
.pub-legal nav { position: sticky; top: calc(var(--pub-top-h) + 1rem); display: flex; flex-direction: column; gap: .15rem; }
.pub-legal nav a { padding: .45rem .7rem; border-radius: var(--r-sm); color: var(--text-2); font-size: .88rem; font-weight: 620; border-left: 2px solid var(--line); text-decoration: none !important; }
.pub-legal nav a:hover { color: var(--text); border-left-color: var(--brand); background: var(--bg-hover); }
.pub-legal-body { display: flex; flex-direction: column; gap: 1rem; }
.pub-legal-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; padding: 1.3rem; border-radius: var(--r-lg); background: var(--bg-elev); border: 1px solid var(--line); scroll-margin-top: calc(var(--pub-top-h) + 1rem); }
.pub-legal-card > .ph { width: 2.6rem; height: 2.6rem; border-radius: 13px; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand-ink); font-size: 1.25rem; }
.pub-legal-card h2 { margin: 0 0 .35rem; font-size: 1.12rem; font-stretch: 106%; }
.pub-legal-card p { margin: 0; color: var(--text-2); line-height: 1.65; }
@media (max-width: 860px) { .pub-legal { grid-template-columns: minmax(0, 1fr); } .pub-legal nav { display: none; } }

/* ------------------------------------------------------------- Popup d'annonce */
.pub-popup { overflow: hidden; }
.pub-popup-img { width: 100%; max-height: 240px; object-fit: cover; }

/* ------------------------------------------------------------- Paramètres : éditeur « Nos chiffres » */
.pub-chx-list { display: flex; flex-direction: column; gap: .55rem; }
.pub-chx-row { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .7rem .75rem; border-radius: var(--r); background: var(--bg-elev); border: 1px solid var(--line); transition: border-color .15s, opacity .15s, box-shadow .15s; }
.pub-chx-row:hover { border-color: var(--line-strong); }
.pub-chx-row.is-hidden { opacity: .55; background: var(--bg-sunken); }
.pub-chx-row.sortable-ghost { opacity: .35; border-style: dashed; }
.pub-chx-row.sortable-chosen { box-shadow: var(--shadow-2); }
.pub-chx-handle { cursor: grab; color: var(--text-3); font-size: 1.25rem; display: grid; place-items: center; padding: .2rem; touch-action: none; }
.pub-chx-handle:active { cursor: grabbing; }
.pub-chx-icon { position: relative; }
.pub-chx-iconbtn { width: 2.7rem; height: 2.7rem; border-radius: 12px; border: 1px solid var(--line); background: var(--brand-soft); color: var(--brand-ink); display: grid; place-items: center; font-size: 1.3rem; cursor: pointer; }
.pub-chx-iconbtn:hover { border-color: var(--brand); }
.pub-chx-picker { position: absolute; z-index: 70; top: calc(100% + 6px); left: 0; width: 290px; padding: .6rem; border-radius: var(--r); background: var(--bg-elev); border: 1px solid var(--line); box-shadow: var(--shadow-pop); display: flex; flex-direction: column; gap: .3rem; }
.pub-chx-icons { display: grid; grid-template-columns: repeat(6, 1fr); gap: .25rem; }
.pub-chx-icons button { aspect-ratio: 1; border: 1px solid transparent; border-radius: 8px; background: var(--bg-sunken); color: var(--text-2); font-size: 1.15rem; display: grid; place-items: center; cursor: pointer; }
.pub-chx-icons button:hover { color: var(--text); border-color: var(--line-strong); }
.pub-chx-icons button.is-on { background: var(--brand); color: #000; }
.pub-chx-fields { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.pub-chx-value { display: grid; grid-template-columns: 4.5rem minmax(5rem, 8rem) 5rem; gap: .35rem; }
.pub-chx-auto { display: inline-flex; align-items: center; gap: .35rem; background: var(--brand-soft); border-color: var(--brand-line); color: var(--brand-ink); }
.pub-chx-labels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; }
.pub-chx-lang { position: absolute; left: .55rem; top: 50%; transform: translateY(-50%); font-size: .64rem; font-weight: 800; color: var(--text-3); letter-spacing: .04em; pointer-events: none; }
.pub-chx-labels .input { padding-left: 2.1rem; }
.pub-chx-actions { display: flex; align-items: center; gap: .1rem; }
.pub-chx-actions .is-on { color: var(--brand-ink); }
.pub-chx-del:hover { color: var(--danger); }
.pub-chx-preview { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1px; border-radius: var(--r); overflow: hidden; background: rgba(255,255,255,.1); border: 1px solid var(--line); background-color: #000; padding: 1px; }
.pub-chx-preview > .small { padding: 1rem; color: rgba(255,255,255,.6); }
.pub-chx-pv { display: flex; flex-direction: column; gap: .2rem; padding: .9rem 1rem; background: #000; color: #fff; }
.pub-chx-pv .ph { color: #8BD35F; font-size: 1.15rem; }
.pub-chx-pv b { font-size: 1.6rem; font-weight: 850; font-stretch: 120%; line-height: 1.05; }
.pub-chx-pv span { font-size: .8rem; color: rgba(255,255,255,.7); }
@media (max-width: 760px) {
  .pub-chx-row { grid-template-columns: auto minmax(0, 1fr) auto; }
  .pub-chx-handle { display: none; }
  .pub-chx-fields { grid-column: 1 / -1; order: 3; }
  .pub-chx-value, .pub-chx-labels { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr); }
  .pub-chx-labels { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------- Mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  .pub-w { opacity: 1; transform: none; filter: none; animation: none; }
  .pub-w.is-under .pub-k::after, .pub-w.is-mark .pub-k::before { transform: scaleX(1); animation: none; }
  .pub-w.is-mark .pub-k { color: #000; animation: none; }
  .pub-orb, .pub-live::after, .pub-cta-play::after, .eitp-play, .pub-empty-ic, .pub-burst::before, .pub-burst::after { animation: none !important; }
  .pub-eyebrow, .pub-lead, .pub-cta, .pub-trust, .pub-hero-media, .pub-page-title, .pub-page-lead, .pub-search { animation: none; }
  .pub-stat { opacity: 1; transform: none; animation: none !important; }
  .pub-mail::after { transform: scaleX(1); transition: none; }
  .eitp.is-cinema { animation: none; }
}
.pub:has(.chat-fab) .pub-mobile-apply { padding-right: calc(var(--pub-gutter) + 4.4rem); }
.pub-brand.is-auth .pub-brand-text { text-shadow: 0 1px 10px rgba(0,0,0,.55); }
html.pub-lock .chat-fab, html.eitp-lock .chat-fab { opacity: 0; pointer-events: none; }
.pub-top-inner.container-wide { max-width: 1440px; }

/* =========================================================================
   v3 (agent 4) — barre du haut, ouverture / fermeture des candidatures, lecteur (boucle), retouches d'animation
   ========================================================================= */

/* ------------------------------------------------------------- Barre du haut (ordinateur ≥ 1024 px) */
.pub-tb { display: none; }
@media (min-width: 1024px) {
  .pub-tb { display: block; position: relative; z-index: 52; background: #060706; color: rgba(255,255,255,.7); font-size: .8rem; line-height: 1; border-bottom: 1px solid rgba(255,255,255,.07); }
  .pub-tb-dup { display: none !important; }
}
[data-theme="dark"] .pub-tb { background: #0B0D0A; border-bottom-color: var(--line); }
.pub-tb-inner { height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 1.4rem; }
.pub-tb-left, .pub-tb-right { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.pub-tb-left > * + * { padding-left: 1rem; border-left: 1px solid rgba(255,255,255,.12); }
.pub-tb-item { display: inline-flex; align-items: center; gap: .42rem; white-space: nowrap; font-weight: 550; letter-spacing: .01em; }
.pub-tb-item .ph { color: #8BD35F; font-size: .95rem; }
.pub-tb-status { display: inline-flex; align-items: center; gap: .5rem; padding: .32rem .75rem .32rem .6rem; border-radius: 999px; background: rgba(92,172,48,.13); border: 1px solid rgba(92,172,48,.3); color: #fff; font-weight: 700; letter-spacing: .015em; white-space: nowrap; text-decoration: none !important; transition: background .2s, border-color .2s; }
a.pub-tb-status:hover { background: rgba(92,172,48,.22); border-color: rgba(92,172,48,.55); }
.pub-tb-status.is-closed { background: rgba(244,123,32,.12); border-color: rgba(244,123,32,.34); }
.pub-tb-soft { font-weight: 550; color: rgba(255,255,255,.62); margin-left: .1rem; }
.pub-tb-dot { position: relative; width: .48rem; height: .48rem; border-radius: 50%; background: var(--brand); flex-shrink: 0; }
.pub-tb-status.is-open .pub-tb-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--brand); animation: pub-ping 2.2s cubic-bezier(0, 0, .2, 1) infinite; }
.pub-tb-status.is-closed .pub-tb-dot { background: var(--signal); }
.pub-tb-links { display: flex; align-items: center; gap: .15rem; }
.pub-tb-link { display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .65rem; border-radius: 999px; color: rgba(255,255,255,.76); font-weight: 620; white-space: nowrap; text-decoration: none !important; transition: color .15s, background .15s; }
.pub-tb-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.pub-tb-link .ph, .pub-tb-link .ph-bold { font-size: .95rem; opacity: .9; }
.pub-tb-link.is-cta { color: #A5EC74; }
.pub-tb-link.is-cta:hover { color: #000; background: var(--brand); }
.pub-tb-socials { display: flex; align-items: center; gap: .1rem; padding-left: .9rem; border-left: 1px solid rgba(255,255,255,.12); }
.pub-tb-socials a { width: 1.85rem; height: 1.85rem; border-radius: 50%; display: grid; place-items: center; color: rgba(255,255,255,.62); font-size: 1rem; transition: color .15s, background .15s, transform .15s; }
.pub-tb-socials a:hover { color: #000; background: var(--brand); transform: translateY(-1px); text-decoration: none; }
.pub-tb-tools { display: flex; align-items: center; gap: .3rem; padding-left: .9rem; border-left: 1px solid rgba(255,255,255,.12); }
.pub-tb-lang { display: inline-flex; padding: 2px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); margin-right: .2rem; }
.pub-tb-lang a { padding: .3rem .58rem; border-radius: 999px; font-size: .7rem; font-weight: 780; letter-spacing: .08em; color: rgba(255,255,255,.62); text-decoration: none !important; transition: color .15s, background .15s; }
.pub-tb-lang a:hover { color: #fff; }
.pub-tb-lang a.is-active { background: #fff; color: #000; }
.pub-tb-btn { width: 1.95rem; height: 1.95rem; border-radius: 50%; border: 0; background: transparent; color: rgba(255,255,255,.74); display: grid; place-items: center; cursor: pointer; font-size: 1rem; padding: 0; transition: color .15s, background .15s; }
.pub-tb-btn:hover { color: #fff; background: rgba(255,255,255,.1); }
.pub-tb-btn:focus-visible, .pub-tb-link:focus-visible, .pub-tb-lang a:focus-visible, .pub-tb-socials a:focus-visible, .pub-tb-status:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.pub-tb [data-tip]:hover::after, .pub-tb [data-tip]:focus-visible::after { bottom: auto; top: calc(100% + 7px); background: #fff; color: #000; }
@media (max-width: 1439px) { .pub-tb-wide { display: none !important; } }
@media (max-width: 1179px) { .pub-tb-socials { display: none; } .pub-tb-link { padding-inline: .5rem; } }
@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) { .pub-tb-inner { animation: pub-tb-in .6s var(--ease) both; } }
@keyframes pub-tb-in { from { opacity: 0; transform: translateY(-6px); } }

/* ------------------------------------------------------------- Candidatures fermées : carte, notes, menu, pied de page */
.pub-closed { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(1.2rem, 1rem + 2vw, 2.6rem); align-items: center; padding: clamp(1.3rem, 1rem + 2vw, 2.4rem); border-radius: var(--r-xl); background: var(--bg-elev); border: 1px solid var(--line); box-shadow: var(--shadow-2); }
.pub-closed::before { content: ""; position: absolute; right: -90px; top: -110px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--signal) 16%, transparent), transparent 68%); pointer-events: none; }
.pub-closed > * { position: relative; }
.pub-closed.no-notify { grid-template-columns: minmax(0, 1fr); }
.pub-closed-main { display: flex; gap: 1.1rem; align-items: flex-start; min-width: 0; }
.pub-closed-art { position: relative; width: 3.6rem; height: 3.6rem; border-radius: 18px; display: grid; place-items: center; flex-shrink: 0; font-size: 1.7rem; background: color-mix(in srgb, var(--signal) 14%, var(--bg-elev)); color: var(--signal); border: 1px solid color-mix(in srgb, var(--signal) 32%, transparent); }
.pub-closed-art span { position: absolute; inset: -6px; border-radius: 22px; border: 1.5px solid color-mix(in srgb, var(--signal) 40%, transparent); opacity: 0; animation: pub-closed-ring 3.2s ease-out infinite; }
@keyframes pub-closed-ring { 0% { transform: scale(.9); opacity: .8; } 70%, 100% { transform: scale(1.18); opacity: 0; } }
.pub-closed-body { display: flex; flex-direction: column; gap: .55rem; min-width: 0; }
.pub-closed-body .pub-kicker { color: var(--signal); }
[data-theme="light"] .pub-closed-body .pub-kicker { color: var(--orange); }
.pub-closed-body .pub-closed-h { margin: 0; font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); font-stretch: 112%; font-weight: 820; letter-spacing: -0.02em; line-height: 1.12; }
.pub-closed-body p { margin: 0; color: var(--text-2); line-height: 1.6; max-width: 58ch; white-space: pre-line; }
.pub-closed-date { display: inline-flex; align-items: center; gap: .7rem; align-self: flex-start; padding: .55rem .9rem .55rem .6rem; border-radius: var(--r); background: var(--bg-sunken); border: 1px solid var(--line); }
.pub-closed-date .ph { width: 2.2rem; height: 2.2rem; border-radius: 11px; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand-ink); font-size: 1.15rem; }
.pub-closed-date small { display: block; font-size: .72rem; color: var(--text-3); font-weight: 680; text-transform: uppercase; letter-spacing: .06em; }
.pub-closed-date b { font-size: .95rem; }
.pub-closed-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .3rem; }
.pub-closed-notify { display: flex; flex-direction: column; gap: .5rem; padding: 1.1rem; border-radius: var(--r-lg); background: var(--bg-sunken); border: 1px solid var(--line); min-width: 0; }
.pub-closed-notify > div { display: flex; flex-direction: column; gap: .5rem; }
.pub-closed-notify-title { display: inline-flex; align-items: center; gap: .45rem; font-weight: 750; font-size: .95rem; }
.pub-closed-notify-title .ph-bold { color: var(--brand-ink); }
.pub-closed-notify .input-group { display: flex; gap: .4rem; }
.pub-closed-notify .input-group .input { flex: 1; min-width: 0; }
.pub-closed-done { flex-direction: row !important; align-items: center; gap: .8rem !important; }
.pub-closed-done > .ph-bold { width: 2.6rem; height: 2.6rem; border-radius: 50%; display: grid; place-items: center; background: var(--brand); color: #000; font-size: 1.2rem; flex-shrink: 0; }
.pub-closed-done b { display: block; }
.pub-closed-done span span { font-size: .88rem; color: var(--text-2); }
.pub-closed.is-compact { grid-template-columns: minmax(0, 1fr); padding: clamp(1.1rem, 1rem + 1vw, 1.6rem); gap: 1rem; }
.pub-closed.is-compact .pub-closed-body .pub-closed-h { font-size: clamp(1.2rem, 1rem + .8vw, 1.5rem); }
@media (max-width: 860px) { .pub-closed { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .pub-closed-main { flex-direction: column; } .pub-closed-notify .input-group { flex-direction: column; } .pub-closed-notify .input-group .btn { width: 100%; } .pub-closed-actions .btn { flex: 1 1 100%; justify-content: center; } }
.pub-closed-note { display: flex; align-items: flex-start; gap: .45rem; margin: 1rem 0 0; }
.pub-closed-note .ph { margin-top: .15rem; color: var(--text-3); }
.pub-closed-hero { padding-bottom: clamp(1.4rem, 1rem + 1.5vw, 2.2rem); }
.auth-card .pub-closed { box-shadow: none; }

/* Héros de l'accueil : un parcours fermé / les deux fermés */
.pub-cta-note { display: flex; align-items: flex-start; gap: .45rem; margin: 1rem 0 0; max-width: 56ch; color: var(--text-2); font-size: .9rem; line-height: 1.5; animation: pub-rise .7s var(--ease) backwards; animation-delay: .95s; }
.pub-cta-note .ph { margin-top: .15rem; color: var(--signal); flex-shrink: 0; }
.pub-cta-closed { display: flex; flex-direction: column; align-items: flex-start; gap: .8rem; margin-top: 1.8rem; width: 100%; max-width: 620px; animation: pub-rise .7s var(--ease) backwards; animation-delay: .85s; }
.pub-cta-closed .pub-closed { width: 100%; }
.pub-eyebrow.is-closed { border-color: color-mix(in srgb, var(--signal) 40%, var(--line)); }
.pub-live.is-off { background: var(--signal); }
.pub-live.is-off::after { display: none; }
.pub-path-closed { display: inline-flex; align-items: center; gap: .45rem; align-self: flex-start; margin-top: auto; padding: .55rem .9rem; border-radius: var(--r-pill); background: var(--bg-sunken); border: 1px dashed var(--line-strong); color: var(--text-2); font-size: .88rem; font-weight: 650; }
.pub-path-closed .ph { color: var(--signal); font-size: 1.05rem; }
.pub-path.is-featured .pub-path-closed, .pub-path-closed.is-dark { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.22); color: rgba(255,255,255,.8); }
.pub-path-login { display: inline-flex; align-items: center; gap: .35rem; align-self: flex-start; color: #A5EC74; font-weight: 700; font-size: .9rem; }
.pub-path-login:hover { color: #fff; text-decoration: none; }
.pub-path-login .ph { transition: transform .2s var(--ease); }
.pub-path-login:hover .ph { transform: translateX(3px); }

/* Menu mobile et pied de page */
.pub-menu-closed { display: flex; gap: .75rem; align-items: flex-start; padding: .85rem .95rem; border-radius: var(--r); background: color-mix(in srgb, var(--signal) 10%, var(--bg-elev)); border: 1px solid color-mix(in srgb, var(--signal) 30%, var(--line)); }
.pub-menu-closed > .ph-fill { color: var(--signal); font-size: 1.35rem; margin-top: .05rem; }
.pub-menu-closed b { display: block; font-size: .95rem; }
.pub-menu-closed span { display: block; color: var(--text-2); font-size: .86rem; line-height: 1.5; margin-top: .15rem; }
.pub-foot-cta.is-closed::after { background: radial-gradient(circle, rgba(244,123,32,.3), transparent 65%); }
.pub-foot-cta.is-closed .pub-kicker { color: #FFB27A; }

/* Fin de vidéo quand tout est fermé */
.eitp-end-msg { max-width: 46ch; font-size: clamp(.78rem, 2.6cqi, .95rem); color: rgba(255,255,255,.78); line-height: 1.5; }
@container (max-width: 420px) { .eitp-end-msg { display: none; } }
@container (max-width: 330px) { .eitp-loop { display: none !important; } }

/* ------------------------------------------------------------- Tableau de bord : ouverture des candidatures (.ouv-*) */
.ouv { display: flex; align-items: center; gap: .7rem 1.2rem; flex-wrap: wrap; padding: .55rem .7rem .55rem .6rem; margin-bottom: .9rem; border-radius: var(--r-lg); background: var(--bg-elev); border: 1px solid var(--line); box-shadow: var(--shadow-1); flex-shrink: 0; transition: border-color .2s, background .2s; }
.ouv.is-closed { border-color: color-mix(in srgb, var(--signal) 40%, var(--line)); background: color-mix(in srgb, var(--signal) 5%, var(--bg-elev)); }
.ouv-head { display: flex; align-items: center; gap: .65rem; min-width: 0; flex: 1 1 260px; }
.ouv-ic { width: 2.3rem; height: 2.3rem; border-radius: 11px; display: grid; place-items: center; flex-shrink: 0; background: var(--brand-soft); color: var(--brand-ink); font-size: 1.2rem; }
.ouv.is-closed .ouv-ic { background: color-mix(in srgb, var(--signal) 15%, var(--bg-elev)); color: var(--signal); }
.ouv-title { display: flex; flex-direction: column; min-width: 0; }
.ouv-title b { font-size: .92rem; line-height: 1.2; }
.ouv-title small { font-size: .76rem; color: var(--text-3); line-height: 1.3; }
.ouv-items { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.ouv-item { padding: .3rem .7rem .3rem .45rem; border-radius: var(--r); border: 1px solid var(--line); background: var(--bg); transition: border-color .2s, background .2s, opacity .2s; }
.ouv-item.is-off { border-color: color-mix(in srgb, var(--signal) 35%, var(--line)); }
.ouv-item.is-busy { opacity: .6; }
.ouv-switch { gap: .6rem; }
.ouv-item-text { display: flex; flex-direction: column; line-height: 1.2; }
.ouv-item-text b { display: inline-flex; align-items: center; gap: .3rem; font-size: .84rem; }
.ouv-item-text b .ph { color: var(--text-3); }
.ouv-item-text small { display: inline-flex; align-items: center; gap: .3rem; font-size: .72rem; font-weight: 650; color: var(--brand-ink); white-space: nowrap; }
.ouv-item.is-off .ouv-item-text small { color: var(--signal); }
[data-theme="light"] .ouv-item.is-off .ouv-item-text small { color: var(--orange); }
.ouv-dot { width: .42rem; height: .42rem; border-radius: 50%; background: currentColor; }
.ouv-switch[data-tip]:hover::after { white-space: normal; width: max-content; max-width: 260px; text-align: center; }
.ouv-actions { display: flex; align-items: center; gap: .2rem; margin-left: auto; }
.ouv-preview { display: flex; flex-direction: column; gap: .25rem; padding: .7rem .85rem; border-radius: var(--r); background: var(--bg-sunken); border: 1px solid var(--line); font-size: .9rem; }
.ouv-fieldset { border: 1px solid var(--line); border-radius: var(--r-lg); padding: .9rem 1rem 1rem; margin: 0; display: flex; flex-direction: column; gap: .8rem; }
.ouv-fieldset legend { padding: 0 .4rem; font-weight: 750; font-size: .92rem; display: inline-flex; align-items: center; gap: .45rem; }
@media (max-width: 1023px) { .ouv-actions { margin-left: 0; } }
@media (max-width: 559px) { .ouv-items, .ouv-item { width: 100%; } .ouv-item-text small { white-space: normal; flex-wrap: wrap; } }

/* ------------------------------------------------------------- Retouches d'animation (site public, sans excès) */
@media (prefers-reduced-motion: no-preference) {
  .pub-nav a { transition: color .15s, background .15s, transform .2s var(--ease); }
  .pub-nav a:hover::after { transform: translateX(-50%) scaleX(.5); }
  .pub-nav a.is-active:hover::after { transform: translateX(-50%) scaleX(1); }
  .pub-toc a { transition: color .15s, border-color .15s, transform .2s var(--ease); }
  .pub-toc a:hover { transform: translateY(-1px); }
  .pub-doc, .pub-dont, .pub-legal-card { transition: transform .22s var(--ease), border-color .22s, box-shadow .22s; }
  .pub-doc:hover, .pub-dont:hover { transform: translateY(-2px); border-color: var(--line-strong); box-shadow: var(--shadow-2); }
  .pub-closed-actions .btn, .pub-hint-cta .btn { transition: transform .2s var(--ease), background .15s, border-color .15s, color .15s; }
  .pub-closed-actions .btn:hover, .pub-hint-cta .btn:hover { transform: translateY(-1px); }
  .pub-foot-cta { transition: box-shadow .3s; }
  .pub-socials a:active, .pub-tb-socials a:active { transform: scale(.94); }
}
@media (prefers-reduced-motion: reduce) {
  .pub-tb-status .pub-tb-dot::after, .pub-closed-art span { animation: none !important; }
  .pub-cta-note, .pub-cta-closed, .pub-tb-inner { animation: none; }
}
/* v3 : sans la navigation (< 1280 px), les actions restent calées à droite de l'en-tête */
@media (max-width: 1279px) { .pub-nav + .pub-actions { margin-left: auto; } }
