/* psra-core */
/* ---- PSRA design tokens ---- */
:root{
  /* The site is light everywhere. Declaring this stops the browser tinting
     form fields, select menus, scrollbars and date pickers on a device set to
     dark, which is what made inputs unreadable on a phone even where the page
     itself was correct. */
  color-scheme:light;

  --psra-primary:#1a1a1a; --psra-primary-d:#0f0f0f; --psra-primary-dd:#000000;
  --psra-primary-soft:#f1f1f1; --psra-primary-100:#dedede;
  --psra-accent:var(--psra-primary); --psra-accent-soft:var(--psra-primary-soft);
  --psra-on-accent:#ffffff; /* text on the accent. It was #231A05, dark text designed for the former gold accent; the accent is now near-black, so every .psra-btn-primary rendered its label dark on dark - invisible. */
  /* The approved green is 4.4:1 against white, which is below the 4.5:1 needed
     for body text. It is right for a filled badge or a progress bar, where it
     carries no words. This darker tone is for green TEXT on a light surface,
     and reaches 5.9:1. Same hue, so the identity is unchanged. */
  --psra-success-text:#186B3B;
  --psra-ink:#161616; --psra-ink-2:#3a3a3a; --psra-muted:#6e6e6e; --psra-faint:#9e9e9e;
  --psra-line:#e7e7e7; --psra-line-2:#f1f1f1;
  --psra-bg:#ffffff; --psra-bg-soft:#f8f8f8; --psra-bg-2:#f1f1f1;
  --psra-success:#059669; --psra-warning:#d97706; --psra-danger:#dc2626; --psra-star:var(--psra-primary);
  --psra-radius:14px; --psra-radius-sm:10px; --psra-radius-lg:22px; --psra-radius-pill:999px;
  --psra-sh-sm:0 1px 2px rgba(20,20,20,.06),0 1px 3px rgba(20,20,20,.07);
  --psra-sh:0 6px 20px -6px rgba(20,20,20,.12);
  --psra-sh-lg:0 22px 48px -16px rgba(10,10,10,.22);
  --psra-container:1200px; --psra-header-h:74px;
  --psra-font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,'Apple Color Emoji','Segoe UI Emoji',sans-serif;
  --psra-serif: 'Newsreader', 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
  --psra-trans:.2s cubic-bezier(.4,0,.2,1);
}
/* ---- light reset (front-end) ---- */
*,*::before,*::after{box-sizing:border-box}
body.psra-on{margin:0;font-family:var(--psra-font);color:var(--psra-ink);
  background:var(--psra-bg);line-height:1.6;-webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
.psra-scope img{max-width:100%;height:auto;display:block}
.psra-scope a{color:var(--psra-primary-d);text-decoration:none;transition:color var(--psra-trans)}
.psra-scope a:hover{color:var(--psra-primary)}
.psra-ic{flex:none;vertical-align:middle}
/* ---- layout ---- */
.psra-container{width:100%;max-width:var(--psra-container);margin-inline:auto;padding-inline:22px}

/* The active theme constrains the document itself:
       body { max-width: 700px; padding: 32px }
   Every platform page therefore rendered inside a 700px column on a 1425px
   screen, which pushed the header menu on top of its neighbours and clipped
   the dashboard cards. The rule was found with the inspector: it comes from a
   theme stylesheet, not from here.

   The override is scoped to body.psra-on, which this file adds, so only the
   platform's own pages are widened and the client's other pages keep the
   theme's intended column. !important is used deliberately: this competes
   with a theme rule that loads later in the document. */
body.psra-on{max-width:none !important;padding-left:0 !important;padding-right:0 !important;width:auto !important}
.psra-skip{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--psra-primary);
  color:#fff;padding:10px 16px;border-radius:0 0 10px 0;font-weight:600;font-size:14px}
.psra-skip:focus{left:0;color:#fff}
.psra-main{display:block;min-height:40vh}
/* ---- buttons ---- */
.psra-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--psra-font);font-size:15px;font-weight:600;line-height:1;cursor:pointer;
  padding:12px 20px;border-radius:var(--psra-radius-sm);border:1.5px solid transparent;
  transition:transform var(--psra-trans),background var(--psra-trans),box-shadow var(--psra-trans),color var(--psra-trans),border-color var(--psra-trans);
  text-decoration:none;white-space:nowrap}
.psra-btn:active{transform:translateY(1px)}
.psra-btn-primary{background:var(--psra-accent);color:var(--psra-on-accent);box-shadow:0 8px 18px -8px color-mix(in srgb, var(--psra-accent) 50%, transparent)}
.psra-btn-primary:hover{background:#B8901F;color:var(--psra-ink);box-shadow:0 12px 24px -8px color-mix(in srgb, var(--psra-accent) 60%, transparent)}
.psra-btn-ghost{background:transparent;color:var(--psra-ink-2)}
.psra-btn-ghost:hover{background:var(--psra-bg-2);color:var(--psra-ink)}
.psra-btn-outline{background:var(--psra-bg,#fff);color:var(--psra-ink);border-color:var(--psra-line)}
.psra-btn-outline:hover{border-color:var(--psra-primary);color:var(--psra-primary-d)}
.psra-btn-light{background:var(--psra-bg,#fff);color:var(--psra-primary-d)}
.psra-btn-light:hover{background:var(--psra-primary-soft)}
.psra-btn-sm{padding:9px 15px;font-size:14px}
.psra-btn-lg{padding:15px 26px;font-size:16px}
/* ---- badges ---- */
.psra-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;
  padding:4px 10px;border-radius:var(--psra-radius-pill);line-height:1.3}
.psra-badge svg{width:13px;height:13px}
.psra-badge-verified{background:var(--psra-primary-soft);color:var(--psra-primary-d)}
.psra-badge-premium{background:#fef3c7;color:#92400e}
.psra-badge-top{background:var(--psra-primary-soft);color:var(--psra-primary-dd)}
.psra-badge-soft{background:var(--psra-bg-2);color:var(--psra-ink-2)}
/* ---- stars ---- */
.psra-stars{display:inline-flex;gap:1px;vertical-align:middle}
.psra-star{color:#dadada;line-height:0}
.psra-star svg{width:16px;height:16px}
.psra-star.is-on{color:var(--psra-star)}
.psra-star.is-half{color:var(--psra-star);opacity:.55}
.psra-rating-count{margin-left:6px;font-size:13px;color:var(--psra-muted);font-weight:500}
/* ---- form controls ---- */
.psra-field{width:100%;font-family:var(--psra-font);font-size:15px;color:var(--psra-ink);
  background:var(--psra-bg,#fff);border:1.5px solid var(--psra-line);border-radius:var(--psra-radius-sm);
  padding:12px 14px;transition:border-color var(--psra-trans),box-shadow var(--psra-trans);outline:none}
.psra-field:focus{border-color:var(--psra-primary);box-shadow:0 0 0 4px var(--psra-primary-100)}
.psra-field::placeholder{color:var(--psra-faint)}
/* ---- helpers ---- */
.psra-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.psra-spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.5);
  border-top-color:#fff;border-radius:50%;animation:psra-spin .6s linear infinite}
@keyframes psra-spin{to{transform:rotate(360deg)}}
/* ---- language switcher ---- */
.psra-lang{display:inline-flex;align-items:center;gap:2px;padding:3px 3px 3px 8px;border-radius:999px;
  background:var(--psra-bg-soft);border:1px solid var(--psra-line);box-shadow:inset 0 1px 2px rgba(20,20,20,.04)}
.psra-lang__globe{flex:none;color:var(--psra-faint);margin-right:4px}
.psra-lang__btn{appearance:none;border:none;cursor:pointer;font-family:var(--psra-font);font-size:12px;
  font-weight:800;letter-spacing:.06em;color:var(--psra-muted);background:transparent;
  padding:5px 11px;border-radius:999px;line-height:1;transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .12s ease}
.psra-lang__btn:hover{color:var(--psra-ink)}
.psra-lang__btn:active{transform:scale(.95)}
.psra-lang__btn[aria-pressed="true"]{background:var(--psra-primary-100);color:var(--psra-primary);box-shadow:0 4px 12px -4px color-mix(in srgb, var(--psra-primary) 70%, transparent),inset 0 0 0 1px rgba(255,255,255,.28)}
.psra-lang--light{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}
.psra-lang--light .psra-lang__globe{color:rgba(255,255,255,.62)}
.psra-lang--light .psra-lang__btn{color:rgba(255,255,255,.8)}
.psra-lang--light .psra-lang__btn:hover{color:#fff}
.psra-lang--light .psra-lang__btn[aria-pressed="true"]{background:var(--psra-primary-100);color:var(--psra-primary);box-shadow:0 4px 14px -4px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.3)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
/* language switcher — fully round pill, premium (forces over theme) */
.psra-lang{border-radius:999px !important;padding:4px 4px 4px 9px !important;gap:3px !important;box-shadow:inset 0 1px 2px rgba(20,20,20,.05),0 3px 10px -5px rgba(20,20,20,.16)}
.psra-lang__btn{border-radius:999px !important;min-width:36px;text-align:center}
.psra-lang__btn[aria-pressed="true"]{box-shadow:0 5px 13px -4px color-mix(in srgb, var(--psra-primary) 70%, transparent),inset 0 0 0 1px rgba(255,255,255,.3)}
.psra-lang--light{box-shadow:inset 0 1px 2px rgba(0,0,0,.18)}
/* ---- reusable figures / infographic grid ---- */
.psra-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}
.psra-fig{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:24px 22px;border-radius:16px;background:var(--psra-bg,#fff);border:1px solid var(--psra-line);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.psra-fig:hover{transform:translateY(-4px);border-color:var(--psra-primary-100);box-shadow:0 22px 46px -30px rgba(0,0,0,.3)}
.psra-fig__ic{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:13px;color:var(--psra-primary-d);background:var(--psra-primary-soft);border:1px solid var(--psra-primary-100)}
.psra-fig__n{font-size:clamp(26px,3.4vw,34px);font-weight:800;letter-spacing:-1px;line-height:1;color:var(--psra-ink)}
.psra-fig__l{font-size:13.5px;font-weight:600;color:var(--psra-muted);line-height:1.4}
.psra-figs--dark .psra-fig{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
.psra-figs--dark .psra-fig:hover{border-color:var(--psra-primary-100);background:rgba(255,255,255,.06)}
.psra-figs--dark .psra-fig__ic{color:var(--psra-ink);background:var(--psra-primary-soft);border-color:var(--psra-primary-100)}
.psra-figs--dark .psra-fig__n{color:#fff}
.psra-figs--dark .psra-fig__l{color:#c4c4c4}
@media(max-width:900px){.psra-figs{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
@media(max-width:480px){.psra-figs{grid-template-columns:1fr}}
.psra-tier{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;letter-spacing:.02em;padding:3px 9px;border-radius:999px;line-height:1;white-space:nowrap;border:1px solid transparent}
.psra-tier svg{flex:none}
.psra-tier--bronze{background:#f3e2cf;color:#6b4423;border-color:#dba978}
.psra-tier--silver{background:#eef1f4;color:#46535f;border-color:#c2ccd6}
.psra-tier--gold{background:var(--psra-primary-soft);color:#7a5a09;border-color:var(--psra-primary-100)}
.psra-tier--platinum{background:#eef0f2;color:#3f4a52;border-color:#c8ced4}
.psra-tier--diamond{background:#f4f6f8;color:#3a4750;border-color:#cfd6dc}

/* ============================================================================
 *  PERFORMANCE
 * ----------------------------------------------------------------------------
 *  Measured on the delivered stylesheets, not guessed:
 *
 *      223  elements carrying will-change permanently
 *       71  animations set to run for ever
 *       83  filter:blur
 *       61  backdrop-filter
 *      157  transitions that include box-shadow
 *
 *  will-change is a hint meant to be set just before an animation and removed
 *  straight after. Left on permanently it forces the browser to hold a
 *  separate compositor layer for every one of those elements, for the life of
 *  the page, whether or not anything is moving. Two hundred and twenty-three
 *  layers is what makes scrolling stutter.
 *
 *  Everything below is a correction to how the effects are driven. None of it
 *  removes an effect: the page looks the same and stops fighting the browser.
 * ========================================================================== */

/* 1. Retire the permanent layers. The reveal animation still runs; it simply
      no longer reserves a layer before there is anything to composite. */
.psra-reveal{ will-change:auto !important }

/* 1b. Content never waits on a script to be seen. Sections marked .psra-reveal
       start transparent and the page's script fades them in (.is-in). When
       that script runs late or not at all, the guard at the top of the page
       (psra_reveal_guard) sets psra-reveal-off and every section is shown as
       it is, without the effect. With scripting off, the same. */
html.psra-reveal-off .psra-reveal{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important;animation:none !important}
@media (scripting:none){
  .psra-reveal{opacity:1 !important;transform:none !important;filter:none !important}
}

/* 2. Anything off screen stops animating. The class is applied by the observer
      below, so this costs nothing when scripting is unavailable: the page
      then behaves exactly as it does today. */
.psra-offscreen, .psra-offscreen *{
  animation-play-state:paused !important;
}
/* A tab the visitor has switched away from should cost nothing at all. */
html.psra-hidden *{ animation-play-state:paused !important }

/* 3. content-visibility was applied here and has been removed.
      It defers layout for off-screen content, which is a real saving, but it
      does so by creating a containment context -- and containment breaks
      position:sticky for every descendant. .psra-sec is the element that
      wraps the home page journey, whose sticky stage took two rounds to get
      right. The saving is not worth reintroducing that.

      The layer reduction in point 1 is where the actual cost was. */

/* 4. Decorative blur is the single most expensive thing on these pages, and on
      a phone it buys the least. Below 860px the orbs and auroras keep their
      colour and lose the blur. */
@media (max-width:860px){
  [class*="orb"], [class*="aurora"], [class*="-aur"]{
    filter:none !important;
    animation:none !important;
    opacity:.55;
  }
  /* Frosted panels become flat ones: the blur reads as noise at this size. */
  [class*="__sidehead"], [class*="__composer"], [class*="__daysep"]{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
}

/* 5. A visitor who has asked for reduced motion should also be spared the
      cost of it, not merely the sight. */
@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  [class*="orb"], [class*="aurora"]{ filter:none !important }
}





/* ---- a figure that cannot yet be measured ------------------------------- */
.psra-stat__pending{ display:inline-flex; flex-direction:column; gap:1px; cursor:help }
.psra-stat__dash{ color:var(--psra-faint); font-weight:700; line-height:1 }
.psra-stat__note{
  font-size:11px; font-weight:600; letter-spacing:.01em;
  color:var(--psra-muted); white-space:nowrap;
}

/* --- Mentions HT / TTC : présentes, lisibles, jamais criardes --- */
.psra-ht{font-size:.62em;font-weight:600;letter-spacing:.04em;color:var(--psra-muted);text-transform:uppercase;white-space:nowrap;vertical-align:baseline}
.psra-ttc{display:inline-block;font-size:.68em;font-weight:500;color:var(--psra-muted);white-space:nowrap}
.psra-vat-note{margin:10px 0 0;font-size:13px;color:var(--psra-muted);line-height:1.5}

/* Offscreen animations are paused. Decorative loops (glows, drifts, sweeps,
   pulses) kept running in every section of a page whether visible or not:
   on the homepage 25 of them, all offscreen at any moment, which cost a style
   recalculation on every frame even with the page at rest. A section that
   leaves the viewport gets .psra-anim-off (see the script in this snippet)
   and everything in it holds still until it comes back. */
.psra-anim-off,
.psra-anim-off *,
.psra-anim-off *::before,
.psra-anim-off *::after,
.psra-anim-off::before,
.psra-anim-off::after{animation-play-state:paused!important}

/* Price suffix "HT" on phones: it scaled down to 7-10px and, on dark
   surfaces, sat at 3.8:1. Floor the size and lift it on dark backgrounds. */
@media (max-width:700px){
	.psra-ht{font-size:max(11px,.62em)}
	.psra-hero .psra-ht,.psra-sec--dark .psra-ht,.psra-footer .psra-ht{color:rgba(255,255,255,.72)}
}
.psra-badge-verified{background:#e8f0ff;color:#1a4fa0}.psra-badge-elite{background:#1a1a1a;color:var(--psra-primary-100)}.psra-badge-premium_plus{background:#efe3ff;color:#6b21a8}.psra-badge-premium{background:#fef3c7;color:#92400e}.psra-badge-top{background:#fffbeb;color:#b45309}.psra-badge-reactive{background:#fff7ed;color:color-mix(in srgb, var(--psra-accent) 75%, #000)}.psra-badge-recommended{background:#fef2f2;color:#be123c}.psra-badge-complete{background:#e7f7ee;color:#0c7a43}.psra-badge-expert{background:#f3f3f4;color:#3a3a3a}.psra-badge-new{background:#eef6ff;color:#2563a0}.psra-badge-actif{background:var(--psra-accent-soft);color:color-mix(in srgb, var(--psra-accent) 75%, #000)}.psra-badge-ambassadeur{background:#1a1a1a;color:var(--psra-primary-100)}
.psra-mycerts{margin:0 0 30px;padding:22px;background:var(--psra-bg-soft,#f8f8f8);border:1px solid var(--psra-line,#e7e7e7);border-radius:16px}
.psra-mycerts__h{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:800;color:var(--psra-ink,#161616);margin:0 0 14px}
.psra-mycerts__h svg{color:var(--psra-primary)}
.psra-mycerts__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.psra-mycert{display:flex;align-items:center;gap:12px;background:var(--psra-bg,#fff);border:1px solid var(--psra-line,#e7e7e7);border-left:3px solid var(--psra-primary);border-radius:12px;padding:14px 15px;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}
.psra-mycert:hover{transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(0,0,0,.2)}
.psra-mycert__ic{flex:none;width:38px;height:38px;border-radius:10px;background:var(--psra-primary-soft);color:var(--psra-primary-dd);display:flex;align-items:center;justify-content:center}
.psra-mycert__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.psra-mycert__t{font-size:14.5px;color:var(--psra-ink,#161616);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.psra-mycert__d{font-size:12.5px;color:var(--psra-muted,#6e6e6e)}
.psra-mycert__go{flex:none;color:var(--psra-faint,#9e9e9e)}

.psra-certwrap{max-width:900px;margin:0 auto;padding:10px 0 40px}
.psra-certbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:18px}
.psra-cert{background:var(--psra-bg,#fff)}
.psra-cert__frame{position:relative;border:2px solid var(--psra-primary);border-radius:8px;padding:52px 48px 40px;text-align:center;background:
  var(--psra-primary-soft);
  box-shadow:0 20px 60px -30px rgba(0,0,0,.35)}
.psra-cert__frame::before{content:"";position:absolute;inset:8px;border:1px solid var(--psra-primary-100);border-radius:5px;pointer-events:none}
.psra-cert__brand{font-size:13px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--psra-primary-dd);margin-bottom:26px}
.psra-cert__kicker{font-family:Georgia,'Times New Roman',serif;font-size:26px;font-weight:700;color:var(--psra-ink,#161616);letter-spacing:.02em;margin-bottom:22px}
.psra-cert__intro{color:#5d5d5d;font-size:15px;margin:6px 0}
.psra-cert__name{font-family:Georgia,'Times New Roman',serif;font-size:34px;font-weight:800;color:var(--psra-ink,#161616);margin:6px 0 4px;letter-spacing:.01em}
.psra-cert__course{font-size:22px;font-weight:800;color:var(--psra-primary-dd);margin:8px auto 6px;max-width:34ch;line-height:1.25}
.psra-cert__score{font-size:14px;color:var(--psra-ink-2,#3a3a3a);margin:4px 0 0}
.psra-cert__meta{display:flex;justify-content:center;gap:44px;margin:28px 0 30px;flex-wrap:wrap}
.psra-cert__mi{display:flex;flex-direction:column;gap:3px}
.psra-cert__mi span{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--psra-faint,#9e9e9e)}
.psra-cert__mi strong{font-size:15px;color:var(--psra-ink,#161616)}
.psra-cert__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:30px}
.psra-cert__sig{text-align:left;flex:1;max-width:260px}
.psra-cert__sigline{display:block;border-top:1.5px solid #333;margin-bottom:6px}
.psra-cert__siglbl{font-size:12px;color:#5d5d5d}
.psra-cert__seal{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--psra-primary-dd);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.psra-cert__seal svg{width:34px;height:34px}
.psra-cert__verify{margin:26px 0 0;font-size:11.5px;color:var(--psra-muted)}
.psra-cert-missing{background:#fdeeee;color:#a12626;border-radius:12px;padding:16px;text-align:center}
@media(max-width:600px){
  .psra-cert__frame{padding:34px 20px 28px}
  .psra-cert__name{font-size:26px}
  .psra-cert__course{font-size:18px}
  .psra-cert__meta{gap:24px}
  .psra-cert__foot{flex-direction:column;align-items:center;gap:18px}
  .psra-cert__sig{text-align:center}
}
@media print{
  body *{visibility:hidden!important}
  .psra-cert, .psra-cert *{visibility:visible!important}
  .psra-cert{position:absolute;left:0;top:0;width:100%}
  .psra-certbar{display:none!important}
  .psra-cert__frame{box-shadow:none;border-color:var(--psra-primary)}
  @page{margin:1.2cm}
}

.psra-cert__legal{
  margin:18px 0 0; padding-top:14px; border-top:1px solid var(--psra-line);
  font-size:10.5px; line-height:1.5; color:var(--psra-faint); text-align:center;
}
@media print{ .psra-cert__legal{ color:#777 } }

.psra-revform__reco{display:flex;align-items:center;gap:9px;margin:4px 0 14px;font-size:14px;color:var(--psra-ink-2,#4a4f57);cursor:pointer}
.psra-reco{margin:10px 0;font-size:14px;color:var(--psra-ink-2,#4a4f57)}.psra-reco strong{font-size:17px;color:#1a7f37}.psra-reco small{color:var(--psra-muted,#8a8f97)}
.psra-skip{position:absolute;left:-9999px;top:0;z-index:100000;background:var(--psra-primary);color:#fff;padding:12px 18px;border-radius:0 0 10px 0;font-weight:700;text-decoration:none}.psra-skip:focus{left:0}
:root{--psra-primary:#12305B;--psra-primary-d:#0D2445;--psra-primary-dd:#081832;--psra-primary-soft:#EEF2F8;--psra-primary-100:#D3DEEC;--psra-success:#1F8A4C;--psra-accent:#E07B22;--psra-accent-soft:#FDF1E5;--psra-star:#E8A317;}
@media (min-width:1081px){body .psra-bar.is-tight .psra-nav{display:flex !important}body .psra-bar.is-tight .psra-burger{display:none !important}}
/* psra-header */
/* ===== HEADER SHELL — floating pill on a soft band ===== */
.psra-header{position:sticky;top:0;z-index:200;padding:14px 22px;background:var(--psra-primary-soft);transition:background .3s ease,box-shadow .3s ease,padding .3s ease,margin-bottom .3s ease}
/* Stuck state.
   - No backdrop blur. The bar was already 90% opaque, so the 14px blur showed
     through only 10% transparency, yet it made the browser re-blur the page
     under the header on every scroll frame: the largest single cause of
     dropped frames while scrolling. A near-opaque surface looks the same.
   - The bar still tightens from 14px to 10px of padding, but margin-bottom
     grows by the same 8px on the same timing, so the header keeps its place
     in the page flow. Previously the whole page jumped up 8px, re-laid out on
     every frame of the 0.3s transition, the moment scrolling began. */
.psra-header.is-stuck{background:rgba(255,255,255,.97);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 10px 30px -20px rgba(20,20,20,.35);padding-top:10px;padding-bottom:10px;margin-bottom:8px}
.psra-bar{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;background:#fff;border:1px solid rgba(230,230,230,.85);border-radius:20px;padding:9px 10px 9px 18px;box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 2px 6px -2px rgba(20,20,20,.05),0 14px 30px -16px rgba(18,18,18,.3),0 30px 60px -34px rgba(18,18,18,.42)}
/* Grid columns may shrink. Without min-width:0 a column never goes below the
   width of its content: the menu then spills over its neighbours instead of
   compressing, which draws "Tarifs" over "FR". Links never break mid-word. */
.psra-bar > *{min-width:0}
.psra-nav > *{flex:0 0 auto;min-width:0}
.psra-navlink{white-space:nowrap}
.psra-navlink--nexora{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--psra-radius-pill,999px);background:linear-gradient(135deg,var(--psra-navy,#1a3f8f),var(--psra-navy-d,#16306b));color:#fff !important;font-weight:600}
.psra-navlink--nexora:hover{filter:brightness(1.08)}
.psra-drawer__link--nexora{font-weight:700;color:var(--psra-navy,#1a3f8f)}

/* logo */
.psra-logo{display:inline-flex;align-items:center;gap:10px;justify-self:start;text-decoration:none;flex:none;max-width:260px;overflow:hidden}
.psra-logo__img{display:block !important;width:auto !important;height:57.6px !important;max-width:280px !important;max-height:57.6px !important;object-fit:contain;vertical-align:middle}
.psra-logo__fallback{display:inline-flex;align-items:center;gap:10px}
/* The PHP marks this block hidden when a real logo image exists, but an
   explicit display in author CSS overrides the browser's [hidden] rule, so the
   monogram rendered anyway — the second logo. It also stole ~180px that the
   French navigation needs, which is what made the tabs overlap. */
.psra-logo__fallback[hidden]{display:none !important}
.psra-logo__mark{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;color:var(--psra-primary-100);font-weight:800;font-size:23px;letter-spacing:-.5px;background:var(--psra-primary-dd);box-shadow:0 1px 0 rgba(255,255,255,.32) inset,0 8px 20px -8px rgba(18,18,18,.5);transition:transform .25s cubic-bezier(.4,0,.2,1)}
.psra-logo:hover .psra-logo__mark{transform:translateY(-2px) rotate(-3deg)}
.psra-logo__txt{display:flex;flex-direction:column;line-height:1.05;font-size:11px;font-weight:600;color:var(--psra-muted)}
.psra-logo__txt strong{font-size:18px;color:var(--psra-ink);font-weight:800;letter-spacing:-.4px}

/* centered nav */
.psra-nav{display:flex;align-items:center;gap:0;justify-self:center;min-width:0}
.psra-navlink{position:relative;font-family:var(--psra-font);font-size:14.5px;font-weight:600;color:var(--psra-ink-2);text-decoration:none;padding:8px 11px;border-radius:10px;white-space:nowrap;transition:color .18s ease}
.psra-navlink::after{content:"";position:absolute;left:11px;right:11px;bottom:5px;height:2px;border-radius:2px;background:var(--psra-primary);transform:scaleX(0);transform-origin:center;transition:transform .26s cubic-bezier(.2,.8,.2,1)}
.psra-navlink:hover{color:var(--psra-primary-d)}
.psra-navlink:hover::after{transform:scaleX(1)}
.psra-navlink.is-active{color:var(--psra-primary-dd);font-weight:700}
.psra-navlink.is-active::after{transform:scaleX(1)}

/* actions */
.psra-bar__actions{display:flex;align-items:center;gap:10px;justify-self:end}
.psra-cta{white-space:nowrap;gap:7px}
.psra-header .psra-bar .psra-cta{height:46px !important;min-height:0 !important;line-height:1 !important;padding:0 22px !important;width:auto !important;max-width:none !important;border-radius:999px !important;background:var(--psra-accent);color:#fff !important;text-shadow:0 1px 2px rgba(60,42,0,.4);border:1px solid rgba(255,255,255,.18);box-shadow:0 1px 0 rgba(255,255,255,.28) inset,0 10px 24px -10px color-mix(in srgb, var(--psra-accent) 50%, transparent);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.psra-header .psra-bar .psra-cta svg{width:16px !important;height:16px !important;flex:none;transition:transform .2s ease}
.psra-header .psra-bar .psra-cta:hover{transform:translateY(-1px);box-shadow:0 1px 0 rgba(255,255,255,.32) inset,0 16px 32px -10px color-mix(in srgb, var(--psra-accent) 60%, transparent);filter:brightness(1.06);color:#fff}
.psra-header .psra-bar .psra-cta:active{transform:translateY(0)}
.psra-header .psra-bar .psra-cta:hover svg{transform:translateX(3px)}
.psra-drawer__foot .psra-btn-primary{color:#fff;text-shadow:0 1px 2px rgba(60,42,0,.35)}
.psra-header .psra-burger{display:none !important;align-items:center;justify-content:center;width:44px;height:44px;border-radius:11px;border:1px solid var(--psra-line);background:var(--psra-bg,#fff);color:var(--psra-ink-2);cursor:pointer;transition:background .15s ease,color .15s ease}
.psra-header .psra-burger:hover{background:var(--psra-primary-soft);color:var(--psra-primary-d)}

/* ===== MOBILE DRAWER (clean white) ===== */
.psra-drawer-backdrop{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .28s ease}
.psra-drawer-backdrop.is-open,.psra-drawer:target~.psra-drawer-backdrop{opacity:1}
.psra-drawer{position:fixed;top:0;right:0;bottom:0;z-index:310;width:min(380px,88vw);background:var(--psra-bg,#fff);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:-30px 0 70px -30px rgba(0,0,0,.5);overflow-y:auto}
.psra-drawer.is-open,.psra-drawer:target{transform:translateX(0)}
.psra-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--psra-line)}
.psra-drawer__close{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;border:1px solid var(--psra-line);background:var(--psra-bg,#fff);color:var(--psra-ink-2);cursor:pointer;transition:background .15s ease,color .15s ease}
.psra-drawer__close:hover{background:var(--psra-primary-soft);color:var(--psra-primary-d)}
.psra-searchbar__field{position:relative;display:flex;align-items:center;background:var(--psra-bg-soft);border:1.5px solid var(--psra-line);border-radius:12px;padding-left:14px;transition:border-color .15s ease,background .15s ease}
.psra-searchbar__field:focus-within{border-color:var(--psra-primary);background:var(--psra-bg,#fff)}
.psra-searchbar__field>svg{color:var(--psra-faint);flex:none}
.psra-searchbar__field input{flex:1;width:100%;border:none;background:transparent;outline:none;font-family:var(--psra-font);font-size:15px;color:var(--psra-ink);padding:12px 14px 12px 10px}
.psra-searchbar__field input::placeholder{color:var(--psra-faint)}
.psra-drawer__nav{display:flex;flex-direction:column;padding:10px 12px;gap:1px}
.psra-drawer__nav>a,.psra-drawer__acc{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 14px;border-radius:11px;font-family:var(--psra-font);font-size:15.5px;font-weight:600;color:var(--psra-ink);text-decoration:none;background:transparent;border:none;width:100%;text-align:left;cursor:pointer;transition:background .15s ease}
.psra-drawer__nav>a:hover,.psra-drawer__acc:hover{background:var(--psra-bg-soft)}
.psra-drawer__acc svg{color:var(--psra-faint);transition:transform .25s ease}
.psra-drawer__grp[open]>.psra-drawer__acc{color:var(--psra-primary-d)}
.psra-drawer__grp[open]>.psra-drawer__acc svg{transform:rotate(180deg);color:var(--psra-primary)}
.psra-drawer__sub{display:flex;flex-direction:column;gap:1px;padding:2px 0 8px 14px;margin-left:6px;border-left:2px solid var(--psra-line)}
.psra-drawer__sub a{padding:10px 14px;border-radius:9px;font-size:14px;font-weight:500;color:var(--psra-ink-2);text-decoration:none;transition:background .15s ease,color .15s ease}
.psra-drawer__sub a:hover{background:var(--psra-bg-soft);color:var(--psra-primary-d)}
.psra-drawer__suball{color:var(--psra-primary-d) !important;font-weight:700 !important}
.psra-drawer__foot{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding:18px 20px;border-top:1px solid var(--psra-line)}
.psra-drawer__foot .psra-btn{width:100%}
.psra-drawer__lang{display:flex;justify-content:center;margin-bottom:4px}

/* ===== RESPONSIVE ===== */
@media (max-width:920px){
  .psra-bar{display:flex;justify-content:space-between;padding:8px 8px 8px 16px}
  .psra-nav{display:none}
  .psra-bar__actions .psra-lang,.psra-cta{display:none}
  .psra-header .psra-burger{display:inline-flex !important}
}
@media (max-width:560px){
  .psra-logo__img{height:46.8px !important;max-height:46.8px !important}
  .psra-header{padding-left:14px;padding-right:14px}
}
.psra-usermenu{position:relative}
.psra-usermenu__btn{display:inline-flex;align-items:center;gap:9px;height:46px;padding:0 14px 0 7px;border-radius:999px;border:1px solid var(--psra-line);background:var(--psra-bg,#fff);cursor:pointer;font-family:var(--psra-font);transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}
.psra-usermenu__btn:hover{border-color:var(--psra-primary);box-shadow:0 8px 22px -14px color-mix(in srgb, var(--psra-primary) 60%, transparent)}
.psra-usermenu__av{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--psra-primary-100);color:var(--psra-primary);font-weight:800;font-size:15px;flex:none}
.psra-usermenu__name{font-size:14px;font-weight:700;color:var(--psra-ink);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.psra-usermenu__btn>svg{color:var(--psra-muted);transition:transform .2s ease}
.psra-usermenu__btn[aria-expanded="true"]>svg{transform:rotate(180deg)}
.psra-usermenu__pop{position:absolute;top:calc(100% + 10px);right:0;width:286px;background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:16px;box-shadow:0 24px 60px -24px rgba(20,20,20,.45);padding:8px;z-index:1200;animation:psra-um-in .18s ease}
@keyframes psra-um-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.psra-usermenu__head{display:flex;align-items:center;gap:11px;padding:12px 12px 14px;border-bottom:1px solid var(--psra-line);margin-bottom:6px}
.psra-usermenu__av--lg{width:44px;height:44px;font-size:18px;border-radius:13px}
.psra-usermenu__meta{display:flex;flex-direction:column;min-width:0}
.psra-usermenu__meta strong{font-size:14.5px;color:var(--psra-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.psra-usermenu__meta small{font-size:12.5px;color:var(--psra-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.psra-usermenu__tierrow{display:flex;align-items:center;gap:8px;padding:2px 12px 12px;flex-wrap:wrap}
.psra-usermenu__pts{font-size:12px;font-weight:700;color:var(--psra-muted)}
.psra-usermenu__nav{display:flex;flex-direction:column;gap:1px}
.psra-usermenu__nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:14px;font-weight:600;color:var(--psra-ink-2);text-decoration:none;transition:background .14s ease,color .14s ease}
.psra-usermenu__nav a:hover{background:var(--psra-primary-soft);color:var(--psra-primary-d)}
.psra-usermenu__nav a svg{color:var(--psra-primary-d);flex:none}
.psra-usermenu__foot{margin-top:6px;padding-top:6px;border-top:1px solid var(--psra-line)}
.psra-usermenu__logout{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:14px;font-weight:700;color:#b32d2e;text-decoration:none;transition:background .14s ease}
.psra-usermenu__logout:hover{background:rgba(194,59,59,.1)}
.psra-usermenu__logout svg{color:#b32d2e;flex:none;transform:rotate(180deg)}
@media (max-width:980px){.psra-usermenu{display:none}}
/* user dropdown polish */
.psra-usermenu__btn{height:44px;padding:0 14px 0 6px}
.psra-usermenu__btn:hover{background:var(--psra-primary-soft)}
.psra-usermenu__pop{width:300px;padding:10px;border-radius:18px;box-shadow:0 30px 70px -28px rgba(20,20,20,.55),0 6px 16px -10px rgba(20,20,20,.25)}
.psra-usermenu__head{background:var(--psra-primary-soft);border:1px solid var(--psra-primary-soft);border-radius:14px;padding:14px;margin-bottom:8px}
.psra-usermenu__head .psra-usermenu__av--lg{box-shadow:0 8px 20px -10px color-mix(in srgb, var(--psra-primary) 80%, transparent)}
.psra-usermenu__nav a{padding:10px 12px;font-size:14px;font-weight:600}
.psra-usermenu__nav a:hover{background:var(--psra-primary-soft);color:var(--psra-primary-d);transform:translateX(3px)}
.psra-usermenu__nav a svg{transition:transform .15s ease}
.psra-usermenu__foot{margin-top:8px;padding-top:8px}
.psra-usermenu__logout{font-weight:700}
/* user menu — round pill trigger, circular avatar, softly rounded popup (forces over theme) */
.psra-usermenu__btn{border-radius:999px !important;padding:4px 16px 4px 4px !important;height:48px}
.psra-usermenu__btn:hover{box-shadow:0 12px 28px -14px color-mix(in srgb, var(--psra-primary) 65%, transparent)}
.psra-usermenu__av{border-radius:50% !important;width:38px;height:38px;box-shadow:0 5px 13px -6px color-mix(in srgb, var(--psra-primary) 70%, transparent)}
.psra-usermenu__pop{border-radius:24px !important;padding:12px !important;box-shadow:0 34px 84px -30px rgba(20,20,20,.6),0 8px 22px -10px rgba(20,20,20,.25)}
.psra-usermenu__head{border-radius:18px !important}
.psra-usermenu__av--lg{border-radius:50% !important;width:46px;height:46px}
.psra-usermenu__nav a{border-radius:999px !important}
.psra-usermenu__foot{border-top:none !important}
.psra-usermenu__logout{border-radius:999px !important}

/* ============================================================
 *  SERVICES MEGA MENU (desktop)
 * ========================================================== */
.psra-has-mega{position:relative}
.psra-navlink--dd{display:inline-flex;align-items:center;gap:5px;border:none;background:transparent;cursor:pointer;line-height:inherit;margin:0}
.psra-navlink--dd svg{color:var(--psra-faint);transition:transform .25s ease,color .15s ease}
.psra-navlink--dd:hover svg{color:var(--psra-primary-d)}
.psra-has-mega.is-open .psra-navlink--dd{color:var(--psra-primary-dd)}
.psra-has-mega.is-open .psra-navlink--dd::after{transform:scaleX(1)}
.psra-has-mega.is-open .psra-navlink--dd svg{transform:rotate(180deg);color:var(--psra-primary)}

.psra-mega{
	position:absolute;top:calc(100% + 14px);left:50%;
	width:min(704px,calc(100vw - 32px));
	transform:translateX(-50%) translateY(13px) scale(.975);transform-origin:top center;
	background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:20px;
	box-shadow:0 2px 0 rgba(255,255,255,.65) inset,0 50px 110px -42px rgba(20,20,20,.55),0 20px 50px -26px rgba(20,20,20,.3),0 0 0 1px color-mix(in srgb, var(--psra-primary) 6%, transparent);
	opacity:0;visibility:hidden;pointer-events:none;
	transition:opacity .28s ease,transform .42s cubic-bezier(.16,1,.3,1),visibility .28s ease;
	z-index:60;
}
.psra-mega::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
.psra-mega::after{content:"";position:absolute;top:-7px;left:50%;width:14px;height:14px;background:var(--psra-bg,#fff);border-left:1px solid var(--psra-line);border-top:1px solid var(--psra-line);transform:translateX(-50%) rotate(45deg);border-radius:4px 0 0 0}
.psra-has-mega.is-open .psra-mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0) scale(1)}

.psra-mega__inner{border-radius:20px;overflow:hidden}
.psra-mega__main{padding:24px 24px 26px;background:var(--psra-bg)}
.psra-mega__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 2px 14px;padding-bottom:14px;border-bottom:1px solid var(--psra-primary-soft)}
.psra-mega__eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--psra-primary-d)}
.psra-mega__eyebrow svg{color:var(--psra-primary);width:14px;height:14px;flex:none}
.psra-mega__all{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--psra-ink-2);text-decoration:none;padding:6px 10px;border-radius:999px;transition:background .15s ease,color .15s ease,gap .15s ease}
.psra-mega__all:hover{background:var(--psra-primary-soft);color:var(--psra-primary-d);gap:9px}

.psra-mega__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.psra-mega__cat{display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:14px;text-decoration:none;border:1px solid transparent;opacity:0;transition:background .18s ease,border-color .18s ease,box-shadow .2s ease,transform .26s cubic-bezier(.16,1,.3,1),opacity .32s ease}
.psra-mega__cat:hover{background:var(--psra-primary-soft);border-color:var(--psra-primary-100);box-shadow:0 16px 30px -18px rgba(130,98,12,.42);transform:translateY(-2px)}
.psra-mega__ico{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:44px;height:44px;border-radius:13px;background:var(--psra-primary-soft);border:1px solid var(--psra-primary-100);color:var(--psra-primary-d);transition:background .18s ease,color .18s ease,border-color .18s ease,transform .2s ease,box-shadow .2s ease}
.psra-mega__ico svg{width:21px;height:21px}
.psra-mega__cat:hover .psra-mega__ico{background:var(--psra-primary);border-color:transparent;color:#fff;transform:scale(1.06);box-shadow:0 10px 20px -10px color-mix(in srgb, var(--psra-primary) 80%, transparent)}
.psra-mega__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.psra-mega__name{font-size:14px;font-weight:700;color:var(--psra-ink);line-height:1.25;letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.psra-mega__count{font-size:11.5px;font-weight:600;color:var(--psra-muted)}
.psra-mega__go{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;color:var(--psra-faint);opacity:0;transform:translateX(-5px);transition:opacity .18s ease,transform .18s ease,color .18s ease}
.psra-mega__cat:hover .psra-mega__go{opacity:1;transform:translateX(0);color:var(--psra-primary)}

.psra-mega__aside{background:var(--psra-primary-dd);padding:22px 20px;display:flex;flex-direction:column;gap:18px;position:relative;overflow:hidden}
.psra-mega__aside::before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:transparent;top:-120px;right:-80px;pointer-events:none}
.psra-mega__promo{position:relative;z-index:1}
.psra-mega__ptag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--psra-primary)}
.psra-mega__ptitle{margin:10px 0 16px;font-family:var(--psra-font);font-size:16.5px;font-weight:800;line-height:1.3;color:#fff}
.psra-mega__cta{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:999px;background:var(--psra-accent);color:var(--psra-ink);font-size:13px;font-weight:800;text-decoration:none;box-shadow:0 12px 26px -12px color-mix(in srgb, var(--psra-accent) 80%, transparent);transition:transform .15s ease,box-shadow .2s ease,gap .15s ease}
.psra-mega__cta:hover{transform:translateY(-2px);gap:10px;box-shadow:0 18px 34px -14px color-mix(in srgb, var(--psra-accent) 90%, transparent)}
.psra-mega__depts{position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.12);padding-top:16px}
.psra-mega__dlabel{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:10px}
.psra-mega__chips{display:flex;flex-wrap:wrap;gap:6px}
.psra-mega__chip{display:inline-flex;align-items:center;padding:6px 11px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.85);font-size:12px;font-weight:600;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}
.psra-mega__chip:hover{background:var(--psra-primary);border-color:transparent;color:#fff}

@media(max-width:980px){.psra-mega,.psra-navlink--dd{display:none}}

/* ============================================================
 *  TOP UTILITY BAR
 * ========================================================== */
.psra-topbar{position:relative;overflow:hidden;background:var(--psra-primary-dd);color:#e8e8e8 !important;font-size:12.5px;border-bottom:1px solid var(--psra-primary-soft)}
.psra-topbar::before{content:"";position:absolute;inset:0;pointer-events:none;background:color-mix(in srgb, var(--psra-primary-dd) 13%, transparent)}
.psra-topbar::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:transparent}
.psra-topbar__in{position:relative;z-index:1;max-width:1140px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;min-height:42px}
.psra-topbar__group{display:flex;align-items:center;gap:18px}
.psra-topbar__item{display:inline-flex;align-items:center;gap:7px;color:#dcdcdc !important;text-decoration:none;font-weight:500;transition:color .15s ease}
.psra-topbar__item:hover{color:var(--psra-primary-100) !important}
.psra-topbar__item svg,.psra-topbar__ico{color:var(--psra-primary-100) !important;flex:none;width:14px;height:14px}
.psra-topbar__tag{display:inline-flex;align-items:center;gap:7px;color:#cfcfcf !important;font-weight:600;letter-spacing:.01em}
.psra-topbar__tag svg{color:var(--psra-primary-100) !important;flex:none}
.psra-topbar__social{display:inline-flex;align-items:center;gap:6px;padding-left:14px;margin-left:2px;border-left:1px solid rgba(255,255,255,.16)}
.psra-topbar__social a{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;color:#dcdcdc !important;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);transition:background .15s ease,color .15s ease,transform .15s ease,border-color .15s ease}
.psra-topbar__social a:hover{background:var(--psra-primary);border-color:transparent;color:#fff !important;transform:translateY(-1px)}
.psra-topbar__social svg{width:14px;height:14px}
@media (max-width:820px){.psra-topbar__tag{display:none}}
@media (max-width:600px){.psra-topbar{display:none}}

/* kill theme button/link hover bleed on nav (no pink rectangles) */
.psra-nav .psra-navlink,
.psra-nav .psra-navlink:hover,
.psra-nav .psra-navlink:focus,
.psra-nav .psra-navlink:active,
.psra-navlink--dd,
.psra-navlink--dd:hover,
.psra-navlink--dd:focus,
.psra-navlink--dd:active,
.psra-navlink--dd:focus-visible{background:transparent !important;background-color:transparent !important;box-shadow:none !important;border:0 !important}
.psra-navlink--dd{-webkit-appearance:none;appearance:none;outline:none}
.psra-navlink--dd:focus-visible{outline:2px solid var(--psra-primary-d) !important;outline-offset:3px}
.psra-mega__go svg{width:16px;height:16px}
/* ===== announcement bar (site-wide promo) ===== */
.psra-annbar{position:relative;z-index:201;background:var(--psra-primary-dd);border-bottom:1px solid var(--psra-primary-100)}
.psra-annbar.is-dismissed{display:none}
.psra-annbar__inner{max-width:1180px;margin:0 auto;min-height:42px;display:flex;align-items:center;justify-content:center;gap:14px;padding:7px 46px 7px 18px;position:relative}
.psra-annbar__txt{display:inline-flex;align-items:center;gap:9px;min-width:0;font-size:13.5px;font-weight:600;color:#e6e6e6;line-height:1.35;text-align:center}
.psra-annbar__txt svg{color:var(--psra-primary-100);flex:none}
.psra-annbar__txt strong{color:var(--psra-primary-100);font-weight:800;white-space:nowrap}
.psra-annbar__cta{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:13px;font-weight:800;color:var(--psra-primary);background:var(--psra-primary-100);padding:7px 15px;border-radius:999px;text-decoration:none;white-space:nowrap;box-shadow:0 8px 18px -10px color-mix(in srgb, var(--psra-accent) 60%, transparent);transition:transform .18s ease,filter .18s ease}
.psra-annbar__cta:hover{transform:translateY(-1px);filter:brightness(1.05)}
.psra-annbar__cta svg{flex:none;transition:transform .2s ease}
.psra-annbar__cta:hover svg{transform:translateX(2px)}
.psra-annbar__close{position:absolute;right:11px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#d7d7d7;border-radius:50%;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .25s cubic-bezier(.2,.8,.2,1)}
.psra-annbar__close:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.28);color:#fff;transform:translateY(-50%) rotate(90deg)}
.psra-annbar__close:active{transform:translateY(-50%) rotate(90deg) scale(.92)}
.psra-annbar__close svg{width:13px;height:13px;display:block}
@media (max-width:680px){
  .psra-annbar__inner{min-height:40px;padding:6px 38px 6px 14px;gap:9px}
  .psra-annbar__txt{font-size:11.5px;gap:7px;flex-wrap:wrap;justify-content:center}
  .psra-annbar__txt svg{display:none}
  .psra-annbar__cta{font-size:11px;padding:5px 11px}
}
/* ===== premium mega-menu open polish ===== */
.psra-has-mega.is-open .psra-mega__cat{opacity:1}
.psra-has-mega.is-open .psra-mega__cat:nth-child(1){transition-delay:.04s}
.psra-has-mega.is-open .psra-mega__cat:nth-child(2){transition-delay:.07s}
.psra-has-mega.is-open .psra-mega__cat:nth-child(3){transition-delay:.10s}
.psra-has-mega.is-open .psra-mega__cat:nth-child(4){transition-delay:.13s}
.psra-has-mega.is-open .psra-mega__cat:nth-child(5){transition-delay:.16s}
.psra-has-mega.is-open .psra-mega__cat:nth-child(6){transition-delay:.19s}
.psra-has-mega.is-open .psra-mega__cat:nth-child(7){transition-delay:.22s}
.psra-has-mega.is-open .psra-mega__cat:nth-child(8){transition-delay:.25s}
.psra-has-mega.is-open .psra-mega__cat:nth-child(9){transition-delay:.28s}
.psra-has-mega.is-open .psra-mega__cat:nth-child(10){transition-delay:.31s}
.psra-has-mega.is-open .psra-mega__cat:nth-child(n+11){transition-delay:.34s}
.psra-mega__aside::after{content:"";position:absolute;inset:0;
  background-image:none;background-size:17px 17px;-webkit-mask-image:radial-gradient(150px 130px at 82% 102%,#000,transparent 72%);mask-image:radial-gradient(150px 130px at 82% 102%,#000,transparent 72%);opacity:.7;pointer-events:none}
@media (prefers-reduced-motion:reduce){
  .psra-mega{transition:opacity .2s ease,visibility .2s ease;transform:translateX(-50%) scale(1)}
  .psra-has-mega.is-open .psra-mega{transform:translateX(-50%) scale(1)}
  .psra-mega__cat{opacity:1;transition:background .18s ease,border-color .18s ease,box-shadow .2s ease}
  .psra-has-mega.is-open .psra-mega__cat{transition-delay:0s !important}
}
/* mega footer — department quick-links + directory CTA */
.psra-mega__foot{margin-top:18px;padding-top:16px;border-top:1px solid var(--psra-primary-soft);display:flex;align-items:center;justify-content:space-between;gap:14px 20px;flex-wrap:wrap}
.psra-mega__deptwrap{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0}
.psra-mega__flabel{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--psra-muted);flex:none}
.psra-mega__fchips{display:flex;flex-wrap:wrap;gap:6px}
.psra-mega__fchip{font-size:12px;font-weight:600;color:var(--psra-ink-2);background:var(--psra-primary-soft);border:1px solid var(--psra-line);border-radius:999px;padding:5px 11px;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}
.psra-mega__fchip:hover{background:var(--psra-primary-soft);border-color:var(--psra-primary-100);color:var(--psra-primary-d)}
.psra-mega__fcta{display:inline-flex;align-items:center;gap:7px;flex:none;font-size:13px;font-weight:800;color:var(--psra-primary-d);background:#fff;border:1px solid var(--psra-primary-100);border-radius:999px;padding:9px 16px;text-decoration:none;white-space:nowrap;transition:background .15s ease,box-shadow .2s ease,gap .15s ease,color .15s ease}
.psra-mega__fcta svg{flex:none}
.psra-mega__fcta:hover{background:var(--psra-primary);color:#fff;box-shadow:0 12px 26px -12px color-mix(in srgb, var(--psra-primary) 80%, transparent);gap:10px}
@media (max-width:560px){.psra-mega__foot{flex-direction:column;align-items:flex-start}.psra-mega__fcta{width:100%;justify-content:center}}
/* ---- Header CTA: the longer French label fits at every width ---- */
.psra-bar,.psra-nav{min-width:0}
.psra-bar__actions{flex:none}
/* ============================================================================
 *  HEADER — LONG (FRENCH) LABELS
 * ----------------------------------------------------------------------------
 *  French labels are much longer than English ones ("Développer mon activité"
 *  versus "Grow my business", "Comment ça marche" versus "How it works"). With
 *  1fr auto 1fr columns, the actions column got the same share as the logo: it
 *  spilled over the navigation, which in turn spilled over the logo.
 *
 *  The logo and the actions now take their natural width; only the navigation
 *  compresses. When even compressed it no longer fits, the header switches to
 *  the burger menu rather than letting elements overlap.
 * ========================================================================== */
.psra-bar > *{min-width:0}
.psra-logo,.psra-bar__actions{flex:none;white-space:nowrap}
.psra-nav{ flex-wrap:nowrap; row-gap:6px }

/* Below this width the French navigation no longer fits without a risk of
   overlap, so the header switches to the burger menu, which already holds
   exactly the same links. The margin is deliberately wide: a menu folded a
   little early is better than a header that overlaps. */
/* The drawer takes over before the row has to be crushed to fit. */


/* ---- the training panel ------------------------------------------------- */
/* Seven categories rather than the directory's longer list, so the panel sits
   narrower and the tiles keep a comfortable width. */
.psra-mega--acad{ width:min(600px, calc(100vw - 32px)) }
.psra-mega--acad .psra-mega__grid{ grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) }
.psra-drawer__n{
  margin-left:6px; padding:1px 7px; border-radius:999px;
  font-size:11.4px; font-variant-numeric:tabular-nums;
  background:var(--psra-primary-soft); color:var(--psra-primary);
}


/* ---- the personal column in the training panel -------------------------- */
.psra-mega--acad .psra-mega__inner{ grid-template-columns:minmax(0,2.1fr) minmax(0,1fr) }
.psra-mega__acadme{
  padding-left:clamp(18px,2.4vw,32px);
  border-left:1px solid var(--psra-line);
  display:flex; flex-direction:column; gap:10px;
}
.psra-mega__resume{
  display:grid; gap:3px; padding:13px 15px; text-decoration:none;
  background:var(--psra-primary-soft);
  border:1px solid var(--psra-primary-100);
  border-radius:var(--psra-radius,12px);
  transition:border-color .2s ease;
}
.psra-mega__resume:hover{ border-color:var(--psra-primary) }
.psra-mega__resume-lbl{
  font-size:10.5px; font-weight:750; letter-spacing:.1em; text-transform:uppercase;
  color:var(--psra-accent);
}
.psra-mega__resume-t{ font-size:14px; font-weight:700; color:var(--psra-ink); line-height:1.35 }
.psra-mega__resume-p{ font-size:12px; font-weight:700; color:var(--psra-primary); font-variant-numeric:tabular-nums }
.psra-mega__mine{
  display:inline-flex; align-items:center; justify-content:center;
  padding:11px 16px; border-radius:999px; text-decoration:none;
  font-size:13.5px; font-weight:700; color:var(--psra-primary);
  border:1.5px solid var(--psra-primary-100);
  transition:background-color .2s ease, border-color .2s ease;
}
.psra-mega__mine:hover{ background:var(--psra-primary-soft); border-color:var(--psra-primary) }

@media (max-width:900px){
  .psra-mega--acad .psra-mega__inner{ grid-template-columns:1fr }
  .psra-mega__acadme{ padding-left:0; border-left:0; border-top:1px solid var(--psra-line); padding-top:16px }
}


/* The login keeps its icon and loses its word where the row is tight. It is
   the secondary action of the two, and the navigation should not shrink first. */
.psra-actions__login{ display:inline-flex; align-items:center; gap:7px }



/* ---- mobile header ---------------------------------------------------------
   The language is chosen on arrival, before there is any reason to open a
   menu, so it moves up into the bar. */
@media (max-width:920px){

  .psra-bar{ gap:8px; padding:9px 12px }

  /* It takes its place back but has to earn it: the globe disappears, the
     pill tightens, and the two buttons become a single switch sized for a
     thumb rather than a cursor. */
  .psra-bar__actions .psra-lang{
    display:inline-flex !important;
    padding:3px !important; gap:2px;
    background:var(--psra-bg-soft); border:1px solid var(--psra-line);
    border-radius:999px !important;
  }
  .psra-bar__actions .psra-lang__globe{ display:none !important }
  .psra-bar__actions .psra-lang__btn{
    min-width:40px; min-height:34px; padding:0 !important;
    font-size:12.4px; font-weight:700; letter-spacing:.04em;
    display:inline-flex; align-items:center; justify-content:center;
  }
  .psra-bar__actions .psra-lang__btn[aria-pressed="true"]{
    background:var(--psra-ink); color:var(--psra-bg); box-shadow:none;
  }

  /* L'ordre visuel : marque, langue, menu. */
  .psra-bar__actions{ display:flex; align-items:center; gap:8px; margin-left:auto }
  .psra-bar__actions .psra-actions__login{ display:none }
  .psra-header .psra-burger{
    width:42px; height:42px; border-radius:12px;
    border:1px solid var(--psra-line); background:var(--psra-bg);
    color:var(--psra-ink);
  }
  .psra-header .psra-burger:active{ background:var(--psra-bg-soft) }
}

/* On very narrow screens the switch cannot stay full size without
   squeezing the logo. */
@media (max-width:380px){
  .psra-bar__actions .psra-lang__btn{ min-width:34px; font-size:11.6px }
  .psra-logo__txt span{ display:none }
}

/* ---- the drawer -------------------------------------------------------------
   It used to be a list of rows tinted on hover, which is a desktop idea:
   there is no hover on a phone. */
.psra-drawer{ width:min(400px,90vw) }
.psra-drawer__head{ padding:16px 20px }

.psra-drawer__nav{ padding:8px 0 4px; gap:0 }
.psra-drawer__nav>a,
.psra-drawer__acc{
  padding:15px 20px; border-radius:0; gap:12px;
  font-size:15.6px; font-weight:550; letter-spacing:-.005em;
  color:var(--psra-ink); border-bottom:1px solid var(--psra-line-2);
  min-height:52px;
}
.psra-drawer__nav>a:last-of-type{ border-bottom:0 }
.psra-drawer__nav>a:active,
.psra-drawer__acc:active{ background:var(--psra-bg-soft) }

/* The current page is marked with a bar, readable without relying on
   colour alone. */
.psra-drawer__nav>a[aria-current="page"],
.psra-drawer__nav>a.is-active{
  font-weight:680; box-shadow:inset 3px 0 0 var(--psra-ink);
}

.psra-drawer__grp[open]>.psra-drawer__acc{
  font-weight:680; color:var(--psra-ink); border-bottom-color:transparent;
}
.psra-drawer__acc svg{ color:var(--psra-faint) }
.psra-drawer__grp[open]>.psra-drawer__acc svg{ color:var(--psra-ink) }

/* On a short phone an open category list pushed the login buttons off
   screen. It now scrolls inside its own frame. */
.psra-drawer__sub{
  padding:2px 0 10px; margin:0 20px 6px; gap:0;
  border-left:2px solid var(--psra-line);
  max-height:min(46vh,340px); overflow-y:auto; -webkit-overflow-scrolling:touch;
}
.psra-drawer__sub a{
  padding:12px 16px; border-radius:0; font-size:14.6px; min-height:46px;
  display:flex; align-items:center; color:var(--psra-ink-2);
}
.psra-drawer__sub a:active{ background:var(--psra-bg-soft); color:var(--psra-ink) }
.psra-drawer__suball{
  color:var(--psra-ink) !important; font-weight:650 !important;
  border-top:1px solid var(--psra-line-2); margin-top:4px;
}

/* The footer keeps the actions; the language is in the bar, not here. */
.psra-drawer__lang{ display:none }
.psra-drawer__foot{ padding:16px 20px calc(16px + env(safe-area-inset-bottom,0px)) }
.psra-drawer__foot .psra-btn{ min-height:48px; font-size:15px }

.psra-drawer__n{
  background:var(--psra-bg-2); color:var(--psra-muted);
  font-weight:600; letter-spacing:0;
}

/* ---- Nexora pill: outranks the "no theme bleed" reset above (specificity 0,3,0 + !important) ---- */
.psra-nav .psra-navlink.psra-navlink--nexora,
.psra-nav .psra-navlink.psra-navlink--nexora:hover,
.psra-nav .psra-navlink.psra-navlink--nexora:focus,
.psra-nav .psra-navlink.psra-navlink--nexora:active{background:linear-gradient(135deg,var(--psra-navy,#1a3f8f),var(--psra-navy-d,#16306b)) !important;color:#fff !important;box-shadow:0 8px 18px -10px rgba(26,63,143,.7) !important}
.psra-nav .psra-navlink--nexora{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;margin-left:6px;border-radius:999px;font-weight:700}
.psra-nav .psra-navlink--nexora::after{display:none}
.psra-nav .psra-navlink--nexora svg{flex:none}
.psra-nav .psra-navlink--nexora:hover{filter:brightness(1.1)}
.psra-nav .psra-navlink--nexora.is-active{box-shadow:0 0 0 3px var(--psra-primary-100,#e9eefb),0 8px 18px -10px rgba(26,63,143,.7) !important}

/* ---- Ressources: a narrow list panel on the shared dropdown mechanism ---- */
.psra-mega--list{width:304px;padding:8px}
.psra-mega__item{display:flex;align-items:flex-start;gap:11px;padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--psra-ink-2);transition:background .14s ease,color .14s ease}
.psra-mega__item:hover,.psra-mega__item.is-active{background:var(--psra-primary-soft);color:var(--psra-primary-d)}
.psra-mega__item>svg{flex:none;margin-top:2px;color:var(--psra-primary-d)}
.psra-mega__ibody{display:flex;flex-direction:column;gap:2px;min-width:0}
.psra-mega__iname{font-size:14.5px;font-weight:700;color:var(--psra-ink);line-height:1.3}
.psra-mega__item:hover .psra-mega__iname,.psra-mega__item.is-active .psra-mega__iname{color:var(--psra-primary-d)}
.psra-mega__isub{font-size:12.5px;color:var(--psra-muted);line-height:1.35}

/* ---- Fit stages, set by the inline script in the header markup ---- */
.psra-header.is-tight .psra-bar{gap:8px}
.psra-header.is-tight .psra-navlink{padding:8px 9px;font-size:14px}
.psra-header.is-tight .psra-navlink::after{left:9px;right:9px}
.psra-header.is-tight .psra-nav .psra-navlink--nexora{padding:7px 11px;margin-left:4px}
.psra-header.is-tight .psra-actions__login-txt{display:none}
.psra-header.is-tight .psra-actions__login{padding-left:12px;padding-right:12px}
.psra-header.is-tight .psra-lang__globe{display:none}
.psra-header.is-tight .psra-lang{padding-left:6px}
.psra-header.is-tight .psra-bar__actions{gap:6px}
.psra-header.is-tight .psra-bar .psra-cta{padding:0 16px !important;font-size:14px}
.psra-header.is-tighter .psra-navlink{padding:7px 7px;font-size:13.5px}
.psra-header.is-tighter .psra-navlink::after{left:7px;right:7px}
.psra-header.is-tighter .psra-nav .psra-navlink--nexora{padding:6px 10px;font-size:13.5px;margin-left:2px}
.psra-header.is-tighter .psra-bar .psra-cta{padding:0 13px !important;font-size:13px;height:42px !important}
.psra-header.is-tighter .psra-bar .psra-cta svg{display:none !important}
.psra-header.is-tighter .psra-usermenu__name{max-width:96px}
.psra-header.is-tighter .psra-logo{max-width:200px}
.psra-logo__img{max-width:100% !important}
.psra-header.is-tightest .psra-bar{gap:6px}
.psra-header.is-tightest .psra-navlink{padding:7px 6px;font-size:13px}
.psra-header.is-tightest .psra-navlink::after{left:6px;right:6px}
.psra-header.is-tightest .psra-nav .psra-navlink--nexora{padding:6px 9px;font-size:13px;margin-left:0}
.psra-header.is-tightest .psra-nav .psra-navlink--nexora svg{display:none}
.psra-header.is-tightest .psra-logo{max-width:170px}
.psra-header.is-tightest .psra-lang{padding:2px !important;gap:1px !important}
.psra-header.is-tightest .psra-lang__btn{padding:4px 7px;min-width:0}
.psra-header.is-tightest .psra-bar .psra-cta{padding:0 11px !important}
.psra-header.is-collapsed .psra-nav{display:none}
.psra-header.is-collapsed .psra-burger{display:inline-flex !important}
/* Floor without script: below this even the tightest row cannot hold seven links. */
@media (max-width:1100px){
  .psra-nav{display:none}
  .psra-header .psra-burger{display:inline-flex !important}
}

/* ---------------------------------------------------------------------------
 *  "Explorer l'annuaire" — readability on hover
 *
 *  The button goes from a white to a near-black background on hover. The text
 *  colour was declared white, but the theme applies its own hover colours to
 *  links and took over: dark grey on a black background. The rule is therefore
 *  given priority, and it also targets the <span> and the icon, which no longer
 *  inherit once the theme colours them directly.
 *
 *  Resulting contrast: white on #1a1a1a = 17.4:1.
 * ------------------------------------------------------------------------- */
.psra-mega__fcta:hover,
.psra-mega__fcta:focus-visible,
.psra-mega__fcta:active,
.psra-mega__fcta:hover span,
.psra-mega__fcta:focus-visible span,
.psra-mega__fcta:active span,
.psra-mega__fcta:hover svg,
.psra-mega__fcta:focus-visible svg,
.psra-mega__fcta:active svg{
	color:#fff !important;
	-webkit-text-fill-color:#fff;
}
.psra-mega__fcta:hover,
.psra-mega__fcta:focus-visible,
.psra-mega__fcta:active{
	background:var(--psra-primary,#1a1a1a) !important;
	border-color:var(--psra-primary,#1a1a1a) !important;
}
/* At rest, the text stays dark on the button's white background. */
.psra-mega__fcta span,
.psra-mega__fcta svg{color:inherit}

/* =====================================================================
 *  TRAINING MEGA-MENU — layout and finish
 *
 *  The panel declared two fixed columns (2.1fr / 1fr). The second one,
 *  "Mes formations", is only rendered for a logged-in visitor: for everyone
 *  else — the majority — the grid kept an empty column and the categories
 *  were squeezed into two thirds of the panel.
 *
 *  :has() handles this cleanly where the browser supports it, and the
 *  default rule puts the panel in a single column, so two columns come back
 *  only when the second one really exists.
 * ===================================================================== */
.psra-mega--acad .psra-mega__inner{grid-template-columns:1fr}
.psra-mega--acad .psra-mega__inner:has(.psra-mega__acadme){
	grid-template-columns:minmax(0,2.05fr) minmax(0,1fr);
}
/* Without :has() the panel stays in one column: the "Mes formations"
   column then sits under the categories, which is still correct. */
.psra-mega--acad{width:min(640px,calc(100vw - 32px))}

/* ---- colonne « Mes formations » ---- */
.psra-mega__acadme{
	padding:20px clamp(16px,2vw,22px);
	border-left:1px solid var(--psra-line);
	background:linear-gradient(180deg,var(--psra-bg-soft,#f8f8f8),var(--psra-bg,#fff));
	display:flex;flex-direction:column;gap:12px;
}
.psra-mega__acadme::before{
	content:"Mon parcours";
	font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
	color:var(--psra-muted,#6e6e6e);
}
/* The button sits at the bottom of the column, not against the title. */
.psra-mega__mine{
	margin-top:auto;
	background:var(--psra-primary,#1a1a1a);border:1.5px solid var(--psra-primary,#1a1a1a);
	color:#fff;box-shadow:0 8px 18px -10px rgba(0,0,0,.55);
	transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.psra-mega__mine:hover{
	background:var(--psra-primary-d,#0f0f0f);border-color:var(--psra-primary-d,#0f0f0f);
	color:#fff;transform:translateY(-1px);box-shadow:0 12px 24px -10px rgba(0,0,0,.7);
}
/* The theme applies its own colours to links and took over this button:
   the rule is given priority, on the link and on its text. */
.psra-mega__mine,
.psra-mega__mine:hover,
.psra-mega__mine:focus-visible,
.psra-mega__mine:active,
.psra-mega__mine span,
.psra-mega__mine:hover span{color:#fff !important;-webkit-text-fill-color:#fff}
/* ---- carte « Reprendre » ---- */
.psra-mega__resume{
	position:relative;overflow:hidden;
	background:var(--psra-bg,#fff);border:1px solid var(--psra-line);
	border-radius:14px;padding:14px 15px 15px;
	box-shadow:0 2px 6px rgba(0,0,0,.05);
	transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.psra-mega__resume:hover{border-color:var(--psra-primary);box-shadow:0 10px 22px -14px rgba(0,0,0,.45);transform:translateY(-1px)}
.psra-mega__resume-lbl{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--psra-muted,#6e6e6e)}
.psra-mega__resume-t{font-size:14px;font-weight:700;color:var(--psra-ink,#161616);line-height:1.35}
.psra-mega__resume-p{
	display:inline-block;margin-top:2px;font-size:12px;font-weight:800;color:var(--psra-primary,#1a1a1a);
}
/* progress bar, driven by the displayed percentage */
.psra-mega__resume::after{
	content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
	background:linear-gradient(90deg,var(--psra-primary,#1a1a1a),var(--psra-ink-2,#3a3a3a));
	transform:scaleX(var(--pct,.35));transform-origin:left;
}

/* ---- cartes de catégories : plus lisibles ---- */
.psra-mega--acad .psra-mega__grid{grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:6px}
.psra-mega__cat{border:1px solid transparent;border-radius:12px;padding:10px 11px;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.psra-mega__cat:hover{transform:none;box-shadow:none;background:var(--psra-bg-soft,#f8f8f8);border-color:var(--psra-line)}
.psra-mega__count{font-size:11.5px;color:var(--psra-muted,#6e6e6e)}

@media (max-width:860px){
	.psra-mega--acad .psra-mega__inner:has(.psra-mega__acadme){grid-template-columns:1fr}
	.psra-mega__acadme{border-left:0;border-top:1px solid var(--psra-line);background:var(--psra-bg-soft,#f8f8f8)}
	.psra-mega__mine{margin-top:4px}
}
@media (prefers-reduced-motion:reduce){
	.psra-mega__mine,.psra-mega__resume,.psra-mega__cat{transition:none}
}

/* =====================================================================
 *  MOBILE DRAWER — [hidden] must really hide
 *
 *  [hidden] only sets display:none in the browser's own stylesheet, and any
 *  author display declaration overrides it whatever the specificity. The
 *  drawer sections are <details> elements and no longer use [hidden]; this
 *  rule stays as a guard for any markup that still does.
 * ===================================================================== */
.psra-drawer[hidden],
.psra-drawer__sub[hidden]{display:none !important}

/* Soft opening rather than an abrupt appearance */
.psra-drawer__grp[open]>.psra-drawer__sub{animation:psra-dr-open .26s cubic-bezier(.2,.8,.2,1)}
@keyframes psra-dr-open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* The arrow shows the state */
.psra-drawer__acc svg{transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.psra-drawer__grp[open]>.psra-drawer__acc svg{transform:rotate(180deg)}

@media (prefers-reduced-motion:reduce){
	.psra-drawer__grp[open]>.psra-drawer__sub{animation:none}
	.psra-drawer__acc svg{transition:none}
}

/* Phones: the FR/EN toggle was 34px tall - below a comfortable tap size. */
@media (max-width:700px){
	.psra-lang__btn{min-height:40px}
}
@media (max-width:700px){
	/* matches the specificity of the existing (max-width:920px) rule */
	.psra-bar__actions .psra-lang__btn{min-height:40px}
}

/* ============================================================================
 *  MOBILE MENU WITHOUT JAVASCRIPT
 *
 *  The burger is a link to #psra-drawer and each section is a <details>, so
 *  the menu opens, expands and closes from HTML and CSS alone. Page optimisers
 *  can hold scripts back until the visitor's first touch; the menu does not
 *  wait for them. When the script runs it handles the clicks itself and the
 *  address bar is left untouched.
 * ========================================================================== */
.psra-header a.psra-burger,.psra-header a.psra-burger:hover,.psra-header a.psra-burger:focus{text-decoration:none}
a.psra-drawer__close{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:inherit}
/* Closed: off screen, and out of reach of the Tab key and screen readers. */
.psra-drawer{visibility:hidden;transition:transform .3s cubic-bezier(.4,0,.2,1),visibility 0s linear .3s}
.psra-drawer.is-open,.psra-drawer:target{visibility:visible;transition:transform .3s cubic-bezier(.4,0,.2,1),visibility 0s}
.psra-drawer:focus{outline:none}
/* The backdrop is a link that closes the menu; inert while the menu is closed. */
a.psra-drawer-backdrop{display:block;visibility:hidden;pointer-events:none;text-decoration:none;cursor:default;-webkit-tap-highlight-color:transparent;transition:opacity .28s ease,visibility 0s linear .28s}
a.psra-drawer-backdrop.is-open,.psra-drawer:target~a.psra-drawer-backdrop{visibility:visible;pointer-events:auto;transition:opacity .28s ease,visibility 0s}
html:has(#psra-drawer:target){overflow:hidden}
/* Sections */
.psra-drawer__grp{display:block;margin:0;padding:0;border:0}
summary.psra-drawer__acc{list-style:none;-webkit-tap-highlight-color:transparent}
summary.psra-drawer__acc::-webkit-details-marker{display:none}
summary.psra-drawer__acc::marker{content:""}
/* While the menu is open, nothing floats above it: the chat button, the
   mobile sign-up bar and the cookie banner step aside, and come back as soon
   as the menu closes (the cookie choice is still asked, just not on top of
   the navigation). */
html:has(#psra-drawer.is-open) .psra-bot,html:has(#psra-drawer:target) .psra-bot,
html:has(#psra-drawer.is-open) .psra-mcta,html:has(#psra-drawer:target) .psra-mcta,
html:has(#psra-drawer.is-open) .psra-cookie,html:has(#psra-drawer:target) .psra-cookie{visibility:hidden !important;pointer-events:none !important}
@media (prefers-reduced-motion:reduce){
	.psra-drawer,.psra-drawer.is-open,.psra-drawer:target,a.psra-drawer-backdrop,a.psra-drawer-backdrop.is-open,.psra-drawer:target~a.psra-drawer-backdrop{transition:none}
}
@media (min-width:1081px){body .psra-bar .psra-nav{display:flex !important}body .psra-header .psra-burger{display:none !important}}
/* psra-footer */
/* ===== FOOTER SHELL ===== */
.psra-footer{position:relative;margin-top:88px;color:#cacaca;isolation:isolate;
  background:var(--psra-primary-dd);
  padding:60px 0 30px}
.psra-footer::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:none;background-size:28px 28px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 55%);mask-image:linear-gradient(180deg,#000,transparent 55%)}
.psra-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:transparent}
.psra-footer a{color:#cacaca;text-decoration:none}
.psra-footer a:hover{color:#fff}

/* ===== NEWSLETTER BAND ===== */
.psra-newsband{display:grid;grid-template-columns:1.1fr 1fr;gap:38px;align-items:center;
  background:var(--psra-primary-dd,var(--psra-primary-d));
  border:1px solid rgba(255,255,255,.14);border-radius:var(--psra-radius-lg);padding:38px 40px;margin-bottom:60px;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.12);position:relative;overflow:hidden}
.psra-newsband::after{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:transparent;pointer-events:none}
.psra-newsband__badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--psra-ink);background:rgba(255,255,255,.18);border-radius:999px;padding:5px 12px;margin-bottom:13px}
.psra-newsband__title{margin:0 0 8px;font-size:clamp(21px,2.4vw,27px);font-weight:800;letter-spacing:-.5px;color:#fff;line-height:1.15}
.psra-newsband__sub{margin:0;font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.88);max-width:440px}
.psra-news__row{display:flex;gap:10px}
.psra-news__field{position:relative;flex:1;min-width:0}
.psra-news__icon{display:none}
.psra-news__input{width:100%;min-width:0;font-family:var(--psra-font);font-size:15px;color:var(--psra-ink);
  background:var(--psra-bg,#fff);border:1.5px solid transparent;border-radius:var(--psra-radius-pill);padding:15px 22px;outline:none;
  box-shadow:0 12px 30px -16px rgba(0,0,0,.45);transition:box-shadow .2s ease}
.psra-news__input::placeholder{color:var(--psra-faint,#9e9e9e)}
.psra-news__input:focus{box-shadow:0 0 0 4px rgba(255,255,255,.3)}
.psra-news__btn{flex:none;position:relative;overflow:hidden;border:none;border-radius:var(--psra-radius-pill);background:var(--psra-primary);color:#fff;
  box-shadow:0 12px 26px -12px rgba(0,0,0,.6);transition:transform .18s ease,background .18s ease}
.psra-news__btn:hover{transform:translateY(-1px);background:#B8901F}
.psra-news__btn::before{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;background:transparent;transform:skewX(-20deg);transition:left .6s ease;pointer-events:none}
.psra-news__btn:hover::before{left:160%}
.psra-news__msg{margin:10px 2px 0;font-size:13px;min-height:0;line-height:1.5}
.psra-news__msg.is-ok{color:#86efac}
.psra-news__msg.is-err{color:#fecaca}
.psra-news.is-loading .psra-news__btn{opacity:.85;pointer-events:none}
.psra-news__note{display:flex;align-items:center;gap:6px;margin:10px 2px 0;font-size:12px;color:rgba(255,255,255,.7)}

/* ===== MAIN ===== */
.psra-footer__main{display:grid;grid-template-columns:1.3fr 2.7fr;gap:48px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.psra-footer__logo{display:inline-flex;align-items:center;gap:11px;text-decoration:none}
.psra-footer__logo img{height:56px;width:auto;max-width:280px}
.psra-footer__mark{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;color:var(--psra-primary-100);font-weight:800;font-size:21px;overflow:hidden;
  background:var(--psra-primary-dd);box-shadow:0 10px 26px -8px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.38),inset 0 0 0 1px rgba(255,255,255,.08)}
.psra-footer__name{font-size:18px;color:#fff;font-weight:700;letter-spacing:-.3px}
.psra-footer__name strong{font-weight:800}
.psra-footer__tag{margin:16px 0 16px;max-width:380px;font-size:14.5px;line-height:1.7;color:#a6a6a6}
.psra-footer__contact{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:#cacaca;margin-bottom:18px}
.psra-footer__contact:hover{color:#fff}
.psra-footer__social{display:flex;gap:10px}
.psra-footer__soc{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:13px;
  background:rgba(255,255,255,.06);color:#cacaca;border:1px solid rgba(255,255,255,.12);transition:background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}
.psra-footer__soc:hover{background:var(--psra-primary);color:#fff;border-color:transparent;transform:translateY(-2px);box-shadow:0 10px 22px -8px color-mix(in srgb, var(--psra-primary) 50%, transparent)}
.psra-footer__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:32px}
.psra-footer__h{position:relative;margin:0 0 17px;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#fff}
.psra-footer__h::after{content:"";display:block;width:26px;height:2px;border-radius:2px;margin-top:9px;background:var(--psra-primary)}
.psra-footer__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.psra-footer__col a{position:relative;display:inline-block;font-size:14.5px;color:#a6a6a6;transition:color .18s ease,padding .18s ease}
.psra-footer__col a::before{content:"\203A";position:absolute;left:0;opacity:0;color:var(--psra-primary);font-weight:700;transform:translateX(-4px);transition:opacity .18s ease,transform .18s ease}
.psra-footer__col a:hover{color:#fff;padding-left:14px}
.psra-footer__col a:hover::before{opacity:1;transform:translateX(0)}

/* ===== TRUST STRIP ===== */
.psra-footer__trust{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px 24px;padding:30px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.psra-ftrust{display:flex;align-items:center;gap:12px}
.psra-ftrust__ic{flex:none;width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:var(--psra-primary-100);background:rgba(26,26,26,.32);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.psra-ftrust>div{display:flex;flex-direction:column;line-height:1.3}
.psra-ftrust > div strong{font-size:14px;color:#fff;font-weight:700}
/* Scopée : sans le « > div », ce sélecteur visait aussi la pastille
   d'icône (un <span>) et l'emportait sur sa couleur propre. */
.psra-ftrust > div span{font-size:12.5px;color:#a6a6a6}

/* ===== BOTTOM ===== */
.psra-footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:24px}
.psra-footer__copy{margin:0;font-size:13.5px;color:#909090}
.psra-footer__legal{display:flex;gap:22px;flex-wrap:wrap;margin-left:auto}
.psra-footer__legal a{font-size:13.5px;color:#a6a6a6}
.psra-footer__legal a:hover{color:#fff}
.psra-footer__totop{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#fff;transition:background .18s ease,transform .18s ease}
.psra-footer__totop svg{transform:rotate(180deg)}
.psra-footer__totop:hover{background:var(--psra-primary);transform:translateY(-2px);color:#fff}

/* ===== RESPONSIVE ===== */
@media (max-width:980px){
  .psra-newsband{grid-template-columns:1fr;gap:22px;padding:28px}
  .psra-footer__main{grid-template-columns:1fr;gap:34px}
  .psra-footer__cols{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px 24px}
  .psra-footer__trust{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
}
@media (max-width:520px){
  .psra-footer{margin-top:56px;padding-top:44px}
  .psra-footer__cols{grid-template-columns:1fr;gap:26px}
  .psra-footer__trust{grid-template-columns:1fr;gap:16px}
  .psra-news__row{flex-direction:column}
  .psra-news__btn{width:100%}
  .psra-footer__bottom{flex-direction:column;align-items:flex-start;gap:14px}
  .psra-footer__legal{margin-left:0}
}
/* pre-footer CTA band */
.psra-fcta{position:relative;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.1);background:var(--psra-primary-d)}
.psra-fcta::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:transparent}
.psra-fcta__glow{position:absolute;right:-100px;bottom:-120px;width:360px;height:360px;border-radius:50%;background:transparent;pointer-events:none}
.psra-fcta__in{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:52px 24px;display:flex;align-items:center;justify-content:space-between;gap:30px 40px;flex-wrap:wrap}
.psra-fcta__text{min-width:0;flex:1 1 440px}
.psra-fcta__eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--psra-primary-100);margin-bottom:12px}
.psra-fcta__eyebrow svg{color:var(--psra-primary-100);flex:none}
.psra-fcta__title{margin:0 0 10px;font-size:clamp(24px,3.4vw,36px);font-weight:800;line-height:1.12;letter-spacing:-.8px;color:#fff}
.psra-fcta__sub{margin:0;font-size:15.5px;line-height:1.6;color:#c4c4c4;max-width:56ch}
.psra-fcta__trust{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:9px 20px}
.psra-fcta__trust li{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:#d8d8d8}
.psra-fcta__trust li svg{color:var(--psra-primary-100);flex:none}
.psra-fcta__actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;flex:none}
.psra-fcta__btn{white-space:nowrap}
.psra-fcta__sec{display:inline-flex;align-items:center;font-size:14.5px;font-weight:700;color:var(--psra-primary-100);text-decoration:none;transition:color .15s ease}
.psra-fcta__sec:hover{color:var(--psra-primary-100);text-decoration:underline}
@media (max-width:760px){.psra-fcta__in{padding:40px 22px;flex-direction:column;align-items:flex-start;gap:24px}.psra-fcta__actions{width:100%}}

/* ============================================================================
 *  THE FOOTER, ANIMATED
 * ----------------------------------------------------------------------------
 *  The one gradient on the site, here by request. It stays inside the blue
 *  family — darkest blue through blue and back — so the surface never stops
 *  reading as the brand colour, which is what a white or black stop would do.
 *
 *  The movement is a background-position shift on an oversized gradient, not a
 *  change of colour: the browser can composite that without repainting the
 *  footer's contents on every frame. Ninety seconds for one pass, which is slow
 *  enough to notice only if you look for it.
 * ========================================================================== */
.psra-footer{
  background:linear-gradient(
      125deg,
      var(--psra-primary-dd) 0%,
      var(--psra-primary-d)  22%,
      var(--psra-primary)    45%,
      var(--psra-primary-d)  70%,
      var(--psra-primary-dd) 100%
  );
  background-size:320% 320%;
  animation:psra-footer-drift 90s ease-in-out infinite;
}
@keyframes psra-footer-drift{
  0%   { background-position:0% 50% }
  50%  { background-position:100% 50% }
  100% { background-position:0% 50% }
}

/* The closing call to action sits on the same family, one step lighter, so the
   two read as one surface rather than two panels. */
.psra-fcta{
  background:linear-gradient(125deg, var(--psra-primary-d), var(--psra-primary));
  background-size:280% 280%;
  animation:psra-footer-drift 70s ease-in-out infinite reverse;
}

/* Off screen it costs nothing, and a visitor who has asked for stillness
   gets a plain surface rather than a slower one. */
@media (prefers-reduced-motion:reduce){
  .psra-footer, .psra-fcta{
    animation:none !important;
    background:var(--psra-primary-dd) !important;
  }
}

/* =====================================================================
 *  PIED DE PAGE — profondeur, sans rien déplacer
 *
 *  Une première tentative avait transformé le conteneur interne de la
 *  bande d'appel en carte arrondie avec bordure. Or cette bande est
 *  pleine largeur et possède déjà son propre fond : on obtenait un cadre
 *  dans un cadre, décalé du reste. Cette version ne touche donc à aucune
 *  boîte : elle ajoute de la matière au fond et affine les détails.
 * ===================================================================== */

/* ---- fond : noir profond, deux lueurs froides, trame fine ---- */
.psra-footer{
	background:
		radial-gradient(105% 70% at 8% 0%, rgba(48,68,120,.26) 0%, transparent 56%),
		radial-gradient(85% 60% at 92% 6%, rgba(104,80,150,.18) 0%, transparent 58%),
		linear-gradient(170deg, #0a0c14 0%, #06070c 46%, #000 100%),
		#000 !important;
	background-size:auto !important;
	animation:none !important;
}
.psra-footer::before{
	content:"";position:absolute;left:0;right:0;top:0;height:1px;z-index:3;pointer-events:none;
	background:linear-gradient(90deg,transparent,rgba(150,175,255,.5) 22%,rgba(190,165,255,.6) 50%,rgba(150,175,255,.5) 78%,transparent);
}
.psra-footer::after{
	content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
	background-image:
		linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
		linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
	background-size:56px 56px;
	-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 72%);
	mask-image:linear-gradient(180deg,#000 0%,transparent 72%);
}
.psra-footer__aurora{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.psra-footer__aurora i{position:absolute;display:block;border-radius:50%;will-change:transform}
.psra-footer__aurora i:nth-child(1){width:720px;height:720px;left:-240px;top:-300px;
	background:radial-gradient(circle,rgba(80,115,205,.24) 0%,rgba(80,115,205,.07) 40%,transparent 70%);
	animation:psra-ft-d1 28s ease-in-out infinite}
.psra-footer__aurora i:nth-child(2){width:600px;height:600px;right:-220px;top:-140px;
	background:radial-gradient(circle,rgba(140,105,210,.18) 0%,rgba(140,105,210,.05) 40%,transparent 70%);
	animation:psra-ft-d2 34s ease-in-out infinite}
.psra-footer > *{position:relative;z-index:1}

/* ---- bande d'appel : on garde la bande, on l'assombrit proprement ---- */
.psra-fcta{
	background:linear-gradient(140deg,rgba(255,255,255,.045) 0%,rgba(255,255,255,0) 60%),#05060b !important;
	border-bottom:1px solid rgba(255,255,255,.08);
	animation:none !important;
}
.psra-fcta__eyebrow{color:rgba(190,205,255,.92)}
.psra-fcta__eyebrow svg{color:rgba(190,205,255,.92)}
.psra-fcta__trust li svg{color:rgba(150,180,255,.9)}
.psra-fcta__sec{color:rgba(200,212,255,.92)}
.psra-fcta__sec:hover{color:#fff}
.psra-fcta__btn{box-shadow:0 16px 34px -16px rgba(120,150,255,.75);transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease}
.psra-fcta__btn:hover{transform:translateY(-2px);box-shadow:0 22px 44px -16px rgba(120,150,255,.95)}

/* ---- newsletter : la carte existe déjà, on la rend plus nette ---- */
.psra-newsband{
	background:linear-gradient(150deg,rgba(255,255,255,.05),rgba(255,255,255,.015)),#07080e !important;
	border:1px solid rgba(255,255,255,.12);
}
.psra-newsband__badge{background:rgba(150,180,255,.16);border:1px solid rgba(150,180,255,.3);color:#dfe6ff}
.psra-news__input:focus{border-color:rgba(150,180,255,.85);box-shadow:0 0 0 3px rgba(120,150,255,.2)}

/* ---- colonnes ---- */
.psra-footer__col a::before{color:rgba(160,185,255,.95)}
.psra-footer__col a:hover{color:#fff}

/* ---- réseaux sociaux ---- */
.psra-footer__social a{
	display:grid;place-items:center;width:38px;height:38px;border-radius:11px;
	background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.12);color:#cdd5e6;
	transition:transform .26s cubic-bezier(.2,.8,.2,1),background .26s ease,border-color .26s ease,color .26s ease;
}
.psra-footer__social a:hover{
	transform:translateY(-3px);color:#fff;border-color:rgba(255,255,255,.26);
	background:linear-gradient(140deg,rgba(80,115,205,.5),rgba(140,105,210,.45));
}

/* ---- bas de page ---- */
.psra-footer__legal a{position:relative;transition:color .2s ease}
.psra-footer__legal a::after{
	content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1px;
	background:linear-gradient(90deg,rgba(160,185,255,.9),rgba(190,165,255,.5));
	transition:right .3s cubic-bezier(.2,.8,.2,1);
}
.psra-footer__legal a:hover{color:#fff}
.psra-footer__legal a:hover::after{right:0}

@keyframes psra-ft-d1{0%,100%{transform:translate(0,0) scale(1);opacity:.7}50%{transform:translate(80px,55px) scale(1.12);opacity:1}}
@keyframes psra-ft-d2{0%,100%{transform:translate(0,0) scale(1);opacity:.55}50%{transform:translate(-70px,65px) scale(1.1);opacity:.9}}

@media (prefers-reduced-motion:reduce){
	.psra-footer__aurora i{animation:none}
	.psra-fcta__btn,.psra-footer__social a,.psra-footer__legal a::after{transition:none}
}

/* =====================================================================
 *  PIED DE PAGE — les quatre repères de confiance
 *
 *  Ils portaient la classe .psra-trust, déjà utilisée par une section de
 *  l'accueil : les règles de cette section débordaient dessus et cassaient
 *  la mise en page (le titre et la description se retrouvaient sur la même
 *  ligne, sur un fond clair). Les classes sont désormais distinctes
 *  (.psra-ftrust) et les couleurs sont posées pour un fond sombre.
 *
 *  Contrastes : titre #ffffff ≥ 15:1 · description #b4bcce ≥ 8:1
 *  sur le fond du pied de page.
 * ===================================================================== */
.psra-footer__trust{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
	gap:12px;padding:26px 0;
	border-top:1px solid rgba(255,255,255,.08);
	border-bottom:1px solid rgba(255,255,255,.08);
}
.psra-ftrust{
	display:flex;align-items:center;gap:13px;
	padding:14px 15px;border-radius:14px;
	background:linear-gradient(150deg,rgba(255,255,255,.055),rgba(255,255,255,.02));
	border:1px solid rgba(255,255,255,.09);
	transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s ease,background .3s ease;
}
.psra-ftrust:hover{
	transform:translateY(-3px);
	border-color:rgba(150,180,255,.4);
	background:linear-gradient(150deg,rgba(255,255,255,.1),rgba(255,255,255,.035));
}
.psra-ftrust__ic{
	flex:none;width:42px;height:42px;border-radius:12px;
	display:grid;place-items:center;color:#cfdcff;
	background:linear-gradient(145deg,rgba(90,125,205,.4),rgba(140,105,210,.3));
	box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);
	transition:transform .3s cubic-bezier(.2,.8,.2,1),color .3s ease,background .3s ease;
}
.psra-ftrust:hover .psra-ftrust__ic{
	transform:scale(1.06) rotate(-4deg);color:#fff;
	background:linear-gradient(145deg,rgba(90,125,205,.72),rgba(140,105,210,.6));
}
.psra-ftrust > div{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.32}
.psra-ftrust > div strong{font-size:14px;font-weight:700;color:#fff;letter-spacing:-.1px}
/* Scopée au bloc de texte : « .psra-ftrust span » visait aussi la pastille
   d'icône, qui est un <span>, et l'emportait sur sa propre couleur. */
.psra-ftrust > div span{font-size:12.4px;color:#b4bcce}

@media (max-width:560px){
	.psra-footer__trust{grid-template-columns:1fr;gap:8px;padding:20px 0}
	.psra-ftrust{padding:12px 13px}
}
@media (prefers-reduced-motion:reduce){
	.psra-ftrust,.psra-ftrust__ic{transition:none}
}

/* Phones: footer links were 17-18px tall and the social tiles 38px - hard to
   hit with a thumb. Each gets a comfortable tap height without changing the
   visual size of the text. */
@media (max-width:700px){
	.psra-footer li a{display:inline-flex;align-items:center;min-height:40px}
	.psra-footer__contact{display:inline-flex;align-items:center;min-height:40px}
	.psra-footer__soc{width:44px;height:44px}
	.psra-fcta__sec{display:inline-flex;align-items:center;justify-content:center;min-height:44px}
}

/* Phones: the call-to-action text block was stretched to fill a container
   sized for the side-by-side desktop layout, leaving ~240px of empty space
   between the checklist and the button. On a phone it takes its content
   height. */
@media (max-width:700px){
	.psra-fcta,.psra-fcta__in{min-height:0;height:auto}
	.psra-fcta__text{flex:0 0 auto;min-height:0;height:auto}
}
@media (max-width:700px){
	/* matches the specificity of the existing .psra-footer__social a rule */
	.psra-footer__social a{width:44px;height:44px}
}
@media (max-width:700px){
	.psra-footer__legal a{display:inline-flex;align-items:center;min-height:40px}
}
/* psra-cards */
/* ===== SHARED PRO CARD ===== */
.psra-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.psra-card{display:flex;flex-direction:column;background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:var(--psra-radius-lg);overflow:hidden;transition:transform var(--psra-trans),box-shadow var(--psra-trans),border-color var(--psra-trans)}
.psra-card:hover{transform:translateY(-5px);box-shadow:var(--psra-sh-lg);border-color:transparent}
.psra-card__media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--psra-primary-dd)}
.psra-card__media::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background-image:none;background-size:15px 15px;opacity:.55;-webkit-mask-image:linear-gradient(135deg,#000,transparent 72%);mask-image:linear-gradient(135deg,#000,transparent 72%)}
.psra-card__media.has-img::after{display:none}
.psra-card__media img{width:100%;height:100%;object-fit:cover;position:relative;z-index:2}
.psra-card__media-ic{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;z-index:2}
.psra-card__media-ic svg{width:36px;height:36px;opacity:.95;filter:drop-shadow(0 6px 14px rgba(0,0,0,.28))}
.psra-card__media-wm{position:absolute;right:2px;bottom:-26px;z-index:1;font-size:120px;line-height:1;font-weight:800;letter-spacing:-5px;color:rgba(255,255,255,.14);user-select:none}
.psra-card__media--wrench,.psra-card__media--zap,.psra-card__media--hammer,.psra-card__media--scissors,.psra-card__media--heart,.psra-card__media--dumbbell,.psra-card__media--paw,.psra-card__media--leaf,.psra-card__media--sparkles,.psra-card__media--home,.psra-card__media--truck,.psra-card__media--calendar{background:var(--psra-primary-dd)}
.psra-card__media--monitor,.psra-card__media--graduation{background:#1f1f1f}
.psra-card__flag{position:absolute;top:12px;left:12px;z-index:3;display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.95);color:var(--psra-primary-d);font-size:12px;font-weight:700;padding:5px 10px;border-radius:var(--psra-radius-pill);box-shadow:var(--psra-sh-sm)}
.psra-card__flag svg{color:var(--psra-star)}
.psra-card__tier{position:absolute;top:12px;right:12px;z-index:3}
.psra-card__go{position:absolute;right:12px;bottom:12px;z-index:3;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.92);color:var(--psra-primary-d);box-shadow:var(--psra-sh);opacity:0;transform:translateY(7px) scale(.9);transition:opacity var(--psra-trans),transform var(--psra-trans)}
.psra-card:hover .psra-card__go{opacity:1;transform:none}
.psra-card__body{display:flex;flex-direction:column;gap:11px;padding:18px}
.psra-card__head{display:flex;align-items:flex-start;gap:12px}
.psra-card__logo{flex:none;width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:var(--psra-primary-dd);color:#fff;font-weight:800;font-size:19px;overflow:hidden;margin-top:-38px;border:3px solid #fff;box-shadow:var(--psra-sh-sm);position:relative;z-index:3}
.psra-card__logo img{width:100%;height:100%;object-fit:cover}
.psra-card__id{flex:1;min-width:0}
.psra-card__name{margin:0;font-size:16.5px;font-weight:700;line-height:1.3;letter-spacing:-.2px}
.psra-card__name a{color:var(--psra-ink)}
.psra-card__name a:hover{color:var(--psra-primary-d)}
.psra-card__cat{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;margin:3px 0 0;font-size:13px;color:var(--psra-muted);font-weight:500}
.psra-card__ok{display:inline-flex;align-items:center;gap:4px;padding:3px 8px 3px 6px;border-radius:999px;background:#EAF0FB;color:#1B3F86;font-size:11.5px;font-weight:700;line-height:1.2;white-space:nowrap}
.psra-card__ok svg{flex:none;width:12px;height:12px}
.psra-card__premium{display:inline-flex;align-items:center;gap:4px;flex:none;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#92660e;background:#fff7e6;border:1px solid #f3d68a;border-radius:var(--psra-radius-pill);padding:3px 8px;white-space:nowrap}
.psra-card__premium svg{width:11px;height:11px}
.psra-card__tag{margin:0;font-size:14px;line-height:1.55;color:var(--psra-ink-2)}
.psra-card__chips{display:flex;flex-wrap:wrap;gap:6px}
.psra-card__chip{font-size:11.5px;font-weight:600;color:var(--psra-ink-2);background:var(--psra-bg-2);border-radius:7px;padding:4px 9px;white-space:nowrap}
.psra-card__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:12px;border-top:1px solid var(--psra-line-2)}
.psra-card__loc{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--psra-muted)}
.psra-card__loc svg{color:var(--psra-faint)}
.psra-card__rate{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--psra-muted)}
.psra-card__rate strong{color:var(--psra-ink);font-weight:700}

/* ===== SECTIONS ===== */
.psra-sec{padding:78px 0}
.psra-sec--soft{background:var(--psra-bg-soft)}
.psra-sec--dark{position:relative;color:#fff;background:var(--psra-primary-dd)}
.psra-sec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:34px}
.psra-sec__head--center{flex-direction:column;align-items:center;text-align:center;margin-bottom:46px}
.psra-sec__title{margin:0;font-size:clamp(25px,3.2vw,36px);font-weight:800;letter-spacing:-.8px;color:var(--psra-primary)}
.psra-sec__lead{margin:12px 0 0;font-size:16.5px;color:var(--psra-muted);line-height:1.6;max-width:640px}
.psra-sec__head--center .psra-sec__lead{margin-inline:auto}
.psra-sec__link{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:700;color:var(--psra-primary-d);white-space:nowrap;transition:gap .2s ease}
.psra-sec__link:hover{gap:10px}
.psra-sec__eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--psra-primary-d);background:var(--psra-primary-soft);border-radius:var(--psra-radius-pill);padding:6px 12px;margin-bottom:12px}
.psra-sec__eyebrow svg{color:var(--psra-primary)}
.psra-sec__head--center .psra-sec__eyebrow{margin-inline:auto}
.psra-sec--dark .psra-sec__title{color:#fff}
.psra-sec--dark .psra-sec__lead{color:#b9b9b9}
.psra-sec--dark .psra-sec__eyebrow{color:var(--psra-ink);background:var(--psra-primary-soft);border:1px solid var(--psra-primary-100)}
.psra-sec--dark .psra-sec__eyebrow svg{color:var(--psra-primary-100)}
.psra-sec--dark .psra-sec__link{color:var(--psra-primary-100)}

/* scroll reveal */
.psra-reveal{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1)}
.psra-reveal.is-in{opacity:1;transform:none}
@keyframes psra-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes psra-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.psra-reveal{opacity:1;transform:none}}


/* ===== CARD: description + actions (spec 4.8) ===== */
.psra-card__desc{margin:0 0 10px;font-size:13.5px;line-height:1.6;color:var(--psra-muted,#8a8f97);
display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.psra-card__acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--psra-line,#e7e3d9)}
.psra-card__act{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--psra-line,#e7e3d9);
background:var(--psra-bg,#fff);border-radius:9px;padding:6px 10px;font-size:12.5px;font-weight:700;
color:var(--psra-ink-2,#4a4f57);text-decoration:none;cursor:pointer;line-height:1.2}
.psra-card__act:hover{border-color:var(--psra-primary);background:var(--psra-primary-soft);color:var(--psra-ink,#14161a)}
.psra-card__fav.is-on{background:var(--psra-primary);border-color:var(--psra-primary);color:#fff}
@media (max-width:480px){.psra-card__act span{display:none}.psra-card__act{padding:7px 11px}}
/* ---- Four pillars ---------------------------------------------------- */
.psra-pillars{padding:56px 0 24px}
.psra-pillars__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:28px}
.psra-pillar{display:flex;flex-direction:column;gap:10px;padding:24px 22px;border-radius:18px;background:var(--psra-bg);border:1px solid var(--psra-line);color:inherit;text-decoration:none;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1),border-color .3s}
.psra-pillar:hover{transform:translateY(-4px);border-color:var(--psra-primary-100);box-shadow:0 22px 44px -28px rgba(15,20,40,.35)}
.psra-pillar__ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--psra-bg-2);color:var(--psra-navy,#1a3f8f)}
.psra-pillar__t{font-weight:700;font-size:1.06rem;letter-spacing:-.01em}
.psra-pillar__d{color:var(--psra-ink-2);font-size:.95rem;line-height:1.5}
.psra-pillar--ai{background:linear-gradient(160deg,#fff 0%,rgba(26,63,143,.06) 100%);border-color:rgba(26,63,143,.28)}
.psra-pillar--ai .psra-pillar__ico{background:var(--psra-navy,#1a3f8f);color:#fff}
@media (max-width:900px){.psra-pillars__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:540px){.psra-pillars__grid{grid-template-columns:1fr}}

/* ---- Nexora + Elite --------------------------------------------------- */

/* psra-cookies */
.psra-cookie{position:fixed;left:20px;right:20px;bottom:20px;z-index:2147483000;display:flex;justify-content:flex-start;pointer-events:none;margin:0}
.psra-cookie[hidden]{display:none!important}
.psra-cookie *,.psra-cookie *::before,.psra-cookie *::after{box-sizing:border-box}
.psra-cookie [hidden]{display:none!important}
.psra-cookie__box{pointer-events:auto;width:100%;max-width:430px;margin:0;background:var(--psra-bg,#fff);border:1px solid var(--psra-primary-soft);border-radius:18px;box-shadow:0 2px 6px rgba(20,20,20,.05),0 26px 60px -24px rgba(20,20,20,.5);padding:20px 22px 18px;font-family:inherit;font-size:14px;line-height:1.6;color:#414141;text-align:left;animation:psra-ck-in .42s cubic-bezier(.16,.84,.28,1)}
.psra-cookie__head{display:flex;align-items:center;gap:11px;margin:0 0 11px;padding:0}
.psra-cookie__ic{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;border-radius:11px;color:var(--psra-primary);background:var(--psra-primary-100);box-shadow:0 6px 16px -6px color-mix(in srgb, var(--psra-primary) 70%, transparent)}
.psra-cookie__ic svg{display:block;width:22px;height:22px}
.psra-cookie__title{margin:0;padding:0;font-family:inherit;font-size:15.5px;font-weight:800;letter-spacing:-.2px;line-height:1.25;color:#141414;text-transform:none}
.psra-cookie__text{margin:0 0 14px;padding:0;color:#414141;font-size:14px;line-height:1.6}
.psra-cookie__text a{color:var(--psra-primary-dd);font-weight:600;text-decoration:underline;text-underline-offset:2px;box-shadow:none;background:none}
.psra-cookie__cats{display:flex;flex-direction:column;gap:9px;margin:0 0 14px;padding:13px 14px;background:#faf7ef;border:1px solid #efe7d2;border-radius:12px}
.psra-cookie__cat{display:flex;gap:10px;align-items:flex-start;margin:0;padding:0;cursor:pointer}
.psra-cookie__cat input{flex:0 0 auto;margin:3px 0 0;width:17px;height:17px;min-width:17px;accent-color:var(--psra-primary);cursor:pointer}
.psra-cookie__cat input:disabled{cursor:default}
.psra-cookie__cat span{display:flex;flex-direction:column}
.psra-cookie__cat strong{font-size:13.5px;color:var(--psra-ink,#161616);line-height:1.3}
.psra-cookie__cat small{font-size:12px;color:#777;line-height:1.45}
.psra-cookie__actions{display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0;list-style:none}
.psra-cookie__btn{flex:1 1 0;min-width:120px;width:auto;min-height:0;height:auto;margin:0;border:1.5px solid transparent;border-radius:11px;font-family:inherit;font-weight:700;font-size:13.5px;line-height:1.2;letter-spacing:normal;text-transform:none;text-decoration:none;text-shadow:none;padding:11px 14px;cursor:pointer;-webkit-appearance:none;appearance:none;transition:transform .15s ease,box-shadow .2s ease,background .15s ease,border-color .15s ease}
.psra-cookie__btn--ghost{background:var(--psra-bg,#fff);border-color:#e0ddd5;color:#2c2c2c}
.psra-cookie__btn--ghost:hover{background:var(--psra-bg,#fff);border-color:var(--psra-primary);color:var(--psra-primary)}
.psra-cookie__btn--primary{background:var(--psra-primary-100);border-color:transparent;color:var(--psra-primary);box-shadow:0 10px 22px -12px color-mix(in srgb, var(--psra-primary) 85%, transparent)}
.psra-cookie__btn--primary:hover{transform:translateY(-1px);background:var(--psra-primary-100);color:var(--psra-primary);box-shadow:0 14px 26px -12px color-mix(in srgb, var(--psra-primary) 95%, transparent)}
.psra-cookie__link{display:block;width:100%;min-height:0;height:auto;margin:10px 0 0;padding:4px;background:none;border:0;border-radius:0;font-family:inherit;color:#6b6b6b;font-size:12.5px;font-weight:600;line-height:1.3;text-align:center;text-transform:none;text-decoration:underline;text-underline-offset:2px;text-shadow:none;cursor:pointer;-webkit-appearance:none;appearance:none;box-shadow:none}
.psra-cookie__link:hover{color:var(--psra-primary-dd);background:none}
@keyframes psra-ck-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.psra-cookie__box{animation:none}.psra-cookie__btn--primary:hover{transform:none}}
@media (max-width:540px){.psra-cookie{left:10px;right:10px;bottom:10px}.psra-cookie__box{max-width:none;padding:18px 18px 16px}.psra-cookie__btn{flex:1 1 calc(50% - 5px);min-width:0}}
/* psra-data */
.psra-data{padding:40px 0 70px}
.psra-data__wrap{max-width:820px}
.psra-data h1{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-.8px;color:var(--psra-ink);margin:0 0 8px}
.psra-data__intro{color:var(--psra-ink-2);font-size:15.5px;line-height:1.65;margin:0 0 28px;max-width:640px}
.psra-data__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.psra-data__card{background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:var(--psra-radius-lg);padding:26px}
.psra-data__ic{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:13px;background:var(--psra-primary-soft);color:var(--psra-primary-d);margin-bottom:14px}
.psra-data__ic--danger{background:#fee2e2;color:#b91c1c}
.psra-data__card h2{margin:0 0 8px;font-size:18px;font-weight:700;color:var(--psra-ink)}
.psra-data__card p{margin:0 0 16px;font-size:14px;color:var(--psra-ink-2);line-height:1.6}
.psra-btn-danger{color:#b91c1c;border-color:#fca5a5}
.psra-btn-danger:hover{background:#b91c1c;color:#fff;border-color:#b91c1c}
.psra-data__pending{color:var(--psra-ink);background:#fef7e0;padding:9px 13px;border-radius:9px;font-size:13.5px;font-weight:600;margin:0!important}
.psra-formmsg{margin:12px 0 0;font-size:13.5px;min-height:18px}
.psra-formmsg.is-ok{color:var(--psra-success-text,#186B3B)}
.psra-formmsg.is-err{color:var(--psra-danger)}
.psra-data__foot{margin:30px 0 0;font-size:13.5px;color:var(--psra-muted);line-height:1.6}
.psra-data__foot a{color:var(--psra-primary-d)}
@media (max-width:640px){.psra-data__grid{grid-template-columns:1fr}}
/* psra-favoris */
.psra-fav{padding:34px 0 70px}
.psra-fav__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.psra-fav__head h1{margin:0 0 4px;font-size:clamp(24px,3.4vw,34px);font-weight:800;letter-spacing:-.7px;color:var(--psra-ink)}
.psra-fav__head p{margin:0;color:var(--psra-muted);font-size:15px}
.psra-fav__actions{display:flex;gap:10px;flex-wrap:wrap}
.psra-fav__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
/* heart on cards */
.psra-card{position:relative}
.psra-fav-heart{position:absolute;top:12px;right:12px;z-index:3;width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.92);box-shadow:var(--psra-sh-sm);color:#6e6e6e;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,color .15s ease,background .15s ease}
.psra-fav-heart:hover{transform:scale(1.08)}
.psra-fav-heart svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2}
.psra-fav-heart.is-on{color:#e11d48;background:var(--psra-bg,#fff)}
.psra-fav-heart.is-on svg{fill:#e11d48;stroke:#e11d48}
.psra-fav-heart.is-busy{opacity:.6;pointer-events:none}
/* fiche button variant */
/* On the fiche it is a button among buttons, so it takes their geometry:
   same padding, same radius, same 18px icon, same hover behaviour. */
.psra-pro__actions .psra-fav-heart{
  position:static;width:auto;height:auto;
  border-radius:var(--psra-radius-sm);
  padding:11px 16px;gap:8px;
  font-family:var(--psra-font);font-weight:600;font-size:14.5px;
  border:1.5px solid var(--psra-line);
  background:var(--psra-bg,#fff);color:var(--psra-ink-2);
  transition:transform .16s cubic-bezier(.4,0,.2,1),
             box-shadow .24s cubic-bezier(.4,0,.2,1),
             border-color .2s cubic-bezier(.4,0,.2,1),
             color .2s cubic-bezier(.4,0,.2,1);
}
.psra-pro__actions .psra-fav-heart svg{width:18px;height:18px}
.psra-pro__actions .psra-fav-heart:hover{
  transform:translateY(-1.5px);
  border-color:var(--psra-primary);
  color:var(--psra-ink);
  box-shadow:0 10px 22px -12px rgba(18,32,54,.42);
}
.psra-pro__actions .psra-fav-heart:active{transform:translateY(0);box-shadow:none}
.psra-fav-heart__t{line-height:1}
.psra-pro__actions .psra-fav-heart.is-on{border-color:#fecdd3;color:#e11d48}
/* header link */
.psra-fav-headlink{position:relative;display:inline-flex;align-items:center;justify-content:center;color:var(--psra-ink-2);text-decoration:none;padding:6px 8px;border-radius:10px}
.psra-fav-headlink:hover{color:var(--psra-ink);background:#fff1f2}
.psra-fav-headlink svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.psra-fav-headbadge{position:absolute;top:-2px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e11d48;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}
.psra-fav-headbadge[hidden]{display:none}
/* psra-blog-sidebar */
/* breadcrumbs */
.psra-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:var(--psra-muted);margin:0 0 18px}
.psra-crumbs a{color:var(--psra-ink-2);text-decoration:none}
.psra-crumbs a:hover{color:var(--psra-primary-d)}
.psra-crumbs__sep{color:var(--psra-faint)}
.psra-crumbs__cur{color:var(--psra-ink)}
.psra-empty__t{margin:0 0 8px;font-size:22px;font-weight:800;line-height:1.25;color:var(--psra-ink)}
/* sidebar widgets */
.psra-blog__side{display:flex;flex-direction:column;gap:18px;position:sticky;top:calc(var(--psra-header-h,74px) + 18px)}
.psra-bw{background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:var(--psra-radius);padding:20px}
.psra-bw__h{margin:0 0 14px;font-size:14px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--psra-muted)}
.psra-bw--cta{background:var(--psra-primary-dd);color:#fff;border:none;text-align:center;padding:26px 22px}
.psra-bw--cta .psra-bw__ic{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:rgba(255,255,255,.16);margin-bottom:12px}
.psra-bw--cta h3{margin:0 0 8px;font-size:18px;font-weight:800;color:#fff}
.psra-bw--cta p{margin:0 0 16px;font-size:14px;color:rgba(255,255,255,.9);line-height:1.55}
.psra-bw--cta .psra-btn-primary{background:var(--psra-bg,#fff);color:var(--psra-primary-dd)}
.psra-bw--cta .psra-btn-primary:hover{background:var(--psra-bg,#fff);opacity:.92}
.psra-bw__search{display:flex;gap:8px}
.psra-bw__search input{flex:1;border:1px solid var(--psra-line);border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;background:var(--psra-bg-soft)}
.psra-bw__search input:focus{outline:none;border-color:var(--psra-primary);background:var(--psra-bg,#fff)}
.psra-bw__search button{flex:none;width:42px;border:none;border-radius:10px;background:var(--psra-primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.psra-bw__cats{list-style:none;margin:0;padding:0}
.psra-bw__cats li{border-bottom:1px solid var(--psra-line)}
.psra-bw__cats li:last-child{border-bottom:none}
.psra-bw__cats a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;text-decoration:none;color:var(--psra-ink-2);font-size:14.5px}
.psra-bw__cats a:hover{color:var(--psra-primary-d)}
.psra-bw__cats em{font-style:normal;font-size:12px;font-weight:600;color:var(--psra-muted);background:var(--psra-bg-soft);border-radius:999px;padding:2px 9px}
.psra-bw__recent{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.psra-bw__recent a{display:flex;gap:12px;text-decoration:none;align-items:center}
.psra-bw__rthumb{flex:none;width:58px;height:58px;border-radius:10px;background:var(--psra-bg-2) center/cover no-repeat}
.psra-bw__rtitle{display:block;font-size:14px;font-weight:600;color:var(--psra-ink);line-height:1.35}
.psra-bw__recent a:hover .psra-bw__rtitle{color:var(--psra-primary-d)}
.psra-bw__rdate{display:block;font-size:12px;color:var(--psra-faint);margin-top:3px}
/* search grid */
.psra-srch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px}

/* ---- sidebar, quieter --------------------------------------------------- */
.psra-bw__h{
  font-family:var(--psra-serif); font-weight:600; font-size:16.5px;
  letter-spacing:-.006em;
}
.psra-bw{ border-radius:var(--psra-radius,14px) }
.psra-bw--cta .psra-bw__h{ font-size:18px }

/* The recent list is a list, not five more cards. */
.psra-bw__recent a{ font-size:14.4px; line-height:1.45 }
.psra-bw__rdate{ font-size:11.6px; letter-spacing:.04em; color:var(--psra-faint) }


/* ---- la barre latérale, sans boîtes --------------------------------------
   Trois cadres blancs bordés à côté d'une page qui n'en a plus. Ils deviennent
   des sections séparées par un filet, comme la grille : les deux colonnes se
   lisent enfin comme une seule page. */
.psra-bw{
  background:none; border:0; border-radius:0;
  padding:0 0 26px; margin:0 0 26px;
  border-bottom:1px solid var(--psra-line);
}
.psra-bw:last-child{ border-bottom:0; padding-bottom:0; margin-bottom:0 }
.psra-bw__h{
  font-family:inherit; font-size:10.8px; font-weight:650;
  letter-spacing:.14em; text-transform:uppercase; color:var(--psra-muted);
  margin:0 0 15px; padding:0 0 8px; border-bottom:1px solid var(--psra-line-2);
}

/* L'encart d'appel garde son fond : c'est le seul objet de la colonne qui
   demande une action, et il doit se distinguer du reste. */
.psra-bw--cta{
  background:var(--psra-ink); color:var(--psra-bg);
  border-radius:var(--psra-radius-lg,16px); padding:26px 22px;
  border-bottom:0; margin-bottom:26px;
}
.psra-bw--cta .psra-bw__h{
  color:rgba(255,255,255,.6); border-bottom-color:rgba(255,255,255,.18);
  font-size:10.8px; font-family:inherit;
}

.psra-bw__recent a{ padding:11px 0; border-bottom:1px solid var(--psra-line-2) }
.psra-bw__recent a:last-child{ border-bottom:0 }
.psra-bw__recent a span{ font-family:var(--psra-serif); font-size:15px; line-height:1.32 }

/* psra-savedsearch */
.psra-alertbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--psra-primary-soft);border:1px solid var(--psra-primary-100);border-radius:16px;padding:14px 18px;margin:0 0 22px;box-shadow:0 12px 30px -24px color-mix(in srgb, var(--psra-primary) 55%, transparent)}
.psra-alertbar__txt{display:flex;align-items:center;gap:10px;font-size:14.5px;color:#3a2f12 !important;font-weight:700;flex:1;min-width:220px}
.psra-alertbar__txt svg{color:var(--psra-primary) !important;flex:none}
.psra-alertbar select{height:42px;border:1.5px solid var(--psra-primary-100) !important;border-radius:11px;background:var(--psra-bg,#fff) !important;color:var(--psra-primary) !important;padding:0 12px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}
.psra-alertbar select:focus{outline:none;border-color:var(--psra-primary) !important;box-shadow:0 0 0 3px color-mix(in srgb, var(--psra-primary) 25%, transparent)}
.psra-alertbar__btn{display:inline-flex;align-items:center;gap:8px;border:none !important;background:#F0D98C;color:var(--psra-primary) !important;font-weight:800;font-size:14.5px;padding:12px 22px;border-radius:12px;cursor:pointer;box-shadow:0 12px 26px -10px color-mix(in srgb, var(--psra-primary) 80%, transparent);transition:transform .2s ease,filter .2s ease}
.psra-alertbar__btn:hover{transform:translateY(-1px);filter:brightness(1.05);background:#F0D98C;color:var(--psra-primary) !important}
.psra-alertbar__btn:disabled{opacity:.6;cursor:default;transform:none}
.psra-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:24px;z-index:99999;display:flex;align-items:center;gap:12px;background:var(--psra-ink);color:#fff;border-radius:12px;padding:13px 18px;font-size:14px;box-shadow:0 18px 50px -16px rgba(20,20,20,.6);opacity:0;transition:opacity .2s ease,transform .2s ease}
.psra-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.psra-toast a{color:#fff;font-weight:700;text-decoration:underline}
/* psra-saved-searches */
.psra-ss{padding:34px 0 70px}
.psra-ss__wrap{max-width:840px}
.psra-ss__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.psra-ss__head h1{margin:0 0 4px;font-size:clamp(24px,3.4vw,34px);font-weight:800;letter-spacing:-.7px;color:var(--psra-ink)}
.psra-ss__head p{margin:0;color:var(--psra-muted);font-size:15px;max-width:520px;line-height:1.5}
.psra-ss__list{display:flex;flex-direction:column;gap:12px}
.psra-sscard{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:var(--psra-radius);padding:18px 20px}
.psra-sscard__label{margin:0 0 4px;font-size:16.5px;font-weight:700;color:var(--psra-ink)}
.psra-sscard__meta{font-size:13px;color:var(--psra-muted)}
.psra-sscard__controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.psra-sscard__freq{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--psra-muted)}
.psra-sscard__freq select{height:36px;border:1px solid var(--psra-line);border-radius:9px;background:var(--psra-bg-soft);padding:0 10px;font:inherit;font-size:13.5px;color:var(--psra-ink)}
.psra-sscard__del{width:36px;height:36px;border-radius:9px;border:1px solid var(--psra-line);background:var(--psra-bg,#fff);color:var(--psra-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}
.psra-sscard__del:hover{border-color:var(--psra-danger);color:var(--psra-danger)}
.psra-sscard.is-saved{box-shadow:0 0 0 2px var(--psra-primary-soft)}
@media (max-width:600px){.psra-sscard{flex-direction:column;align-items:stretch}.psra-sscard__controls{justify-content:space-between}}
/* psra-pro-stats */
.psra-st{padding:34px 0 70px}
.psra-st__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.psra-st__head h1{margin:0 0 4px;font-size:clamp(24px,3.4vw,34px);font-weight:800;letter-spacing:-.7px;color:var(--psra-ink)}
.psra-st__head p{margin:0;color:var(--psra-muted);font-size:15px}
.psra-st-tabs{display:inline-flex;background:var(--psra-bg-soft);border:1px solid var(--psra-line);border-radius:999px;padding:4px}
.psra-st-tab{padding:8px 16px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--psra-ink-2);text-decoration:none}
.psra-st-tab.is-on{background:var(--psra-primary);color:#fff}
.psra-st-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:18px}
.psra-st-kpi{background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:var(--psra-radius);padding:18px 20px}
.psra-st-kpi__ic{font-size:18px;opacity:.85}
.psra-st-kpi b{display:block;font-size:28px;font-weight:800;color:var(--psra-ink);line-height:1.15;margin-top:6px}
.psra-st-kpi span:last-child{display:block;font-size:13px;color:var(--psra-muted);margin-top:2px}
.psra-st-card{background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:var(--psra-radius);padding:20px 22px;margin-bottom:18px}
.psra-st-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.psra-st-card__head h2{margin:0;font-size:16px;font-weight:700;color:var(--psra-ink)}
.psra-st-legend{display:flex;gap:16px;font-size:12.5px;color:var(--psra-muted)}
.psra-st-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.psra-st-link{font-size:13.5px;font-weight:600;color:var(--psra-primary-d);text-decoration:none}
.psra-st-chart{width:100%;height:auto;display:block}
.psra-st-nochart{color:var(--psra-muted);font-size:14px;text-align:center;padding:30px 0}
.psra-st-leads{width:100%;border-collapse:collapse}
.psra-st-leads td{padding:10px 6px;border-bottom:1px solid var(--psra-line-2);font-size:14px;vertical-align:top}
.psra-st-leads tr:last-child td{border-bottom:none}
.psra-st-mut{color:var(--psra-muted);font-size:13px}
.psra-st-foot{font-size:13px;color:var(--psra-muted);margin:6px 2px 0}
.psra-upsell{max-width:560px;margin:30px auto;text-align:center;background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:var(--psra-radius-lg);padding:40px 30px;box-shadow:var(--psra-sh)}
.psra-upsell__ic{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;background:var(--psra-primary-soft);color:var(--psra-primary-d);margin-bottom:16px}
.psra-upsell h2{margin:0 0 10px;font-size:24px;font-weight:800;color:var(--psra-ink)}
.psra-upsell p{margin:0 0 14px;color:var(--psra-ink-2);font-size:15px;line-height:1.6}
.psra-upsell__note{color:var(--psra-muted);font-size:14px}
@media (max-width:760px){.psra-st-kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
.psra-st-level{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:16px;padding:16px 18px;margin-bottom:18px}
.psra-st-level__id{display:flex;align-items:center;gap:12px}
.psra-st-level__id strong{display:block;font-size:14.5px;color:var(--psra-ink)}
.psra-st-level__id span{font-size:12.5px;color:var(--psra-muted)}
.psra-st-level__pct{font-size:13px;color:var(--psra-muted);max-width:260px;text-align:right}
.psra-st-level__pct strong{color:var(--psra-primary-dd)}
/* psra-referral */
.psra-rf{padding:34px 0 70px}
.psra-rf__wrap{max-width:820px}
.psra-rf__head{margin-bottom:22px}
.psra-rf__head h1{margin:0 0 6px;font-size:clamp(26px,4vw,40px);font-weight:800;letter-spacing:-1px;color:var(--psra-ink)}
.psra-rf__head p{margin:0;color:var(--psra-ink-2);font-size:16px;line-height:1.55}
.psra-rf-share{background:var(--psra-primary-dd);border-radius:var(--psra-radius-lg);padding:26px;margin-bottom:22px;color:#fff}
.psra-rf-share__lbl{display:block;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.8);margin-bottom:10px}
.psra-rf-share__row{display:flex;gap:10px;flex-wrap:wrap}
.psra-rf-share__row input{flex:1;min-width:200px;border:none;border-radius:10px;padding:12px 14px;font:inherit;font-size:14.5px;color:var(--psra-ink);background:var(--psra-bg,#fff)}
.psra-rf-share__row .psra-btn-primary{background:var(--psra-bg,#fff);color:var(--psra-primary-dd)}
.psra-rf-share__btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.psra-rf-share__btns a{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:#fff;background:rgba(255,255,255,.14);border-radius:9px;padding:8px 13px;text-decoration:none}
.psra-rf-share__btns a:hover{background:rgba(255,255,255,.24)}
.psra-rf-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:24px}
.psra-rf-stat{background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:var(--psra-radius);padding:18px 20px;text-align:center}
.psra-rf-stat b{display:block;font-size:30px;font-weight:800;color:var(--psra-ink);line-height:1}
.psra-rf-stat span{display:block;font-size:13px;color:var(--psra-muted);margin-top:5px}
.psra-rf-stat--ok b{color:var(--psra-success-text,#186B3B)}
.psra-rf-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:26px}
.psra-rf-step{background:var(--psra-bg-soft);border:1px solid var(--psra-line);border-radius:var(--psra-radius);padding:20px}
.psra-rf-step__n{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--psra-primary);color:#fff;font-weight:800;font-size:15px;margin-bottom:10px}
.psra-rf-step h3{margin:0 0 6px;font-size:16px;font-weight:700;color:var(--psra-ink)}
.psra-rf-step p{margin:0;font-size:14px;color:var(--psra-muted);line-height:1.55}
.psra-rf-list h2{font-size:18px;font-weight:800;color:var(--psra-ink);margin:0 0 14px}
.psra-rf-table{width:100%;border-collapse:collapse}
.psra-rf-table td{padding:12px 6px;border-bottom:1px solid var(--psra-line-2);font-size:14.5px;color:var(--psra-ink-2)}
.psra-rf-table tr:last-child td{border-bottom:none}
.psra-rf-date{text-align:right;color:var(--psra-faint);font-size:13px;white-space:nowrap}
.psra-rf-empty{color:var(--psra-muted);font-size:14.5px}
.psra-rb-pending{background:#fef9c3;color:#854d0e}
.psra-rb-qualified{background:var(--psra-primary-soft);color:var(--psra-primary-dd)}
.psra-rb-rewarded{background:var(--psra-primary-soft);color:var(--psra-primary-d)}
.psra-rb-void{background:var(--psra-bg-2);color:var(--psra-muted)}
@media (max-width:680px){.psra-rf-stats,.psra-rf-steps{grid-template-columns:1fr}}
/* psra-notif-bell */
.psra-bell{position:relative}
.psra-bell__btn{position:relative;width:42px;height:42px;border-radius:11px;border:1px solid var(--psra-line);background:var(--psra-bg,#fff);color:var(--psra-ink-2);cursor:pointer;display:flex;align-items:center;justify-content:center}
.psra-bell__btn:hover{border-color:var(--psra-primary);color:var(--psra-primary-d)}
.psra-bell__dot{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--psra-danger);color:#fff;font-size:11px;font-weight:700;display:none;align-items:center;justify-content:center;line-height:1;border:2px solid #fff}
.psra-bell.has-unread .psra-bell__dot{display:flex}
.psra-bell__panel{position:absolute;top:calc(100% + 10px);right:0;width:340px;max-width:90vw;background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:var(--psra-radius);box-shadow:var(--psra-sh-lg);z-index:1200;overflow:hidden;display:none}
.psra-bell.open .psra-bell__panel{display:block}
.psra-bell__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;border-bottom:1px solid var(--psra-line)}
.psra-bell__head h3{margin:0;font-size:15px;font-weight:700;color:var(--psra-ink)}
.psra-bell__all{border:none;background:none;color:var(--psra-primary-d);font-size:12.5px;font-weight:600;cursor:pointer}
.psra-bell__all:hover{text-decoration:underline}
.psra-bell__list{max-height:60vh;overflow-y:auto}
.psra-bell__item{display:flex;gap:11px;padding:13px 16px;border-bottom:1px solid var(--psra-line-2);cursor:pointer;text-decoration:none;color:inherit;transition:background .12s ease}
.psra-bell__item:last-child{border-bottom:none}
.psra-bell__item:hover{background:var(--psra-bg-soft)}
.psra-bell__item.is-unread{background:var(--psra-primary-soft)}
.psra-bell__item.is-unread:hover{background:#f0f0f1}
.psra-bell__ic{flex:none;width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--psra-bg,#fff);border:1px solid var(--psra-line);font-size:15px}
.psra-bell__txt{min-width:0;flex:1}
.psra-bell__t{display:block;font-size:14px;font-weight:600;color:var(--psra-ink);line-height:1.3}
.psra-bell__b{display:block;font-size:13px;color:var(--psra-muted);line-height:1.4;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.psra-bell__time{display:block;font-size:11.5px;color:var(--psra-faint);margin-top:3px}
.psra-bell__empty{padding:30px 16px;text-align:center;color:var(--psra-muted);font-size:13.5px}
.psra-bell__foot{padding:11px 16px;border-top:1px solid var(--psra-line);text-align:center}
.psra-bell__foot a{font-size:13px;font-weight:600;color:var(--psra-primary-d);text-decoration:none}
/* psra-notifications-page */
.psra-nf{padding:34px 0 70px}
.psra-nf__wrap{max-width:720px}
.psra-nf__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.psra-nf__head h1{margin:0 0 4px;font-size:clamp(24px,3.4vw,34px);font-weight:800;letter-spacing:-.7px;color:var(--psra-ink)}
.psra-nf__head p{margin:0;color:var(--psra-muted);font-size:15px}
.psra-nf-list{display:flex;flex-direction:column;background:var(--psra-bg,#fff);border:1px solid var(--psra-line);border-radius:var(--psra-radius);overflow:hidden}
.psra-nf-item{display:flex;align-items:center;gap:13px;padding:16px 18px;border-bottom:1px solid var(--psra-line-2);text-decoration:none;color:inherit;transition:background .12s ease}
.psra-nf-item:last-child{border-bottom:none}
.psra-nf-item:hover{background:var(--psra-bg-soft)}
.psra-nf-item.is-unread{background:var(--psra-primary-soft)}
.psra-nf-item.is-unread:hover{background:#f0f0f1}
.psra-nf-item__ic{flex:none;width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--psra-bg,#fff);border:1px solid var(--psra-line);font-size:17px}
.psra-nf-item__txt{min-width:0;flex:1}
.psra-nf-item__t{display:block;font-size:15px;font-weight:600;color:var(--psra-ink);line-height:1.3}
.psra-nf-item__b{display:block;font-size:14px;color:var(--psra-muted);line-height:1.45;margin-top:2px}
.psra-nf-item__time{display:block;font-size:12px;color:var(--psra-faint);margin-top:4px}
.psra-nf-item__dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--psra-primary);color:#fff}
.psra-nf-pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:26px 0 0}
.psra-nf-pager a{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--psra-line);border-radius:9px;text-decoration:none;color:var(--psra-ink-2);background:var(--psra-bg,#fff);font-weight:600;font-size:14px}
.psra-nf-pager a.cur{background:var(--psra-primary);border-color:var(--psra-primary);color:#fff}
/* psra-bot */
/* =====================================================================
   CONTACT BUTTON
   Every rule carries at least two classes so theme link and button styles
   cannot reach it. Only transform and opacity are animated, and only when
   the visitor accepts motion.
   ===================================================================== */
.psra-bot.cbar{position:fixed;right:22px;bottom:22px;left:auto;top:auto;z-index:2147483000;font-family:var(--psra-font,'Inter',system-ui,-apple-system,sans-serif);
  --cbar-grad:linear-gradient(140deg,var(--cbar-light,#1e4aa8) 0%,var(--cbar-brand,#16306b) 62%,var(--cbar-ink,#0e1f47) 100%)}
.psra-bot.cbar[data-side="left"]{right:auto;left:22px}
.cbar .cbar-box{position:relative;display:block;margin:0;padding:0;border:0}

/* the round button */
.cbar .cbar-btn{position:relative;display:block;box-sizing:border-box;width:58px;height:58px;margin:0;padding:0;border:2px solid #fff;border-radius:50%;
  background:var(--cbar-grad);box-shadow:0 18px 38px -14px rgba(8,30,36,.55);cursor:pointer;list-style:none;
  touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;outline:none}
.cbar .cbar-btn::-webkit-details-marker{display:none}
.cbar .cbar-btn::marker{content:""}
.cbar .cbar-btn:focus-visible{outline:3px solid var(--cbar-brand,#16306b);outline-offset:2px}
.cbar .cbar-face{position:absolute;inset:0;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center}
.cbar .cbar-face img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.cbar .cbar-ini{color:#fff;font-weight:700;font-size:22px;line-height:1}
.cbar .cbar-has-img .cbar-ini{display:none}
.cbar .cbar-x{position:absolute;inset:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--cbar-ink,#0e1f47);color:#fff;
  opacity:0;transform:rotate(-90deg) scale(.6)}
.cbar .cbar-dot{position:absolute;right:-2px;bottom:-2px;width:14px;height:14px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #fff}
.cbar .cbar-box[open] .cbar-x,.cbar.is-chat .cbar-x{opacity:1;transform:none}
.cbar .cbar-box[open] .cbar-dot,.cbar.is-chat .cbar-dot{opacity:0}
.cbar.cbar--drag .cbar-btn{cursor:grabbing;box-shadow:0 30px 52px -16px rgba(8,30,36,.65)}
/* the assistant panel is placed against the screen: no offset on the root while it is open */
.psra-bot.cbar.is-chat{translate:none;transition:none}

/* the stack of options, above the button (below it when there is no room) */
.cbar .cbar-stack{position:absolute;right:6px;bottom:74px;display:flex;flex-direction:column;align-items:flex-end;gap:9px;
  width:max-content;max-width:min(360px,calc(100vw - 32px))}
.cbar[data-side="left"] .cbar-stack{right:auto;left:6px;align-items:flex-start}
.cbar.cbar--down .cbar-stack{bottom:auto;top:74px}

.cbar .cbar-head{display:flex;align-items:center;gap:11px;padding:6px 21px 6px 6px;border-radius:999px;background:var(--cbar-grad);color:#fff;
  box-shadow:0 14px 30px -16px rgba(8,30,36,.6)}
.cbar .cbar-hav{position:relative;flex:none;width:35px;height:35px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.16);box-shadow:0 0 0 2px rgba(255,255,255,.5)}
.cbar .cbar-hav img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.cbar .cbar-hav .cbar-ini{font-size:17px}
.cbar .cbar-htxt{display:flex;flex-direction:column;line-height:1.25}
.cbar .cbar-htxt b{font-size:15.5px;font-weight:700;color:#fff}
.cbar .cbar-htxt small{font-size:13px;color:rgba(255,255,255,.78)}

.cbar .cbar-opt{display:flex;align-items:center;gap:9px}
.cbar[data-side="left"] .cbar-opt{flex-direction:row-reverse}
.cbar .cbar-link{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit;border-radius:999px;-webkit-tap-highlight-color:transparent;outline:none}
.cbar[data-side="left"] .cbar-link{flex-direction:row-reverse}
.cbar .cbar-link:focus-visible{outline:3px solid var(--cbar-brand,#16306b);outline-offset:2px}
.cbar .cbar-pill{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:50px;padding:6px 18px;border-radius:999px;background:#fff;
  box-shadow:0 10px 24px -14px rgba(8,30,36,.5),0 0 0 1px rgba(14,31,71,.07)}
.cbar .cbar-pill::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 18px 34px -14px rgba(8,30,36,.6);opacity:0;pointer-events:none}
.cbar .cbar-pill b{font-size:15.5px;font-weight:700;line-height:1.25;color:var(--cbar-ink,#0e1f47)}
.cbar .cbar-pill small{font-size:13.5px;line-height:1.3;color:#4f5867;white-space:nowrap}
.cbar .cbar-ic{flex:none;width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;
  box-shadow:0 10px 22px -12px rgba(8,30,36,.6)}
.cbar .cbar-ic--wa{background:#0B7A6D}
.cbar .cbar-ic--tel{background:#0E7490}
.cbar .cbar-ic--mail{background:#B45309}
.cbar .cbar-ic--extra{background:var(--cbar-grad)}

.cbar .cbar-copy{position:relative;flex:none;box-sizing:border-box;width:34px;height:34px;margin:0;padding:0;border:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:#fff;color:var(--cbar-ink,#0e1f47);cursor:pointer;
  box-shadow:0 8px 18px -10px rgba(8,30,36,.5),0 0 0 1px rgba(14,31,71,.08);-webkit-appearance:none;appearance:none;outline:none}
.cbar .cbar-copy::before{content:"";position:absolute;inset:-5px;border-radius:50%}
.cbar .cbar-copy:hover,.cbar .cbar-copy:focus{background:#fff;color:var(--cbar-light,#1e4aa8)}
.cbar .cbar-copy:focus-visible{outline:3px solid var(--cbar-brand,#16306b);outline-offset:2px}

.cbar .cbar-toast{margin:0;padding:10px 17px;border-radius:999px;background:var(--cbar-ink,#0e1f47);color:#fff;font-size:15px;font-weight:600;line-height:1.35;
  max-width:100%;overflow-wrap:anywhere;box-shadow:0 12px 26px -14px rgba(8,30,36,.7)}
.cbar .cbar-toast:empty{display:none}
.cbar .cbar-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* hover only where there is a real pointer: on touch screens it would stick after a tap */
@media (hover:hover){
  .cbar .cbar-btn:hover{transform:translateY(-3px) scale(1.04)}
  .cbar .cbar-link:hover .cbar-pill{transform:translateX(4px)}
  .cbar[data-side="left"] .cbar-link:hover .cbar-pill{transform:translateX(-4px)}
  .cbar .cbar-link:hover .cbar-pill::after{opacity:1}
}

@media (max-width:559px){
  .psra-bot.cbar{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  .psra-bot.cbar[data-side="left"]{right:auto;left:16px}
  .cbar .cbar-btn{width:53px;height:53px}
  .cbar .cbar-stack{right:3.5px;bottom:69px}
  .cbar[data-side="left"] .cbar-stack{right:auto;left:3.5px}
  .cbar.cbar--down .cbar-stack{bottom:auto;top:69px}
}

@media (prefers-reduced-motion:no-preference){
  .cbar .cbar-btn{transition:transform .25s cubic-bezier(.22,1,.36,1)}
  .cbar.cbar--drag .cbar-btn{transition:none}
  .cbar .cbar-x,.cbar .cbar-dot{transition:opacity .28s ease,transform .28s cubic-bezier(.22,1,.36,1)}
  .cbar .cbar-box[open] .cbar-row{animation:cbar-in .32s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i,0) * 45ms)}
  .cbar .cbar-pill{transition:transform .2s cubic-bezier(.22,1,.36,1)}
  .cbar .cbar-pill::after{transition:opacity .2s ease}
}
@keyframes cbar-in{from{opacity:0;transform:translateY(14px) scale(.92)}to{opacity:1;transform:none}}

/* the hello bubble: once per visit, a few seconds after the page settles (JS) */
.cbar .cbar-hello{position:absolute;top:50%;right:calc(100% + 14px);display:block;padding:10px 15px;border-radius:14px;background:#fff;color:var(--cbar-ink,#0e1f47);
  font-size:14px;font-weight:500;line-height:1.3;white-space:nowrap;translate:0 -50%;pointer-events:none;opacity:0;visibility:hidden;
  box-shadow:0 18px 36px -16px rgba(8,30,36,.55),0 0 0 1px rgba(14,31,71,.07)}
.cbar .cbar-hello b{font-weight:700}
.cbar .cbar-hello::after{content:"";position:absolute;top:50%;right:-5px;width:10px;height:10px;margin-top:-5px;border-radius:2px;background:#fff;transform:rotate(45deg);
  box-shadow:2px -2px 3px -1px rgba(14,31,71,.06)}
.cbar[data-side="left"] .cbar-hello{right:auto;left:calc(100% + 14px)}
.cbar[data-side="left"] .cbar-hello::after{right:auto;left:-5px}
.cbar.cbar--hello .cbar-hello{opacity:1;visibility:visible}
.cbar .cbar-box[open]~.cbar-hello,.cbar.is-chat .cbar-hello{display:none}

/* the closed button is alive: it arrives, then nudges now and then */
@media (prefers-reduced-motion:no-preference){
  .cbar .cbar-btn{animation:cbar-pop .7s cubic-bezier(.2,1.4,.4,1) .5s backwards,cbar-hop 8s cubic-bezier(.3,.7,.4,1) 4s infinite}
  .cbar .cbar-box[open] .cbar-btn,.cbar.is-chat .cbar-btn,.cbar.cbar--drag .cbar-btn{animation:cbar-pop .7s cubic-bezier(.2,1.4,.4,1) .5s backwards}
  .cbar .cbar-btn::before,.cbar .cbar-btn::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid rgba(53,102,207,.6);pointer-events:none;opacity:0;
    animation:cbar-ring 8s cubic-bezier(.2,.7,.3,1) 4.3s infinite}
  .cbar .cbar-btn::after{animation-delay:4.65s}
  .cbar .cbar-box[open] .cbar-btn::before,.cbar .cbar-box[open] .cbar-btn::after,.cbar.is-chat .cbar-btn::before,.cbar.is-chat .cbar-btn::after,
  .cbar.cbar--drag .cbar-btn::before,.cbar.cbar--drag .cbar-btn::after{animation:none}
  .cbar .cbar-dot{animation:cbar-dot 8s ease 4.2s infinite}
  .cbar .cbar-box[open] .cbar-dot,.cbar.is-chat .cbar-dot{animation:none}
  .cbar.cbar--hello .cbar-hello{animation:cbar-hello 6.4s cubic-bezier(.22,1,.36,1) both}
}
@keyframes cbar-pop{from{opacity:0;scale:.4}}
@keyframes cbar-hop{0%,15%,100%{translate:0 0}4%{translate:0 -9px}8.5%{translate:0 0}11.5%{translate:0 -3px}}
@keyframes cbar-ring{0%{opacity:.75;transform:scale(1)}24%,100%{opacity:0;transform:scale(1.75)}}
@keyframes cbar-dot{0%,12%,100%{transform:scale(1)}6%{transform:scale(1.3)}}
@keyframes cbar-hello{0%{opacity:0;transform:translateX(10px) scale(.92)}8%,88%{opacity:1;transform:none}100%{opacity:0;transform:translateX(6px) scale(.96)}}

/* ===== AI assistant panel, opened from the contact button ===== */
.psra-bot{
  --pb-d1:var(--psra-primary-dd);
  --pb-d2:var(--psra-primary-d);
  --pb-d3:var(--psra-primary);
  --pb-gold:var(--psra-primary);
  --pb-gold2:var(--psra-primary-d);
  --pb-gold3:var(--psra-primary-dd);
  --pb-gold-lt:var(--psra-primary);
  --pb-gold-soft:var(--psra-primary-soft);
  --pb-gold-tint:var(--psra-primary-soft);
  --pb-on-gold:#fff;
  --pb-ink:var(--psra-ink);
  --pb-line:var(--psra-line);
  --pb-soft:var(--psra-bg-soft);
  font-family:var(--psra-font,'Inter',system-ui,-apple-system,sans-serif)}
.psra-bot *{box-sizing:border-box}
.psra-bot button{font-family:inherit}

/* panel (placed by JS beside the contact button when it opens) */
.psra-bot__panel{position:fixed;right:24px;bottom:96px;width:400px;max-width:calc(100vw - 36px);height:575px;max-height:calc(100vh - 120px);
  display:flex;flex-direction:column;overflow:hidden;background:var(--psra-bg,#fff);border:1px solid rgba(0,0,0,.10);border-radius:24px;
  box-shadow:0 44px 90px -30px rgba(0,0,0,.55),0 18px 40px -22px rgba(0,0,0,.32);
  opacity:0;transform:translateY(20px) scale(.94);transform-origin:bottom right;pointer-events:none;
  transition:opacity .3s ease,transform .42s cubic-bezier(.16,1,.3,1)}
.psra-bot[data-open="1"] .psra-bot__panel{opacity:1;transform:none;pointer-events:auto}

/* header */
.psra-bot__head{position:relative;flex:none;display:flex;align-items:center;gap:12px;padding:14px 14px 14px 14px;color:#fff;overflow:hidden;
  background:var(--pb-d3)}
.psra-bot__head-glow{position:absolute;top:-70%;left:-12%;width:55%;height:220%;pointer-events:none;background:var(--psra-primary);filter:blur(6px)}
.psra-bot__head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:transparent}
.psra-bot__avatar{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:13px;background:var(--psra-bg,#fff);padding:6px;
  box-shadow:0 2px 3px rgba(255,255,255,.5) inset,0 8px 18px -8px rgba(0,0,0,.5)}
.psra-bot__avatar img{width:100%;height:100%;object-fit:contain;display:block}
.psra-bot__avatar-fb{display:none;align-items:center;justify-content:center;width:100%;height:100%;color:var(--pb-gold)}
.psra-bot__avatar.is-fallback{background:var(--pb-gold-lt);padding:0;box-shadow:0 5px 14px -5px var(--psra-primary),inset 0 1px 1px rgba(255,255,255,.5)}
.psra-bot__avatar.is-fallback .psra-bot__avatar-fb{display:flex;color:#fff}
.psra-bot__status{position:absolute;right:-3px;bottom:-3px;width:13px;height:13px;border-radius:50%;background:var(--psra-success,#059669);border:2.5px solid #111;animation:pb-live 2.2s ease-out infinite}
@keyframes pb-live{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--psra-success,#059669) 55%, transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb, var(--psra-success,#059669) 0%, transparent)}100%{box-shadow:0 0 0 0 color-mix(in srgb, var(--psra-success,#059669) 0%, transparent)}}
.psra-bot__id{position:relative;display:flex;flex-direction:column;line-height:1.25;flex:1 1 auto;min-width:0}
.psra-bot__id strong{font-size:14.5px;font-weight:700;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.psra-bot__id>span{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--psra-faint,#9e9e9e);margin-top:2px}
.psra-bot__dot{width:6px;height:6px;border-radius:50%;background:var(--psra-success,#059669);flex:none}
.psra-bot__close{position:relative;flex:none;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer;border-radius:10px;color:var(--psra-line,#cfcfcf);background:rgba(255,255,255,.08);transition:background .18s,color .18s,transform .25s}
.psra-bot__close:hover{background:rgba(255,255,255,.18);color:#fff;transform:rotate(90deg)}

/* log */
.psra-bot__log{flex:1 1 auto;overflow-y:auto;padding:20px 16px 10px;display:flex;flex-direction:column;gap:14px;background:var(--psra-bg-soft,#fbfbfb);scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.18) transparent}
.psra-bot__log::-webkit-scrollbar{width:7px}
.psra-bot__log::-webkit-scrollbar-thumb{background:rgba(0,0,0,.16);border-radius:10px;border:2px solid transparent;background-clip:padding-box}
.psra-bot__log::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3);background-clip:padding-box}

/* rows + bubbles */
.psra-bot__row{display:flex;align-items:flex-end;gap:9px;max-width:100%;animation:pb-in .34s cubic-bezier(.16,1,.3,1) both}
@keyframes pb-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.psra-bot__row--user{flex-direction:row-reverse}
.psra-bot__ava{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;color:var(--pb-d1);background:var(--pb-gold2);box-shadow:0 5px 12px -5px var(--psra-primary)}
.psra-bot__bub{max-width:calc(100% - 42px);font-size:14px;line-height:1.55;padding:11px 14px;border-radius:16px;word-wrap:break-word;overflow-wrap:anywhere}
.psra-bot__bub a{font-weight:600;text-decoration:underline;text-underline-offset:2px}
.psra-bot__bub strong{font-weight:700}
.psra-bot__bub--bot{background:var(--psra-bg,#fff);color:var(--pb-ink);border:1px solid var(--pb-line);border-bottom-left-radius:5px;box-shadow:0 8px 20px -14px rgba(0,0,0,.4)}
.psra-bot__bub--bot a{color:var(--pb-gold3)}
.psra-bot__bub--user{background:var(--pb-d3);color:#fff;border-bottom-right-radius:5px;box-shadow:0 10px 22px -12px rgba(0,0,0,.6)}
.psra-bot__bub--user a{color:var(--pb-gold2)}
.psra-bot__bub--err{background:var(--psra-bg,#fff);color:var(--psra-danger,#dc2626);border:1px solid color-mix(in srgb, var(--psra-danger,#dc2626) 22%, var(--psra-bg,#fff));border-bottom-left-radius:5px}

/* typing */
.psra-bot__typing{display:inline-flex;align-items:center;gap:5px;padding:13px 16px;background:var(--psra-bg,#fff);border:1px solid var(--pb-line);border-radius:16px;border-bottom-left-radius:5px;box-shadow:0 8px 20px -14px rgba(0,0,0,.4)}
.psra-bot__typing i{width:7px;height:7px;border-radius:50%;background:var(--pb-gold);animation:pb-blink 1.3s infinite both}
.psra-bot__typing i:nth-child(2){animation-delay:.18s}
.psra-bot__typing i:nth-child(3){animation-delay:.36s}
@keyframes pb-blink{0%,70%,100%{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}

/* chips */
.psra-bot__chips{flex:none;display:flex;flex-wrap:wrap;gap:8px;padding:6px 16px 12px;background:var(--pb-soft)}
.psra-bot__chip{font-size:12.5px;font-weight:600;color:var(--pb-d3);cursor:pointer;background:var(--psra-bg,#fff);border:1px solid var(--pb-line);border-radius:999px;padding:8px 14px;box-shadow:0 4px 12px -8px rgba(0,0,0,.3);transition:border-color .18s,background .18s,color .18s,transform .18s,box-shadow .18s}
.psra-bot__chip:hover{border-color:var(--pb-gold);background:var(--psra-primary-soft,var(--pb-gold-soft));color:var(--pb-d1);transform:translateY(-1px);box-shadow:0 8px 18px -10px var(--psra-primary)}

/* composer */
.psra-bot__bar{flex:none;display:flex;align-items:center;gap:9px;padding:12px 12px 12px 14px;border-top:1px solid var(--pb-line);background:var(--psra-bg,#fff)}
.psra-bot__input{flex:1 1 auto;font-size:14px;color:var(--pb-ink);border:1.5px solid var(--pb-line);border-radius:999px;padding:12px 16px;outline:none;background:var(--pb-soft);transition:border-color .2s,box-shadow .2s,background .2s}
.psra-bot__input::placeholder{color:var(--psra-faint,#9e9e9e)}
.psra-bot__input:focus{border-color:var(--pb-gold);background:var(--psra-bg,#fff);box-shadow:0 0 0 4px var(--psra-primary-soft)}
.psra-bot__send{flex:none;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer;border-radius:50%;color:var(--pb-d1);
  background:var(--pb-gold-lt);box-shadow:0 2px 3px rgba(255,255,255,.55) inset,0 10px 20px -8px var(--psra-primary);transition:transform .15s,filter .15s,opacity .15s}
.psra-bot__send svg{margin-left:-1px}
.psra-bot__send:hover{filter:brightness(1.06)}
.psra-bot__send:active{transform:scale(.92)}
.psra-bot__send:disabled{opacity:.45;cursor:default;filter:grayscale(.25)}
.psra-bot__foot{flex:none;margin:0;padding:0 16px 11px;font-size:10.5px;letter-spacing:.02em;color:var(--psra-ink);text-align:center;background:var(--psra-bg,#fff)}
.psra-bot__foot a{color:var(--psra-muted,#6b6b6b);text-decoration:underline;text-underline-offset:2px}

/* scrim (mobile) */
.psra-bot__scrim{display:none}
@media (max-width:480px){
  .psra-bot__scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:-1}
  .psra-bot[data-open="1"] .psra-bot__scrim{opacity:1;pointer-events:auto}
  .psra-bot__panel{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:auto!important;max-width:none;height:76vh;height:76dvh;max-height:76vh;max-height:76dvh;border-radius:22px 22px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
}
@media (prefers-reduced-motion:reduce){.psra-bot .psra-bot__panel,.psra-bot .psra-bot__panel *,.psra-bot .psra-bot__scrim{animation:none!important;transition:opacity .15s ease!important}}

/* === theme-proofing: lock widget controls so the active theme cannot restyle them === */
.psra-bot button.psra-bot__close{-webkit-appearance:none!important;appearance:none!important;box-sizing:border-box!important;width:34px!important;height:34px!important;min-width:0!important;margin:0!important;padding:0!important;border:0!important;outline:none!important;border-radius:10px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:normal!important;background:rgba(255,255,255,.08)!important}
.psra-bot button.psra-bot__close:hover{background:rgba(255,255,255,.2)!important}
.psra-bot button.psra-bot__send{-webkit-appearance:none!important;appearance:none!important;box-sizing:border-box!important;width:44px!important;height:44px!important;min-width:0!important;margin:0!important;padding:0!important;border:0!important;outline:none!important;border-radius:50%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:normal!important;background:var(--pb-gold-lt)}
.psra-bot button.psra-bot__chip{-webkit-appearance:none!important;appearance:none!important;box-sizing:border-box!important;margin:0!important;border:1px solid var(--pb-line)!important;outline:none!important;border-radius:999px!important;padding:8px 14px!important;width:auto!important;height:auto!important;background:var(--psra-bg,#fff)!important;color:var(--pb-d3)!important;line-height:normal!important}
.psra-bot button.psra-bot__chip:hover{border-color:var(--pb-gold)!important;background:var(--psra-primary-soft,var(--pb-gold-soft));color:var(--pb-d1)!important}
.psra-bot input.psra-bot__input{-webkit-appearance:none!important;appearance:none!important;box-sizing:border-box!important;margin:0!important;border:1.5px solid var(--pb-line)!important;outline:none!important;border-radius:999px!important;padding:12px 16px!important;width:auto!important;height:auto!important;background:var(--pb-soft)!important;color:var(--pb-ink)!important;line-height:normal!important}
.psra-bot input.psra-bot__input:focus{border-color:var(--pb-gold)!important;background:var(--psra-bg,#fff)!important}
.psra-bot__lang{display:inline-flex;gap:2px;margin-left:auto;margin-right:8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:2px;flex:none}
.psra-bot__lang button{border:none;background:transparent;color:rgba(255,255,255,.82);font-family:inherit;font-size:11px;font-weight:800;letter-spacing:.03em;padding:3px 9px;border-radius:999px;cursor:pointer;line-height:1.5;transition:background .15s ease,color .15s ease}
.psra-bot__lang button:hover{color:#fff}
.psra-bot__lang button.is-on{background:var(--psra-bg,#fff);color:var(--psra-primary)}

/* =====================================================================
 *  AMBRE — l'assistante a un visage et un prénom
 *  Palette alignée sur Nexora Business AI : marine profond, halo bleuté.
 * ===================================================================== */
/* portrait dans l'en-tête du panneau */
.psra-bot__avatar.is-face{padding:0;overflow:hidden;border-radius:50%;background:linear-gradient(140deg,#1e4aa8,#16306b)}
.psra-bot__avatar.is-face img{width:100%;height:100%;object-fit:cover;object-position:center 20%;border-radius:50%}
.psra-bot__avatar.is-face .psra-bot__avatar-fb,
.psra-bot__avatar.is-face .psra-bot__ini{display:none}
.psra-bot__ini{display:none;font-weight:800;font-size:1.15rem;color:#fff}
.psra-bot__avatar.is-fallback .psra-bot__ini{display:block}
.psra-bot__avatar.is-fallback .psra-bot__avatar-fb{display:none}
.psra-bot__badge{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;padding:3px 7px;border-radius:999px;
	background:rgba(255,255,255,.2);color:#fff;vertical-align:middle;margin-left:7px}

/* =====================================================================
 *  ASSISTANTE — finition
 *  Objectif : plus calme et plus net. Moins d'ornement, des surfaces
 *  franches, une seule couleur d'accent. Chaque paire texte / fond est
 *  choisie pour rester au-dessus de 4,5:1, y compris au survol.
 * ===================================================================== */

/* ---- panneau : une seule ombre, un seul rayon ---- */
.psra-bot__panel{
	border-radius:20px;
	border:1px solid rgba(255,255,255,.1);
	box-shadow:0 40px 90px -40px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.08);
}

/* ---- en-tête : marine profond, texte blanc ---- */
.psra-bot__head{
	padding:16px 16px 15px;
	background:linear-gradient(140deg,#1e4aa8 0%,#16306b 62%,#0e1f47 100%) !important;
	border-bottom:1px solid rgba(255,255,255,.1);
}
.psra-bot__head-glow{display:none}
.psra-bot__id strong{font-size:15.5px;font-weight:700;letter-spacing:-.01em;color:#fff}
.psra-bot__id > span{font-size:12px;color:rgba(255,255,255,.72)}
.psra-bot__badge{
	background:rgba(255,255,255,.16) !important;color:#fff !important;
	border:1px solid rgba(255,255,255,.22);letter-spacing:.09em;
}
.psra-bot__dot{width:7px;height:7px;border-radius:50%;background:#3ddc84;display:inline-block;margin-right:5px}
.psra-bot__lang button{
	color:rgba(255,255,255,.72);background:transparent;border:1px solid rgba(255,255,255,.2);
	border-radius:999px;font-size:11.5px;font-weight:700;padding:4px 9px;cursor:pointer;
	transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.psra-bot__lang button:hover{color:#fff;border-color:rgba(255,255,255,.45)}
.psra-bot__lang button.is-on{background:#fff;color:#16306b;border-color:#fff}
.psra-bot__close{color:rgba(255,255,255,.8);border-radius:50%;transition:background .18s ease,color .18s ease}
.psra-bot__close:hover{background:rgba(255,255,255,.16);color:#fff}

/* ---- conversation ---- */
.psra-bot__log{padding:18px 16px 12px;gap:12px;background:#fafafa}
.psra-bot__bub--bot{
	background:#fff;color:var(--psra-ink,#161616);
	border:1px solid var(--psra-line,#e7e7e7);border-radius:16px;border-bottom-left-radius:5px;
	box-shadow:0 2px 6px rgba(0,0,0,.05) !important;
}
.psra-bot__bub--bot a{color:#16306b;text-underline-offset:2px}
.psra-bot__bub--user{
	background:#16306b !important;color:#fff !important;
	border-radius:16px;border-bottom-right-radius:5px;
	box-shadow:0 6px 16px -10px rgba(22,48,107,.8) !important;
}
.psra-bot__bub--user a{color:#cddcff !important}
.psra-bot__ava{background:linear-gradient(140deg,#1e4aa8,#16306b) !important;color:#fff !important;border-radius:50%}
.psra-bot__typing{background:#fff;border:1px solid var(--psra-line,#e7e7e7);box-shadow:0 2px 6px rgba(0,0,0,.05)}
.psra-bot__typing i{background:#1e4aa8}

/* ---- suggestions ---- */
.psra-bot__chips{padding:4px 16px 12px;background:#fafafa}
.psra-bot button.psra-bot__chip{
	background:#fff !important;color:#16306b !important;
	border:1px solid var(--psra-line,#e7e7e7) !important;border-radius:999px !important;
	font-weight:600;box-shadow:none !important;
	transition:border-color .18s ease,background .18s ease,transform .18s ease !important;
}
.psra-bot button.psra-bot__chip:hover{
	background:#16306b !important;color:#fff !important;border-color:#16306b !important;transform:translateY(-1px);
}

/* ---- barre de saisie ---- */
.psra-bot__bar{padding:12px 12px 12px 14px;border-top:1px solid var(--psra-line,#e7e7e7);background:#fff}
.psra-bot input.psra-bot__input{
	background:#f4f5f7 !important;border:1.5px solid transparent !important;
	color:var(--psra-ink,#161616) !important;border-radius:999px !important;
}
.psra-bot__input::placeholder{color:#8a8f99}
.psra-bot input.psra-bot__input:focus{
	background:#fff !important;border-color:#1e4aa8 !important;
	box-shadow:0 0 0 3px rgba(30,74,168,.16) !important;
}
.psra-bot button.psra-bot__send{
	background:linear-gradient(140deg,#1e4aa8,#16306b) !important;color:#fff !important;
	box-shadow:0 8px 18px -9px rgba(22,48,107,.9) !important;
	transition:transform .18s ease,box-shadow .18s ease !important;
}
.psra-bot button.psra-bot__send:hover{transform:translateY(-1px);box-shadow:0 12px 24px -9px rgba(22,48,107,1) !important;filter:none}
.psra-bot button.psra-bot__send:disabled{opacity:.4;transform:none}

/* ---- pied ---- */
.psra-bot__foot{padding:0 16px 12px;font-size:11px;color:var(--psra-ink-2,#3a3a3a);background:#fff}
.psra-bot__foot a{color:#16306b;text-decoration:underline;text-underline-offset:2px}

@media (prefers-reduced-motion:reduce){
	.psra-bot__chip,.psra-bot__send,.psra-bot__lang button{transition:none !important}
}


/* compact assistant panel */
.psra-bot .psra-bot__head{padding:14px 16px;gap:11px}
.psra-bot .psra-bot__avatar{width:44px;height:44px}
.psra-bot .psra-bot__id strong{font-size:16.5px}
.psra-bot .psra-bot__id>span{font-size:13px}
.psra-bot .psra-bot__log{padding:16px 16px 12px;gap:11px}
.psra-bot .psra-bot__bub{font-size:15.5px;padding:10px 14px}
.psra-bot .psra-bot__chips{padding:2px 16px 12px;gap:7px}
.psra-bot button.psra-bot__chip{font-size:13.5px!important;padding:7px 13px!important}
.psra-bot .psra-bot__bar{padding:12px 12px 12px 14px}
.psra-bot input.psra-bot__input{padding:12px 16px!important;font-size:15.5px}
.psra-bot button.psra-bot__send{width:46px!important;height:46px!important}
.psra-bot .psra-bot__foot{padding:0 16px 12px;font-size:12px}

/* closed panel: out of the tab order and hidden from screen readers too */
.psra-bot .psra-bot__panel{visibility:hidden;transition:opacity .3s ease,transform .42s cubic-bezier(.16,1,.3,1),visibility 0s linear .42s}
.psra-bot[data-open="1"] .psra-bot__panel{visibility:visible;transition-delay:0s}
