/* psra-score */
.psra-score{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.psra-score__gauge{position:relative;width:120px;height:120px}
.psra-score__gauge svg{transform:rotate(-90deg)}
.psra-score__track{fill:none;stroke:#ece9e1;stroke-width:9}
.psra-score__arc{fill:none;stroke:var(--sc-color,var(--psra-primary));stroke-width:9;stroke-linecap:round;transition:stroke-dashoffset 1.1s cubic-bezier(.2,.7,.2,1)}
.psra-score__num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.psra-score__num strong{font-size:32px;font-weight:800;color:var(--sc-color,var(--psra-primary));letter-spacing:-1px}
.psra-score__num span{font-size:12px;font-weight:600;color:var(--psra-muted,#8a8f97)}
.psra-score__meta{display:flex;flex-direction:column;gap:1px}
.psra-score__label{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--psra-muted,#8a8f97)}
.psra-score__grade{font-size:15px;font-weight:800;color:var(--sc-color,var(--psra-primary))}
.psra-score__parts{list-style:none;margin:14px 0 0;padding:0;width:100%;display:flex;flex-direction:column;gap:9px}
.psra-score__part{display:flex;flex-direction:column;gap:5px}
.psra-score__pl{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--psra-ink-2,#4a4f57)}
.psra-score__pl b{font-weight:700;color:var(--psra-ink,#14161a);font-variant-numeric:tabular-nums}
.psra-score__na{font-size:12px;font-weight:600;color:var(--psra-muted,#8a8f97)}
.psra-score__part.is-na{opacity:.72}
.psra-score__bar{height:6px;border-radius:6px;background:var(--psra-line);overflow:hidden}
.psra-score__bar i{display:block;height:100%;border-radius:6px;background:var(--sc-color,var(--psra-primary));width:0;transition:width 1s cubic-bezier(.2,.7,.2,1)}
.psra-score--compact .psra-score__gauge{width:88px;height:88px}
.psra-score--compact .psra-score__num strong{font-size:24px}
.psra-scorechip{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:800;color:var(--sc-color,var(--psra-primary));background:color-mix(in srgb,var(--sc-color,var(--psra-primary)) 12%,#fff);border:1px solid color-mix(in srgb,var(--sc-color,var(--psra-primary)) 32%,#fff);border-radius:999px;padding:3px 9px;line-height:1}
.psra-scoreblock{max-width:560px}
.psra-rev__report{margin:10px 0 0;background:none;border:none;padding:0;font-size:12.5px;color:var(--psra-muted,#8a8f97);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.psra-rev__report:hover{color:var(--psra-danger,#b3261e)}
.psra-rev__report[disabled]{opacity:.55;cursor:default;text-decoration:none}
@media (prefers-reduced-motion:reduce){.psra-score__arc,.psra-score__bar i{transition:none}}
/* psra-blog-archive */
.bg-wrap{
	/* Reference palette on the right. Swap these four and the page changes
	   wholesale; they are the only place a colour is decided. */
	--bg-page:#f5f5f1;                          /* #F4F4EF */
	--bg-card:#fff;
	--bg-ink:#1a1a1a;
	--bg-accent:#16306b;                        /* #C9A227 */
	--bg-action:#1e7c46;                        /* #3E7B4F */
	--bg-body:#444;
	--bg-muted:#777;
	--bg-hair:#eaeae4;
	--bg-line:#e0e0d8;
	--bg-serif:Georgia,"Iowan Old Style","Times New Roman",serif;

	background:var(--bg-page);
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	font-size:14px;line-height:1.6;color:var(--bg-body);
}
.bg-wrap *,.bg-wrap *::before,.bg-wrap *::after{box-sizing:border-box}
.bg-container{max-width:1400px;margin:0 auto;padding:0 24px}

/* ---- hero banner ---- */
.bg-hero{
	position:relative;display:grid;place-items:center;
	min-height:330px;padding:48px 24px;
	background:#23231f center/cover no-repeat;
}
.bg-hero::after{content:"";position:absolute;inset:0;background:rgba(15,16,14,.35)}
.bg-hero__in{position:relative;z-index:1;text-align:center;max-width:820px}
.bg-hero__t{
	margin:0;font-family:var(--bg-serif);
	font-size:clamp(28px,4.4vw,40px);font-weight:700;line-height:1.15;
	color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.45);
}
.bg-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.bg-crumbs{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;margin:0 0 16px;font-size:13px;line-height:1.5;color:rgba(255,255,255,.88);text-shadow:0 1px 8px rgba(0,0,0,.45)}
.bg-crumbs a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45);transition:border-color .2s ease}
.bg-crumbs a:hover,.bg-crumbs a:focus-visible{border-bottom-color:#fff}
.bg-crumbs__sep{opacity:.7}
.bg-hero__s{
	margin:14px auto 0;max-width:60ch;font-size:15px;line-height:1.6;
	color:rgba(255,255,255,.92);text-shadow:0 1px 8px rgba(0,0,0,.4);
}
.bg-hero--author{min-height:380px}
.bg-hero--author .bg-hero__s{font-size:15.5px;line-height:1.7;max-width:64ch}
.bg-author__av{display:block;width:96px;height:96px;margin:0 auto 18px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.9);box-shadow:0 10px 28px rgba(0,0,0,.3)}
.bg-author__job{margin:8px 0 0;font-size:14px;font-weight:600;letter-spacing:.01em;color:rgba(255,255,255,.9);text-shadow:0 1px 8px rgba(0,0,0,.4)}
.bg-author__links{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:20px 0 0}
.bg-author__links a{display:inline-flex;align-items:center;min-height:38px;padding:8px 18px;border:1px solid rgba(255,255,255,.6);border-radius:999px;background:rgba(255,255,255,.1);font-size:13px;font-weight:700;color:#fff;text-decoration:none;transition:background-color .2s ease}
.bg-author__links a:hover,.bg-author__links a:focus-visible{background:rgba(255,255,255,.22)}

/* ---- category chips ---- */
.bg-chips{display:flex;flex-wrap:wrap;gap:8px;padding:34px 0 0}
.bg-chips__c{
	padding:8px 16px;border-radius:2px;
	background:var(--bg-card);border:1px solid var(--bg-line);
	font-size:13px;font-weight:600;color:var(--bg-body);text-decoration:none;
	transition:border-color .2s ease,color .2s ease;
}
.bg-chips__c:hover{border-color:var(--bg-accent);color:var(--bg-accent)}
.bg-chips__c.is-active{background:var(--bg-accent);border-color:var(--bg-accent);color:#fff}

/* ---- grid: 3 / 2 / 1 ---- */
.bg-grid{
	display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
	column-gap:30px;row-gap:40px;
	margin-top:55px;align-items:stretch;
}

/* ---- card ---- */
.bg-card{
	display:flex;flex-direction:column;height:100%;overflow:hidden;
	background:var(--bg-card);border-radius:2px;
	box-shadow:0 1px 4px rgba(0,0,0,.07);
	transition:box-shadow .3s ease,transform .3s cubic-bezier(.2,.8,.2,1);
}
.bg-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.11)}
.bg-card__media{
	display:block;position:relative;overflow:hidden;
	aspect-ratio:16/11;background:#e9e9e3;
}
.bg-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.bg-card:hover .bg-card__media img{transform:scale(1.04)}
.bg-card__media--none{display:grid;place-items:center;color:#c9c9c0}
.bg-card__media--none svg{width:34px;height:34px}

.bg-card__body{display:flex;flex-direction:column;flex:1 1 auto;padding:22px}
.bg-card__cat{
	align-self:flex-start;margin-bottom:10px;
	font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
	color:var(--bg-muted);text-decoration:none;
}
.bg-card__cat:hover{color:var(--bg-accent)}
.bg-card__title{
	margin:0 0 10px;font-family:var(--bg-serif);
	font-size:19px;font-weight:700;line-height:1.35;
}
.bg-card__title a{color:var(--bg-accent);text-decoration:none;transition:opacity .2s ease}
.bg-card:hover .bg-card__title a{opacity:.78}
.bg-card__exc{
	margin:0 0 16px;font-size:14px;line-height:1.6;color:var(--bg-body);
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
	overflow:hidden;text-overflow:ellipsis;
}
.bg-card__more{
	display:inline-flex;align-items:center;gap:5px;
	margin-top:auto;align-self:flex-start;
	font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
	color:var(--bg-action);text-decoration:none;
	transition:gap .2s cubic-bezier(.2,.8,.2,1),opacity .2s ease;
}
.bg-card__more svg{width:11px;height:11px;flex:none}
.bg-card:hover .bg-card__more{gap:9px;opacity:.85}

.bg-card__foot{
	display:flex;align-items:center;gap:9px;flex-wrap:wrap;
	padding:14px 22px;border-top:1px solid var(--bg-hair);
	font-size:12px;color:var(--bg-muted);
}
.bg-card__sep{width:3px;height:3px;border-radius:50%;background:#c4c4bc;flex:none}

/* ---- pagination ---- */
.bg-pager{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin:50px 0}
.bg-pager__n,.bg-pager__nav{
	min-width:36px;height:36px;padding:0 9px;
	display:inline-flex;align-items:center;justify-content:center;
	background:var(--bg-card);border:1px solid var(--bg-line);border-radius:2px;
	font-size:14px;font-weight:600;color:var(--bg-body);text-decoration:none;
	transition:border-color .2s ease,color .2s ease,background-color .2s ease;
}
.bg-pager__n:hover,.bg-pager__nav:hover{border-color:var(--bg-accent);color:var(--bg-accent)}
.bg-pager__n.is-current{background:var(--bg-accent);border-color:var(--bg-accent);color:#fff}
.bg-pager__nav.is-off{opacity:.4;pointer-events:none}
.bg-pager__nav svg{width:13px;height:13px}
.bg-pager__gap{padding:0 4px;color:var(--bg-muted)}

.bg-none{margin:55px 0;text-align:center;font-size:15px;color:var(--bg-muted)}

@media (max-width:992px){ .bg-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){
	.bg-grid{grid-template-columns:1fr;row-gap:30px;margin-top:38px}
	.bg-hero{min-height:240px}
	.bg-container{padding:0 18px}
}
@media (prefers-reduced-motion:reduce){
	.bg-card,.bg-card__media img,.bg-card__more,.bg-chips__c,.bg-pager__n,.bg-pager__nav,.bg-author__links a{transition:none}
	.bg-card:hover{transform:none}
	.bg-card:hover .bg-card__media img{transform:none}
}
/* psra-academy-public */
.fp,.fc{--fp-ink:#141414;--fp-ink2:#3a3a3a;--fp-muted:#6b6f78;--fp-line:#e6e7eb;--fp-soft:#f6f7f9;--fp-navy:#16306b;--fp-navy2:#1a3f8f;
	font-family:var(--psra-font,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif);color:var(--fp-ink);background:#fff}
.fp *,.fc *{box-sizing:border-box}
.fp-wrap,.fc-wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.fp-hero{position:relative;overflow:hidden;color:#fff;padding:34px 0 64px;
	background:radial-gradient(80% 90% at 12% 0%,rgba(43,82,168,.32) 0%,transparent 60%),radial-gradient(60% 70% at 92% 12%,rgba(123,95,214,.2) 0%,transparent 62%),linear-gradient(165deg,#0b0d14 0%,#07080d 60%,#000 100%)}
.fp-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:rgba(226,232,248,.72);margin-bottom:26px}
.fp-crumbs a{color:rgba(226,232,248,.85);text-decoration:none}
.fp-crumbs a:hover{color:#fff}
.fp-crumbs [aria-current]{color:#fff;font-weight:600}
.fp-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;align-items:start}
.fp-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.fp-tag{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em;
	background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff}
.fp-tag--free{background:rgba(30,124,70,.22);border-color:rgba(74,222,128,.35)}
.fp-tag--premium,.fp-tag--premium_plus{background:rgba(26,63,143,.35);border-color:rgba(159,184,232,.4)}
.fp-title{margin:0 0 16px;font-size:clamp(30px,4.2vw,50px);line-height:1.08;letter-spacing:-.03em;font-weight:800;color:#fff;text-wrap:balance}
.fp-lede{margin:0 0 24px;max-width:62ch;font-size:clamp(16px,1.6vw,18.5px);line-height:1.6;color:rgba(226,232,248,.88)}
.fp-facts{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0;padding:0;list-style:none}
.fp-facts li{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;color:rgba(255,255,255,.92)}
.fp-facts svg{color:#9fb8e8;flex:none}
.fp-card{position:relative;border-radius:22px;background:#fff;color:var(--fp-ink);overflow:hidden;
	box-shadow:0 2px 6px rgba(0,0,0,.2),0 40px 80px -40px rgba(0,0,0,.85)}
.fp-card__cover{aspect-ratio:16/9;background:var(--fp-soft)}
.fp-card__cover img{width:100%;height:100%;object-fit:cover;display:block}
.fp-card__body{padding:24px}
.fp-card__price{margin:0 0 6px;font-size:24px;font-weight:800;letter-spacing:-.02em}
.fp-card__meta{margin:0 0 18px;font-size:14px;line-height:1.5;color:var(--fp-muted)}
.fp-prog{height:8px;border-radius:999px;background:var(--fp-soft);overflow:hidden;margin:4px 0 8px}
.fp-prog span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--fp-navy2),#5b7fd6)}
.fp-card__list{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--fp-line);display:grid;gap:9px}
.fp-card__list li{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--fp-ink2)}
.fp-card__list svg{color:#1e7c46;flex:none}
.fp-btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:50px;padding:0 20px;border-radius:13px;
	font:inherit;font-size:15.5px;font-weight:700;text-decoration:none;cursor:pointer;border:1px solid transparent;
	transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,background-color .2s ease}
.fp-btn + .fp-btn{margin-top:10px}
.fp-btn--primary{background:var(--psra-primary,#1a1a1a);color:#fff;box-shadow:0 14px 28px -16px rgba(0,0,0,.7)}
.fp-btn--primary:hover{transform:translateY(-1px);box-shadow:0 18px 34px -16px rgba(0,0,0,.75)}
.fp-btn--ghost{background:#fff;color:var(--fp-ink);border-color:var(--fp-line)}
.fp-btn--ghost:hover{border-color:#c9ccd4}
.fp-btn--light{width:auto;background:#fff;color:#0b0d14}
.fp-btn svg{flex:none}
.fp-body{padding-top:56px;padding-bottom:24px}
.fp-col{max-width:760px}
.fp-sec{margin-bottom:48px}
.fp-h2{margin:0 0 16px;font-size:clamp(22px,2.4vw,28px);line-height:1.2;letter-spacing:-.02em;font-weight:800;color:var(--fp-ink)}
.fp-sub{margin:-8px 0 18px;font-size:14.5px;color:var(--fp-muted)}
.fp-objs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px}
.fp-objs li{display:flex;gap:10px;align-items:flex-start;font-size:15.5px;line-height:1.5;color:var(--fp-ink2)}
.fp-objs svg{flex:none;margin-top:3px;color:#1e7c46}
.fp-prose{font-size:16.5px;line-height:1.72;color:var(--fp-ink2)}
.fp-prose p{margin:0 0 1em}
.fp-curr{display:grid;gap:10px}
.fp-mod{border:1px solid var(--fp-line);border-radius:16px;background:#fff;overflow:hidden}
.fp-mod[open]{box-shadow:0 18px 40px -30px rgba(20,22,30,.35)}
.fp-mod summary{display:flex;align-items:center;gap:14px;padding:18px 20px;cursor:pointer;list-style:none;min-height:60px}
.fp-mod summary::-webkit-details-marker{display:none}
.fp-mod summary svg{margin-left:auto;flex:none;color:var(--fp-muted);transition:transform .25s ease}
.fp-mod[open] summary svg{transform:rotate(180deg)}
.fp-mod__n{font-size:13px;font-weight:800;color:var(--fp-navy2);font-variant-numeric:tabular-nums}
.fp-mod__t{font-size:16px;font-weight:700;color:var(--fp-ink)}
.fp-mod__c{margin-left:auto;font-size:13px;color:var(--fp-muted);white-space:nowrap}
.fp-mod__c + svg{margin-left:10px}
.fp-lessons{margin:0;padding:0 20px 14px 20px;list-style:none;counter-reset:l}
.fp-lessons li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--fp-line);font-size:15px;color:var(--fp-ink2)}
.fp-lessons__t{flex:1;min-width:0}
.fp-lessons__d{font-size:13px;color:var(--fp-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.fp-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:700;
	background:#e9f6ee;color:#1e7c46;white-space:nowrap}
.fp-preview{position:relative;padding:28px;border-radius:20px;background:linear-gradient(180deg,#fbfbfd,#f4f6fa);border:1px solid var(--fp-line)}
.fp-preview .fp-badge{margin-bottom:12px}
.fp-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--fp-navy2);text-decoration:none;min-height:44px}
.fp-link:hover{text-decoration:underline;text-underline-offset:3px}
.fp-related{padding:24px 0 64px;background:#fff}
.fp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.fp-rcard{display:flex;flex-direction:column;gap:10px;padding:22px;border-radius:18px;border:1px solid var(--fp-line);background:#fff;
	text-decoration:none;color:var(--fp-ink);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease,border-color .25s ease}
.fp-rcard:hover{transform:translateY(-3px);border-color:#d5d8df;box-shadow:0 26px 50px -32px rgba(20,22,30,.45)}
.fp-rcard .fp-tag{align-self:flex-start;background:var(--fp-soft);border-color:var(--fp-line);color:var(--fp-ink2)}
.fp-rcard__t{font-size:17px;font-weight:800;line-height:1.3;letter-spacing:-.01em}
.fp-rcard__d{font-size:14px;line-height:1.55;color:var(--fp-muted)}
.fp-rcard__go{margin-top:auto;display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:700;color:var(--fp-navy2)}
.fp-band{padding:48px 0;background:linear-gradient(165deg,#0b0d14,#000);color:#fff}
.fp-band__in{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.fp-band__t{margin:0 0 6px;font-size:clamp(22px,2.6vw,30px);font-weight:800;letter-spacing:-.02em;color:#fff}
.fp-band__d{margin:0;color:rgba(226,232,248,.8)}
/* certificate */
.fc{padding:40px 0 72px;background:linear-gradient(180deg,#f6f7f9,#eef0f4)}
.fc-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 auto 22px;max-width:1000px}
.fc-actions .fp-btn{width:auto;margin:0}
.fc-verified{display:flex;align-items:center;gap:8px;max-width:1000px;margin:0 auto 18px;font-weight:700;color:#1e7c46}
.fc-sheet{max-width:1000px;margin:0 auto;aspect-ratio:297/210;background:#fff;border-radius:6px;padding:26px;
	-webkit-print-color-adjust:exact;print-color-adjust:exact;
	box-shadow:0 2px 6px rgba(20,22,30,.06),0 40px 90px -46px rgba(20,22,30,.45)}
.fc-sheet__frame{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4% 7%;
	border:2px solid #16306b;outline:1px solid rgba(22,48,107,.25);outline-offset:-10px;border-radius:3px;
	background:radial-gradient(60% 55% at 50% 0%,rgba(26,63,143,.06),transparent 70%)}
.fc-kicker{margin:0 0 8px;font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#1a3f8f}
.fc-title{margin:0 0 5%;font-size:clamp(26px,4vw,46px);font-weight:800;letter-spacing:-.02em;color:#141414}
.fc-line{margin:0;font-size:clamp(13px,1.5vw,17px);color:#5b5f69}
.fc-name{margin:1.5% 0 2.5%;font-size:clamp(26px,4.2vw,48px);font-weight:800;letter-spacing:-.02em;color:#16306b;
	padding-bottom:1%;border-bottom:1px solid #e6e7eb;min-width:55%}
.fc-course{margin:1.2% 0 5%;font-size:clamp(17px,2.4vw,26px);font-weight:700;color:#141414;max-width:80%}
.fc-foot{display:flex;align-items:center;justify-content:space-between;width:80%;gap:18px}
.fc-foot > div:not(.fc-seal){display:flex;flex-direction:column;gap:4px;min-width:30%}
.fc-lbl{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#8a8f99}
.fc-val{font-size:clamp(13px,1.5vw,16px);font-weight:700;color:#141414;font-variant-numeric:tabular-nums}
.fc-seal{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#16306b;color:#fff;
	box-shadow:0 0 0 5px #fff,0 0 0 7px rgba(22,48,107,.3)}
.fc-verify{margin:4% 0 0;font-size:11.5px;color:#8a8f99}
@media (max-width:980px){
	.fp-hero__grid{grid-template-columns:1fr;gap:28px}
	.fp-card{max-width:520px}
	.fp-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
	.fp-wrap,.fc-wrap{padding:0 18px}
	.fp-hero{padding:22px 0 40px}
	.fp-objs{grid-template-columns:1fr}
	.fp-grid{grid-template-columns:1fr}
	.fp-mod summary{padding:16px}
	.fp-mod__c{display:none}
	.fp-lessons{padding:0 16px 10px}
	.fp-preview{padding:22px}
	.fp-band__in .fp-btn{width:100%}
	.fc-sheet{aspect-ratio:auto;padding:14px}
	.fc-sheet__frame{padding:28px 18px}
	.fc-foot{flex-direction:column;width:100%}
	.fc-actions .fp-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){.fp-btn,.fp-rcard,.fp-mod summary svg{transition:none}.fp-rcard:hover,.fp-btn--primary:hover{transform:none}}
@media print{
	@page{size:A4 landscape;margin:0}
	body *{visibility:hidden}
	.fc-sheet,.fc-sheet *{visibility:visible}
	.fc-sheet{position:fixed;inset:0;max-width:none;width:100%;height:100%;margin:0;border-radius:0;box-shadow:none;aspect-ratio:auto;padding:12mm}
	.fc-actions,.fc-verified{display:none}
}
/* psra-conversion */
/* trust strip */
.psra-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px;margin:28px auto;padding:0;list-style:none;max-width:980px}
.psra-trust li{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--psra-ink-2,#3a3a3a)}
.psra-trust svg{flex:none;color:#1e7c46}
.psra-trust--pricing{max-width:1100px;gap:10px 28px;padding:16px 22px;border:1px solid var(--psra-line,#e7e7e7);border-radius:16px;background:#fff}

/* pricing comparison fold */
.psra-pr-fold{max-width:1180px;margin:8px auto 0}
.psra-pr-fold__sum{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;margin:0 auto;padding:0 22px;
	width:max-content;max-width:100%;border:1px solid var(--psra-line,#e7e7e7);border-radius:999px;background:#fff;cursor:pointer;
	font-weight:700;font-size:15px;color:var(--psra-ink,#161616);list-style:none;transition:border-color .2s ease,box-shadow .2s ease}
.psra-pr-fold__sum::-webkit-details-marker{display:none}
.psra-pr-fold__sum:hover{border-color:#c9ccd4;box-shadow:0 14px 30px -22px rgba(20,22,30,.45)}
.psra-pr-fold__n{display:inline-grid;place-items:center;min-width:26px;height:22px;padding:0 7px;border-radius:999px;
	background:var(--psra-bg-soft,#f4f5f7);font-size:12px;font-weight:800;color:var(--psra-ink-2,#3a3a3a)}
.psra-pr-fold__sum svg{transition:transform .25s ease}
.psra-pr-fold[open] .psra-pr-fold__sum svg{transform:rotate(180deg)}
.psra-pr-fold[open] > .psra-pr-cmp-scroll{margin-top:22px}

/* sticky sign-up invitation: one surface, a bar on phones and a card on computers */
/* Solid, not see-through: the page behind used to read faintly through the text. */
.psra-mcta{display:none;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,0) 55%) #0e0f14;color:#fff;border:1px solid rgba(255,255,255,.1)}
.psra-mcta[hidden]{display:none!important}
.psra-mcta .psra-mcta__ic,.psra-mcta .psra-mcta__x{display:none}
.psra-mcta .psra-mcta__btn{text-decoration:none;white-space:nowrap}
.psra-mcta .psra-mcta__btn,.psra-mcta .psra-mcta__btn:hover,.psra-mcta .psra-mcta__btn:focus{color:#0b0d14}
.psra-mcta .psra-mcta__btn:focus-visible,.psra-mcta .psra-mcta__x:focus-visible{outline:2px solid var(--psra-accent,#E07B22);outline-offset:3px}
@media (max-width:760px){
	.psra-mcta{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:9990;
		display:flex;align-items:center;gap:12px;padding:10px 10px 10px 16px;border-radius:18px;
		box-shadow:0 18px 40px -16px rgba(0,0,0,.6);animation:psra-mcta-in .32s cubic-bezier(.2,.8,.2,1) both}
	.psra-mcta__txt{display:flex;flex-direction:column;min-width:0;line-height:1.25}
	.psra-mcta__txt strong{font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
	.psra-mcta__txt span{font-size:12px;color:rgba(226,232,248,.75);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
	.psra-mcta .psra-mcta__btn{margin-left:auto;flex:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:12px;
		background:#fff;color:#0b0d14;font-size:14px;font-weight:800}
	body.psra-mcta-on .psra-bot{translate:0 calc(-1 * var(--psra-mcta-lift,78px));transition:translate .3s cubic-bezier(.2,.8,.2,1)}
	.psra-trust{justify-content:flex-start;gap:10px 16px}
	.psra-trust--pricing{margin:22px 16px}
}
/* Narrow phones: the two lines and the button no longer fit side by side, so
   the reassurance runs on one line above a full-width button, nothing cut. */
@media (max-width:439px){
	.psra-mcta{flex-wrap:wrap;gap:8px;padding:11px 10px 10px}
	.psra-mcta__txt{flex:1 1 100%;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:1px 8px;padding:0 6px}
	.psra-mcta__txt strong{font-size:13.5px}
	.psra-mcta .psra-mcta__btn{flex:1 1 100%;margin-left:0;min-height:46px;padding:6px 16px;white-space:normal;text-align:center;line-height:1.25}
}
/* Computers: a compact card in a bottom corner, clear of the chat button. */
@media (min-width:761px){
	.psra-mcta{position:fixed;left:24px;bottom:24px;z-index:9990;display:flex;align-items:center;gap:14px;
		max-width:calc(100vw - 150px);padding:12px 10px 12px 12px;border-radius:20px;
		box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 28px 56px -22px rgba(0,0,0,.62),0 10px 24px -16px rgba(0,0,0,.4);
		animation:psra-mcta-rise .5s cubic-bezier(.16,1,.3,1) both}
	.psra-mcta.is-right{left:auto;right:24px}
	.psra-mcta .psra-mcta__ic{display:inline-flex;flex:none;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;
		background:rgba(255,255,255,.07);color:var(--psra-accent,#E07B22);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
	.psra-mcta__ic svg{display:block;animation:psra-mcta-pop .6s cubic-bezier(.2,1.4,.4,1) .18s both}
	.psra-mcta__txt{display:flex;flex-direction:column;min-width:0;line-height:1.3}
	.psra-mcta__txt strong{font-size:15px;font-weight:800;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
	.psra-mcta__txt span{font-size:13px;color:rgba(226,232,248,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
	.psra-mcta .psra-mcta__btn{flex:none;display:inline-flex;align-items:center;min-height:46px;margin-left:10px;padding:0 20px;border-radius:13px;
		background:#fff;color:#0b0d14;font-size:14.5px;font-weight:800;box-shadow:0 10px 22px -14px rgba(255,255,255,.55);
		transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease}
	.psra-mcta .psra-mcta__x{display:inline-flex;flex:none;align-items:center;justify-content:center;width:34px;height:34px;min-height:0;margin:0;padding:0;
		border:0;border-radius:50%;background:transparent;color:rgba(226,232,248,.6);box-shadow:none;cursor:pointer;line-height:0;
		-webkit-appearance:none;appearance:none;transition:background .2s ease,color .2s ease}
	.psra-mcta .psra-mcta__x:hover{background:rgba(255,255,255,.1);color:#fff}
}
/* The chat button's one-time hello would run under the card on a narrow screen. */
@media (min-width:761px) and (max-width:1099px){ body.psra-mcta-on .cbar .cbar-hello{display:none} }
@media (min-width:761px) and (hover:hover){
	.psra-mcta .psra-mcta__btn:hover{transform:translateY(-1px);color:#0b0d14;box-shadow:0 14px 28px -14px rgba(255,255,255,.7)}
}
.psra-mcta.is-leaving{animation:psra-mcta-out .22s cubic-bezier(.4,0,1,1) both;pointer-events:none}
@keyframes psra-mcta-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes psra-mcta-rise{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@keyframes psra-mcta-pop{from{opacity:0;transform:scale(.5) rotate(-12deg)}to{opacity:1;transform:none}}
@keyframes psra-mcta-out{to{opacity:0;transform:translateY(12px) scale(.98)}}
@media print{.psra-mcta{display:none!important}}
@media (prefers-reduced-motion:reduce){
	.psra-mcta,.psra-mcta.is-leaving,.psra-mcta__ic svg{animation:none}
	body.psra-mcta-on .psra-bot,.psra-mcta .psra-mcta__btn{transition:none}
	.psra-mcta .psra-mcta__btn:hover{transform:none}
}
/* psra-wizsteps */
.psra-wizsteps{display:flex;gap:6px;margin:0 0 20px;counter-reset:s}
.psra-wizsteps__i{flex:1;display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--psra-muted,#8a8f97)}
.psra-wizsteps__i::before{content:'';height:4px;border-radius:4px;background:var(--psra-line,#e7e3d9)}
.psra-wizsteps__i.is-on{color:var(--psra-ink,#14161a)}
.psra-wizsteps__i.is-on::before,.psra-wizsteps__i.is-done::before{background:var(--psra-primary)}
.psra-quote__box[hidden]{display:none}
.psra-wiznav{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.psra-wiznav__back{background:none;border:1px solid var(--psra-line,#e7e3d9);border-radius:10px;padding:10px 16px;font:inherit;font-weight:700;cursor:pointer;color:var(--psra-ink-2,#4a4f57)}
.psra-wiznav__back:hover{border-color:var(--psra-primary)}
.psra-wizerr{color:#b3261e;font-size:13px;font-weight:600;margin:8px 0 0}
/* psra-us */
.psra-us{background:var(--psra-bg,#fff);border:1px solid var(--psra-line,#e7e7e7);border-radius:16px;padding:18px 20px;margin:0 0 18px}
.psra-us__label{display:block;font-size:14px;font-weight:800;margin-bottom:8px;color:var(--psra-ink,#161616)}
.psra-us input{width:100%;border:1px solid var(--psra-line,#e7e7e7);border-radius:11px;padding:11px 14px;font:inherit;font-size:14.5px}
.psra-us input:focus{outline:2px solid var(--psra-primary);outline-offset:1px}
.psra-us__out{margin-top:12px;display:flex;flex-direction:column;gap:14px}
.psra-us__g strong{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--psra-muted,#6e6e6e);margin-bottom:6px}
.psra-us__g a{display:block;padding:8px 11px;border:1px solid var(--psra-line,#e7e7e7);border-radius:9px;margin-bottom:5px;text-decoration:none;color:var(--psra-ink,#161616);font-size:13.5px}
.psra-us__g a:hover{border-color:var(--psra-primary);background:var(--psra-primary-soft)}
.psra-us__g a span{display:block;font-size:12px;color:var(--psra-muted,#6e6e6e)}
.psra-uprefs{background:var(--psra-bg,#fff);border:1px solid var(--psra-line,#e7e7e7);border-radius:16px;padding:20px;margin:0 0 18px}
.psra-uprefs__h{font-size:16px;font-weight:800;margin:0 0 5px;color:var(--psra-ink,#161616)}
.psra-uprefs__lead{margin:0 0 14px;font-size:13px;color:var(--psra-muted,#6e6e6e)}
.psra-uprefs h3{font-size:13px;font-weight:800;margin:14px 0 8px;color:var(--psra-ink-2,#3a3a3a)}
.psra-uprefs__chips{display:flex;flex-wrap:wrap;gap:7px}
.psra-uprefs__chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--psra-line,#e7e7e7);border-radius:999px;padding:6px 13px;font-size:13px;cursor:pointer}
.psra-uprefs__chip:hover{border-color:var(--psra-primary)}
.psra-uprefs__chip:has(input:checked){background:var(--psra-primary-soft);border-color:var(--psra-primary)}
.psra-hist{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}
.psra-hist button{border:1px solid var(--psra-line,#e7e7e7);background:var(--psra-bg,#fff);border-radius:999px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer;color:var(--psra-ink-2,#3a3a3a)}
.psra-hist button:hover{border-color:var(--psra-primary)}
/* psra-install */
.psra-install{position:fixed;left:12px;right:12px;bottom:12px;z-index:9997;display:flex;align-items:center;gap:12px;
background:var(--psra-primary);color:#fff;border-radius:14px;padding:13px 15px;box-shadow:0 14px 34px -12px rgba(0,0,0,.5)}
.psra-install p{margin:0;flex:1;font-size:13.5px;line-height:1.5}
.psra-install strong{display:block;font-size:14.5px}
.psra-install button{border:0;border-radius:9px;padding:9px 14px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.psra-install .is-go{background:var(--psra-primary);color:#fff}
.psra-install .is-no{background:transparent;color:rgba(255,255,255,.65)}
@media (min-width:820px){.psra-install{left:auto;width:380px}}
/* psra-blog-premium */
/* ==========================================================================
   PSRA BLOG — PREMIUM LAYER
   Un calque de finition posé au-dessus des snippets 31, 32 et 33.
   Aucun markup n'est modifie : uniquement les classes deja presentes.
   ========================================================================== */

.psra-blog,.psra-article{--pb-ease:cubic-bezier(.22,1,.36,1);--pb-slow:.55s var(--pb-ease)}

/* ---- 1. Le bandeau ------------------------------------------------------ */
.psra-blog__hero{
  padding:84px 0 88px;
  background:
    radial-gradient(1100px 520px at 12% -10%, rgba(26,63,143,.30), transparent 62%),
    radial-gradient(760px 420px at 92% 8%, rgba(26,63,143,.16), transparent 58%),
    linear-gradient(168deg,#141414 0%,#0b0b0b 58%,#000 100%);
}
/* Une trame fine, presque invisible : elle donne de la matiere au noir plutot
   qu'un aplat, ce qui est la difference entre sombre et profond. */
.psra-blog__hero::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:radial-gradient(760px 420px at 22% 0%,#000,transparent 72%);
          mask-image:radial-gradient(760px 420px at 22% 0%,#000,transparent 72%);
}
/* Un liseré lumineux en pied de bandeau, au lieu d'une bordure franche. */
.psra-blog__hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22) 22%,rgba(255,255,255,.34) 50%,rgba(255,255,255,.22) 78%,transparent);
}
.psra-blog__hero-in{position:relative;max-width:800px}
.psra-blog__eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.74);
  padding:7px 15px;border-radius:var(--psra-radius-pill);
  background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.psra-blog__eyebrow::before{
  content:"";width:5px;height:5px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 3px rgba(255,255,255,.16);
  animation:pb-pulse 2.6s var(--pb-ease) infinite;
}
@keyframes pb-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}
.psra-blog__h1{
  font-family:var(--psra-serif);
  font-size:clamp(2.5rem,5.6vw,4.15rem);
  line-height:1.045;letter-spacing:-.022em;font-weight:500;
  margin:22px 0 0;color:#fff;
  text-wrap:balance;
}
/* La derniere ligne du titre passe en italique : un detail de composition
   typographique qui coute une regle et change la tenue du bloc. */
.psra-blog__h1 em{font-style:italic;color:rgba(255,255,255,.82)}
.psra-blog__sub{
  margin:20px 0 0;max-width:60ch;
  font-size:1.075rem;line-height:1.72;color:rgba(255,255,255,.68);text-wrap:pretty;
}

/* ---- 2. Les cartes ------------------------------------------------------ */
.psra-blog-grid{gap:28px}
.psra-blog .psra-pcard{
  position:relative;isolation:isolate;overflow:hidden;
  border-radius:20px;background:var(--psra-bg);
  border:1px solid var(--psra-line);
  box-shadow:0 1px 2px rgba(20,20,20,.04);
  transition:transform var(--pb-slow),box-shadow var(--pb-slow),border-color var(--pb-slow);
}
/* Un halo qui suit le survol, pose SOUS le contenu : il eclaire la carte au
   lieu de la recouvrir. */
.psra-blog .psra-pcard::before{
  content:"";position:absolute;inset:0;z-index:-1;opacity:0;
  background:radial-gradient(420px 220px at 50% 0%,rgba(26,63,143,.09),transparent 70%);
  transition:opacity var(--pb-slow);
}
.psra-blog .psra-pcard:hover{
  transform:translateY(-7px);
  border-color:rgba(26,63,143,.28);
  box-shadow:0 2px 4px rgba(20,20,20,.04),0 28px 56px -28px rgba(15,20,40,.42);
}
.psra-blog .psra-pcard:hover::before{opacity:1}
.psra-blog .psra-pcard:focus-within{
  outline:2px solid var(--psra-primary);outline-offset:3px;transform:translateY(-7px);
}
.psra-blog .psra-pcard img{transition:transform 1.1s var(--pb-ease),filter var(--pb-slow)}
.psra-blog .psra-pcard:hover img{transform:scale(1.055)}
.psra-blog .psra-pcard__body{padding:22px 22px 24px}
.psra-blog .psra-pcard__title{
  font-family:var(--psra-serif);font-weight:500;
  font-size:1.235rem;line-height:1.32;letter-spacing:-.012em;
  text-wrap:balance;
}
/* Le titre se souligne a la lecture, pas au survol du lien seul : le trait
   part de la gauche et s'etend, ce qui se lit comme une progression. */
.psra-blog .psra-pcard__title a{
  background-image:linear-gradient(var(--psra-primary),var(--psra-primary));
  background-size:0% 1px;background-repeat:no-repeat;background-position:0 100%;
  transition:background-size .5s var(--pb-ease);
}
.psra-blog .psra-pcard:hover .psra-pcard__title a{background-size:100% 1px}

/* Apparition a l'entree, decalee carte par carte. */
@media (prefers-reduced-motion:no-preference){
  .psra-blog-grid>*{animation:pb-rise .62s var(--pb-ease) both}
  .psra-blog-grid>*:nth-child(1){animation-delay:.02s}
  .psra-blog-grid>*:nth-child(2){animation-delay:.07s}
  .psra-blog-grid>*:nth-child(3){animation-delay:.12s}
  .psra-blog-grid>*:nth-child(4){animation-delay:.17s}
  .psra-blog-grid>*:nth-child(5){animation-delay:.22s}
  .psra-blog-grid>*:nth-child(6){animation-delay:.27s}
  .psra-blog-grid>*:nth-child(n+7){animation-delay:.3s}
}
@keyframes pb-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ---- 3. L'article a la une --------------------------------------------- */
.psra-blog-hero{
  position:relative;overflow:hidden;border-radius:26px;
  border:1px solid var(--psra-line);
  box-shadow:0 2px 4px rgba(20,20,20,.03),0 36px 72px -40px rgba(15,20,40,.34);
  transition:box-shadow var(--pb-slow),transform var(--pb-slow);
}
.psra-blog-hero:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(20,20,20,.03),0 44px 88px -40px rgba(15,20,40,.44)}
.psra-blog-hero__media{overflow:hidden}
.psra-blog-hero__media img{transition:transform 1.3s var(--pb-ease)}
.psra-blog-hero:hover .psra-blog-hero__media img{transform:scale(1.045)}
.psra-blog-hero__badge{
  display:inline-flex;align-items:center;gap:7px;
  font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  padding:7px 14px;border-radius:var(--psra-radius-pill);
  background:var(--psra-primary);color:#fff;
  box-shadow:0 6px 18px -8px rgba(20,20,20,.6);
}
.psra-blog-hero__title{
  font-family:var(--psra-serif);font-weight:500;
  font-size:clamp(1.7rem,3.1vw,2.5rem);line-height:1.16;letter-spacing:-.018em;
  text-wrap:balance;
}
.psra-blog-hero__exc{font-size:1.045rem;line-height:1.7;color:var(--psra-ink-2);max-width:58ch;text-wrap:pretty}

/* ---- 4. Le corps de l'article ------------------------------------------- */
.psra-article__head{padding-top:8px}
.psra-article__title{
  font-family:var(--psra-serif);font-weight:500;
  font-size:clamp(2.05rem,4.4vw,3.35rem);line-height:1.1;letter-spacing:-.021em;
  text-wrap:balance;
}
.psra-article__body{
  font-family:var(--psra-serif);
  font-size:1.165rem;line-height:1.78;color:#1c1c1c;
  hanging-punctuation:first last;
}
.psra-article__body p{margin:0 0 1.4em;max-width:70ch;text-wrap:pretty}
/* La premiere lettre en lettrine. Reservee au premier paragraphe reel, jamais
   apres un titre, sinon elle tombe au milieu du texte. */
.psra-article__body>p:first-of-type::first-letter{
  float:left;font-size:3.5em;line-height:.86;font-weight:500;
  padding:.06em .1em 0 0;color:var(--psra-primary);
}
.psra-article__body>p:first-of-type{text-indent:0}
.psra-article__body h2{
  font-family:var(--psra-serif);font-weight:500;
  font-size:1.78rem;line-height:1.24;letter-spacing:-.014em;
  margin:2.3em 0 .7em;padding-top:.5em;position:relative;text-wrap:balance;
}
.psra-article__body h2::before{
  content:"";position:absolute;top:0;left:0;width:38px;height:2px;
  background:var(--psra-primary);border-radius:2px;
}
.psra-article__body h3{
  font-family:var(--psra-font);font-weight:650;
  font-size:1.21rem;line-height:1.36;margin:1.9em 0 .55em;letter-spacing:-.008em;
}
.psra-article__body a{
  color:var(--psra-primary);text-decoration:none;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:100% 1px;background-repeat:no-repeat;background-position:0 92%;
  transition:background-size .35s var(--pb-ease);
}
.psra-article__body a:hover{background-size:100% 2px}
.psra-article__body blockquote{
  position:relative;margin:2.1em 0;padding:4px 0 4px 30px;
  border-left:2px solid var(--psra-primary);
  font-size:1.26rem;line-height:1.62;font-style:italic;color:#111;
}
.psra-article__body blockquote p:last-child{margin-bottom:0}
.psra-article__body ul,.psra-article__body ol{margin:0 0 1.4em;padding-left:1.35em;max-width:68ch}
.psra-article__body li{margin:0 0 .55em;line-height:1.72}
.psra-article__body li::marker{color:var(--psra-muted)}
.psra-article__body img{border-radius:16px;box-shadow:0 20px 44px -26px rgba(15,20,40,.4);margin:2em 0}
.psra-article__body hr{
  border:0;height:1px;margin:2.8em auto;max-width:180px;
  background:linear-gradient(90deg,transparent,var(--psra-line),transparent);
}
.psra-article__body code{
  font-size:.9em;padding:.16em .42em;border-radius:6px;
  background:var(--psra-bg-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}
.psra-article__cover{border-radius:22px;overflow:hidden;box-shadow:0 30px 66px -34px rgba(15,20,40,.42)}

/* Une barre de progression de lecture, alimentee plus bas. */
.psra-article::before{
  content:"";position:fixed;top:0;left:0;height:2px;z-index:9999;
  width:var(--pb-read,0%);
  background:linear-gradient(90deg,var(--psra-navy,#1a3f8f),var(--psra-primary));
  transition:width .12s linear;pointer-events:none;
}

/* ---- 5. La colonne laterale --------------------------------------------- */
.psra-bw{
  border-radius:18px;border:1px solid var(--psra-line);
  box-shadow:0 1px 2px rgba(20,20,20,.03);
  transition:box-shadow var(--pb-slow),border-color var(--pb-slow);
}
.psra-bw:hover{box-shadow:0 18px 40px -28px rgba(15,20,40,.34);border-color:var(--psra-primary-100)}
.psra-bw__h{
  font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--psra-muted);
}
.psra-bw__rthumb{border-radius:10px;overflow:hidden}
.psra-bw__rthumb img{transition:transform .7s var(--pb-ease)}
.psra-bw__recent:hover .psra-bw__rthumb img{transform:scale(1.08)}
.psra-bw__rtitle{font-weight:600;line-height:1.4;transition:color var(--pb-slow)}
.psra-bw__recent:hover .psra-bw__rtitle{color:var(--psra-primary)}
.psra-blog__side{position:sticky;top:calc(var(--psra-header-h) + 22px);align-self:start}

/* ---- 6. Rubriques, puces, pagination ------------------------------------ */
.psra-blogcat__title{font-family:var(--psra-serif);font-weight:500;letter-spacing:-.014em}
.psra-blogchips a,.psra-blogchips button{
  transition:transform var(--pb-slow),box-shadow var(--pb-slow),background var(--pb-slow);
}
.psra-blogchips a:hover,.psra-blogchips button:hover{
  transform:translateY(-2px);box-shadow:0 8px 20px -12px rgba(20,20,20,.4);
}
.psra-blogpager a{transition:transform var(--pb-slow),box-shadow var(--pb-slow)}
.psra-blogpager a:hover{transform:translateY(-2px);box-shadow:0 10px 24px -14px rgba(20,20,20,.45)}
.psra-blogcta{position:relative;overflow:hidden;isolation:isolate}
.psra-blogcta__glow{
  filter:blur(46px);opacity:.55;
  animation:pb-drift 16s var(--pb-ease) infinite alternate;
}
@keyframes pb-drift{from{transform:translate3d(-4%,-3%,0) scale(1)}to{transform:translate3d(5%,4%,0) scale(1.14)}}

/* ---- 7. Mobile ---------------------------------------------------------- */
@media (max-width:820px){
  .psra-blog__hero{padding:56px 0 58px}
  .psra-blog-grid{gap:20px}
  .psra-article__body{font-size:1.1rem;line-height:1.74}
  .psra-article__body>p:first-of-type::first-letter{font-size:3em}
  .psra-blog__side{position:static}
}

/* ---- 8. Accessibilite --------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .psra-blog *,.psra-article *{animation:none !important;transition:none !important}
  .psra-blog .psra-pcard:hover,.psra-blog-hero:hover{transform:none}
  .psra-article::before{display:none}
}

/* =====================================================================
 *  BLOG - final design
 *
 *  The article body was set in a serif while the whole platform is sans:
 *  that alone made the blog read as a different website. On top of it sat a
 *  drop cap, a decorative rule above every heading, and a bare grey block
 *  where the cover image should be. Four snippets (31, 32, 33 and this one)
 *  style the same classes - 58 competing rules on the article body alone.
 *
 *  This block is the single authority for reading an article. It lands last
 *  and states what it owns.
 * ===================================================================== */

/* ---- cover: a real hero, not a grey slab ---- */
.psra-article__cover{
	position:relative;height:clamp(240px,42vw,460px) !important;
	background-size:cover !important;background-position:center !important;
	background-color:var(--psra-bg-soft,#f4f5f7) !important;
}
.psra-article__cover::after{
	content:"";position:absolute;inset:0;
	background:linear-gradient(180deg, rgba(10,12,18,.10) 0%, rgba(10,12,18,.04) 45%, rgba(255,255,255,.96) 100%);
}

/* ---- the column ---- */
.psra-article__wrap{padding-top:0 !important}
.psra-article__main{max-width:none}
/* The column overlaps the cover on purpose, as a card: without a surface of
   its own the negative margin just produced a hard white edge across the
   image. With one, the cover reads as a header the article sits on. */
.psra-article__cover + .psra-container .psra-article__main{
	position:relative;z-index:1;margin-top:clamp(-96px,-6vw,-40px);
	padding:30px clamp(20px,3vw,40px) 40px;
	background:var(--psra-bg,#fff);
	border-radius:24px 24px 0 0;
	box-shadow:0 -2px 0 rgba(20,22,30,.03);
}
/* no cover: no card, just normal spacing */
.psra-article__main{padding-top:28px}

/* ---- header ---- */
.psra-article__cat{
	display:inline-flex;align-items:center;
	padding:6px 13px !important;margin-bottom:16px !important;
	border-radius:999px !important;
	background:var(--psra-primary,#1a1a1a) !important;color:#fff !important;
	font-size:11.5px !important;font-weight:700 !important;
	letter-spacing:.1em !important;text-transform:uppercase;text-decoration:none;
}
.psra-article__title{
	margin:0 0 20px !important;
	font-family:inherit !important;
	font-size:clamp(30px,4.4vw,50px) !important;
	font-weight:800 !important;line-height:1.1 !important;
	letter-spacing:-.03em !important;
	color:var(--psra-ink,#161616) !important;
}
.psra-article__meta{
	display:flex;align-items:center;gap:12px;
	padding:16px 0 !important;margin:0 0 30px !important;
	border-top:1px solid var(--psra-line,#e7e7e7);
	border-bottom:1px solid var(--psra-line,#e7e7e7);
}
.psra-article__avatar img{
	width:42px !important;height:42px !important;border-radius:50% !important;display:block;
	border:1px solid var(--psra-line,#e7e7e7);
}
.psra-article__by{display:flex;flex-direction:column;gap:2px;font-family:inherit}
.psra-article__by strong{font-size:14.5px;font-weight:700;color:var(--psra-ink,#161616)}
.psra-article__by span{font-size:13px;color:var(--psra-muted,#6e6e6e)}

/* ---- table of contents ---- */
.psra-toc{
	margin:0 0 34px !important;padding:18px 20px !important;
	border-radius:16px !important;
	background:var(--psra-bg-soft,#f4f5f7) !important;
	border:1px solid var(--psra-line,#e7e7e7) !important;
}
.psra-toc__h{
	display:block;margin-bottom:10px;
	font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
	color:var(--psra-muted,#6e6e6e);
}
.psra-toc ul{margin:0;padding:0;list-style:none;counter-reset:psratoc}
.psra-toc li{counter-increment:psratoc;margin:0}
.psra-toc li + li{border-top:1px solid var(--psra-line,#e7e7e7)}
.psra-toc a{
	display:flex;gap:10px;padding:9px 0;
	font-size:14.5px;font-weight:600;line-height:1.4;
	color:var(--psra-ink-2,#3a3a3a);text-decoration:none;
	transition:color .18s ease;
}
.psra-toc a::before{
	content:counter(psratoc);flex:none;
	width:20px;text-align:right;
	font-variant-numeric:tabular-nums;font-weight:700;
	color:var(--psra-muted,#6e6e6e);
}
.psra-toc a:hover{color:var(--psra-ink,#161616)}

/* =====================================================================
 *  THE BODY - this is the part that read as a different website
 * ===================================================================== */
.psra-article__body{
	font-family:inherit !important;          /* was a serif, alone on the site */
	font-size:17.5px !important;
	line-height:1.72 !important;
	color:var(--psra-ink-2,#3a3a3a) !important;
	max-width:72ch;
}
.psra-article__body > * + *{margin-top:1.15em}
.psra-article__body p{
	margin:0 0 1.15em !important;font-family:inherit !important;
	font-size:inherit !important;line-height:inherit !important;
}
/* the drop cap belonged to a magazine, not to this site */
.psra-article__body > p:first-of-type::first-letter{
	font-size:inherit !important;float:none !important;
	font-weight:inherit !important;line-height:inherit !important;
	margin:0 !important;padding:0 !important;color:inherit !important;
	font-family:inherit !important;
}
.psra-article__body > p:first-of-type{
	font-size:19px !important;line-height:1.65 !important;
	color:var(--psra-ink,#161616) !important;
}
.psra-article__body h2,
.psra-article__body h3{
	font-family:inherit !important;
	color:var(--psra-ink,#161616) !important;
	letter-spacing:-.02em !important;
	scroll-margin-top:96px;
}
.psra-article__body h2{
	margin:2em 0 .6em !important;
	font-size:clamp(22px,2.6vw,28px) !important;font-weight:800 !important;line-height:1.22 !important;
}
.psra-article__body h3{margin:1.6em 0 .5em !important;font-size:19.5px !important;font-weight:750 !important}
/* the decorative rule above every heading */
.psra-article__body h2::before,
.psra-article__body h3::before{content:none !important;display:none !important}

.psra-article__body a{
	color:var(--psra-ink,#161616);
	text-decoration:underline;text-underline-offset:3px;
	text-decoration-color:var(--psra-primary-100,#dedede);
	transition:text-decoration-color .18s ease;
}
.psra-article__body a:hover{text-decoration-color:var(--psra-primary,#1a1a1a)}

.psra-article__body ul,
.psra-article__body ol{margin:0 0 1.15em !important;padding-left:1.35em !important}
.psra-article__body li{margin:.45em 0 !important;padding-left:.2em;font-size:inherit !important;line-height:1.66 !important}
.psra-article__body li::marker{color:var(--psra-muted,#6e6e6e)}

.psra-article__body blockquote{
	margin:1.8em 0 !important;padding:20px 24px !important;
	border:0 !important;border-left:3px solid var(--psra-primary,#1a1a1a) !important;
	border-radius:0 14px 14px 0 !important;
	background:var(--psra-bg-soft,#f4f5f7) !important;
	font-family:inherit !important;font-style:normal !important;
	font-size:17px !important;font-weight:600 !important;line-height:1.6 !important;
	color:var(--psra-ink,#161616) !important;
}
.psra-article__body blockquote p:last-child{margin-bottom:0 !important}

.psra-article__body img,
.psra-article__body figure img{
	border-radius:16px !important;display:block;max-width:100%;height:auto;
	box-shadow:0 1px 2px rgba(20,22,30,.05), 0 24px 44px -32px rgba(20,22,30,.4);
}
.psra-article__body figcaption{
	margin-top:10px;font-size:13px;color:var(--psra-muted,#6e6e6e);text-align:center;
}
.psra-article__body table{
	width:100%;border-collapse:separate;border-spacing:0;margin:1.6em 0;
	border:1px solid var(--psra-line,#e7e7e7);border-radius:14px;overflow:hidden;font-size:15px;
}
.psra-article__body th,.psra-article__body td{padding:12px 14px;border-bottom:1px solid var(--psra-line,#e7e7e7);text-align:left}
.psra-article__body th{background:var(--psra-bg-soft,#f4f5f7);font-weight:700;color:var(--psra-ink,#161616)}
.psra-article__body tr:last-child td{border-bottom:0}
.psra-article__body hr{border:0;border-top:1px solid var(--psra-line,#e7e7e7);margin:2.2em 0}
.psra-article__body code{
	padding:2px 6px;border-radius:6px;font-size:.9em;
	background:var(--psra-bg-soft,#f4f5f7);border:1px solid var(--psra-line,#e7e7e7);
}

/* ---- tags ---- */
.psra-article__tags{
	display:flex;flex-wrap:wrap;gap:8px;
	margin-top:38px !important;padding-top:24px !important;
	border-top:1px solid var(--psra-line,#e7e7e7);
}
.psra-article__tags a{
	padding:7px 14px !important;border-radius:999px !important;
	background:var(--psra-bg-soft,#f4f5f7) !important;
	border:1px solid var(--psra-line,#e7e7e7) !important;
	font-size:13px;font-weight:600;color:var(--psra-ink-2,#3a3a3a) !important;text-decoration:none;
	transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.psra-article__tags a:hover{
	background:var(--psra-primary,#1a1a1a) !important;
	border-color:var(--psra-primary,#1a1a1a) !important;color:#fff !important;
}

/* ---- reading progress ---- */
.psra-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;background:transparent}
.psra-progress > i{display:block;height:100%;width:0;background:var(--psra-primary,#1a1a1a);transition:width .1s linear}

/* ---- sidebar ---- */
.psra-blog__side{position:sticky;top:96px;align-self:start;display:flex;flex-direction:column;gap:16px}
.psra-bw{
	padding:18px 20px !important;border-radius:18px !important;
	background:var(--psra-bg,#fff) !important;
	border:1px solid var(--psra-line,#e7e7e7) !important;
	box-shadow:0 1px 2px rgba(20,22,30,.04) !important;
}
.psra-bw__h{
	margin:0 0 14px !important;font-size:11px !important;font-weight:800 !important;
	letter-spacing:.13em !important;text-transform:uppercase;
	color:var(--psra-muted,#6e6e6e) !important;
}
.psra-bw__recent a{
	display:flex;gap:12px;align-items:center;padding:10px 0;text-decoration:none;
	border-top:1px solid var(--psra-line,#e7e7e7);
}
.psra-bw__recent a:first-child{border-top:0;padding-top:0}
.psra-bw__rthumb{
	flex:none;width:56px;height:56px;border-radius:12px;
	background-size:cover;background-position:center;
	background-color:var(--psra-bg-soft,#f4f5f7);
	border:1px solid var(--psra-line,#e7e7e7);
}
.psra-bw__rtitle{
	display:block;font-size:14px;font-weight:650;line-height:1.35;
	color:var(--psra-ink,#161616);
}
.psra-bw__recent a:hover .psra-bw__rtitle{text-decoration:underline;text-underline-offset:2px}
.psra-bw__rdate{display:block;margin-top:3px;font-size:12.2px;color:var(--psra-muted,#6e6e6e)}
.psra-bw--cta{
	background:var(--psra-primary,#1a1a1a) !important;
	border-color:var(--psra-primary,#1a1a1a) !important;
}
.psra-bw--cta .psra-bw__h{color:rgba(255,255,255,.6) !important}
.psra-bw--cta p{color:rgba(255,255,255,.88);font-size:14px;line-height:1.55;margin:0 0 14px}
.psra-bw--cta .psra-btn{background:#fff;color:var(--psra-primary,#1a1a1a);border-color:#fff;width:100%;justify-content:center}

@media (max-width:900px){
	.psra-article__cover + .psra-container .psra-article__main{
		margin-top:-28px;padding:22px 18px 30px;border-radius:20px 20px 0 0;
	}
	.psra-blog__side{position:static}
	.psra-article__body{font-size:16.5px !important}
}
@media (prefers-reduced-motion:reduce){
	.psra-progress > i,.psra-article__tags a,.psra-toc a{transition:none}
}

/* =====================================================================
 *  BLOG INDEX - hero, featured post, card grid, chips, pager
 *  Same authority rule as the article page: this lands last and states
 *  what it owns, rather than adding a fifth layer to the argument.
 * ===================================================================== */

/* ---- hero ---- */
.psra-blog__hero{
	position:relative;isolation:isolate;overflow:hidden;
	padding:clamp(64px,9vw,120px) 0 clamp(56px,7vw,96px) !important;
	background:
		radial-gradient(90% 70% at 20% 0%, rgba(43,82,168,.16) 0%, transparent 60%),
		radial-gradient(70% 60% at 85% 10%, rgba(123,95,214,.13) 0%, transparent 62%),
		linear-gradient(170deg, #0a0c14 0%, #07080e 55%, #000 100%) !important;
}
.psra-blog__bg{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.psra-blog__bg i{position:absolute;display:block;border-radius:50%;will-change:transform}
.psra-blog__bg i:nth-child(1){width:620px;height:620px;left:-180px;top:-260px;
	background:radial-gradient(circle,rgba(70,105,200,.28) 0%,rgba(70,105,200,.06) 42%,transparent 70%);
	animation:psra-blogdrift1 26s ease-in-out infinite}
.psra-blog__bg i:nth-child(2){width:520px;height:520px;right:-160px;top:-120px;
	background:radial-gradient(circle,rgba(130,100,205,.22) 0%,rgba(130,100,205,.05) 42%,transparent 70%);
	animation:psra-blogdrift2 32s ease-in-out infinite}
.psra-blog__bg i:nth-child(3){width:420px;height:420px;left:45%;bottom:-220px;
	background:radial-gradient(circle,rgba(90,120,210,.16) 0%,transparent 68%);
	animation:psra-blogdrift1 30s ease-in-out infinite reverse}
/* fine grid, fading out downward */
.psra-blog__hero::after{
	content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
	background-image:
		linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
		linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
	background-size:54px 54px;
	-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 78%);
	mask-image:linear-gradient(180deg,#000 0%,transparent 78%);
}
.psra-blog__hero-in{position:relative;z-index:1;text-align:center}
.psra-blog__eyebrow{
	display:inline-flex;align-items:center;gap:8px;
	padding:7px 15px !important;margin-bottom:20px !important;border-radius:999px !important;
	background:rgba(255,255,255,.07) !important;
	border:1px solid rgba(255,255,255,.16) !important;
	color:rgba(226,232,248,.95) !important;
	font-size:11.5px !important;font-weight:700 !important;
	letter-spacing:.13em !important;text-transform:uppercase;
}
.psra-blog__eyebrow svg{color:#9fb8e8}
.psra-blog__h1{
	margin:0 0 18px !important;
	font-size:clamp(38px,6.4vw,76px) !important;font-weight:800 !important;
	line-height:1.02 !important;letter-spacing:-.04em !important;
	color:#fff !important;
}
.psra-blog__sub{
	margin:0 auto !important;max-width:58ch;
	font-size:clamp(15.5px,1.6vw,18.5px) !important;line-height:1.6 !important;
	color:rgba(205,213,232,.92) !important;
}
@keyframes psra-blogdrift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(70px,50px) scale(1.12)}}
@keyframes psra-blogdrift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-60px,60px) scale(1.1)}}

/* ---- body ---- */
.psra-blog__body{padding-top:clamp(28px,4vw,48px) !important;padding-bottom:clamp(48px,6vw,80px) !important}

/* ---- category chips ---- */
.psra-blogchips{
	display:flex;flex-wrap:wrap;gap:8px;
	margin:0 0 clamp(24px,3vw,36px) !important;padding:0 !important;
	border:0 !important;background:none !important;
}
.psra-blogchips a{
	padding:8px 16px !important;border-radius:999px !important;
	background:var(--psra-bg,#fff) !important;
	border:1px solid var(--psra-line,#e7e7e7) !important;
	font-size:13.5px !important;font-weight:600 !important;
	color:var(--psra-ink-2,#3a3a3a) !important;text-decoration:none;
	transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s cubic-bezier(.2,.8,.2,1);
}
.psra-blogchips a:hover{transform:translateY(-1px);border-color:var(--psra-primary-100,#dedede) !important;background:var(--psra-bg-soft,#f4f5f7) !important}
.psra-blogchips a.is-active,.psra-blogchips a[aria-current]{
	background:var(--psra-primary,#1a1a1a) !important;
	border-color:var(--psra-primary,#1a1a1a) !important;color:#fff !important;
}

/* ---- featured post ---- */
.psra-blog-hero{
	position:relative;display:block;overflow:hidden;text-decoration:none;
	margin:0 0 clamp(20px,3vw,30px) !important;
	border-radius:24px !important;
	min-height:clamp(320px,38vw,460px);
	background:var(--psra-primary,#1a1a1a) !important;
	box-shadow:0 2px 4px rgba(20,22,30,.06), 0 40px 70px -46px rgba(20,22,30,.6);
	transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease;
}
.psra-blog-hero:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(20,22,30,.06), 0 50px 84px -44px rgba(20,22,30,.7)}
.psra-blog-hero__media{
	position:absolute;inset:0;background-size:cover;background-position:center;
	transition:transform .7s cubic-bezier(.2,.8,.2,1);
}
.psra-blog-hero:hover .psra-blog-hero__media{transform:scale(1.045)}
.psra-blog-hero::after{
	content:"";position:absolute;inset:0;
	background:linear-gradient(180deg, rgba(8,10,16,.10) 0%, rgba(8,10,16,.55) 52%, rgba(8,10,16,.90) 100%);
}
.psra-blog-hero__badge{
	position:absolute;top:18px;left:18px;z-index:2;
	display:inline-flex;align-items:center;gap:7px;
	padding:7px 14px !important;border-radius:999px !important;
	background:rgba(255,255,255,.14) !important;
	border:1px solid rgba(255,255,255,.26) !important;
	-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
	color:#fff !important;font-size:11px !important;font-weight:800 !important;
	letter-spacing:.11em !important;text-transform:uppercase;
}
.psra-blog-hero__badge svg{color:#ffd479}
.psra-blog-hero__body{
	position:absolute;left:0;right:0;bottom:0;z-index:2;
	display:block;padding:clamp(22px,3vw,40px) !important;
}
.psra-blog-hero__cat{
	display:inline-block;margin-bottom:12px !important;
	padding:5px 12px !important;border-radius:999px !important;
	background:rgba(255,255,255,.16) !important;color:#fff !important;
	font-size:11px !important;font-weight:700 !important;letter-spacing:.1em !important;text-transform:uppercase;
}
.psra-blog-hero__title{
	display:block;margin:0 0 10px !important;max-width:22ch;
	font-size:clamp(22px,3vw,38px) !important;font-weight:800 !important;
	line-height:1.14 !important;letter-spacing:-.025em !important;color:#fff !important;
}
.psra-blog-hero__exc{
	display:block;max-width:56ch;
	font-size:15px !important;line-height:1.6 !important;
	color:rgba(226,232,248,.86) !important;
}

/* ---- card grid ---- */
.psra-blog-grid{
	display:grid !important;
	grid-template-columns:repeat(auto-fill,minmax(285px,1fr)) !important;
	gap:clamp(16px,2vw,24px) !important;
}
/* ---- pager ---- */
.psra-blogpager{
	display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;
	margin-top:clamp(32px,4vw,48px) !important;
}
.psra-blogpager a,.psra-blogpager span{
	min-width:40px;height:40px;padding:0 13px !important;
	display:inline-flex;align-items:center;justify-content:center;
	border-radius:12px !important;
	border:1px solid var(--psra-line,#e7e7e7) !important;
	background:var(--psra-bg,#fff) !important;
	font-size:14px;font-weight:650;color:var(--psra-ink-2,#3a3a3a) !important;text-decoration:none;
	transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.psra-blogpager a:hover{background:var(--psra-bg-soft,#f4f5f7) !important;border-color:var(--psra-primary-100,#dedede) !important}
.psra-blogpager .is-current,.psra-blogpager [aria-current]{
	background:var(--psra-primary,#1a1a1a) !important;
	border-color:var(--psra-primary,#1a1a1a) !important;color:#fff !important;
}

@media (max-width:900px){
	.psra-blog-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr)) !important}
}
@media (max-width:560px){
	.psra-blog-grid{grid-template-columns:1fr !important}
	.psra-blog-hero{min-height:300px}
}
/* =====================================================================
 *  The serif, and the two competing hero layouts
 *
 *  Every serif on the blog came from one variable, --psra-serif, which
 *  resolves to Newsreader with a Georgia fallback. Newsreader is not loaded,
 *  so in practice the blog rendered in Georgia - a typeface that appears
 *  nowhere else on the platform. That single variable is why the blog read
 *  as a different website. It is used by the four blog snippets and nothing
 *  else, so redefining it here retires every serif at once.
 *
 *  Snippet 32 also declares the featured post twice: once as an overlay and
 *  again, later, as a two-column grid. The two were fighting, which is why
 *  the card lost its dark background and its text sat on light grey. The
 *  overlay is the one kept, stated explicitly.
 * ===================================================================== */
.psra-blog,
.psra-article,
.psra-blog__side{
	--psra-serif:var(--psra-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
}

/* ---- featured post: overlay, not two columns ---- */
.psra-blog .psra-blog-hero{
	display:block !important;
	grid-template-columns:none !important;
	gap:0 !important;
	border-radius:24px !important;
	min-height:clamp(320px,38vw,460px) !important;
	background:var(--psra-primary,#1a1a1a) !important;
	overflow:hidden !important;
}
.psra-blog .psra-blog-hero__media{
	position:absolute !important;inset:0 !important;
	order:0 !important;aspect-ratio:auto !important;
	border-radius:0 !important;
	background-color:var(--psra-primary,#1a1a1a) !important;
	background-size:cover !important;background-position:center !important;
	z-index:0 !important;
}
.psra-blog .psra-blog-hero::after{z-index:1}
.psra-blog .psra-blog-hero__body{
	position:absolute !important;left:0;right:0;bottom:0;top:auto !important;z-index:2 !important;
	padding:clamp(22px,3vw,40px) !important;
}
.psra-blog .psra-blog-hero__badge{z-index:3}
/* a cover is not guaranteed: without one the plate must still read */
.psra-blog .psra-blog-hero__media:empty{
	background-image:
		radial-gradient(80% 70% at 25% 10%, rgba(70,105,200,.42) 0%, transparent 62%),
		radial-gradient(70% 60% at 85% 20%, rgba(130,100,205,.34) 0%, transparent 64%) !important;
}

/* ---- titles follow the site, explicitly ---- */
.psra-blog__h1,
.psra-blog__sub,
.psra-blog-hero__title,
.psra-blog-hero__exc,
.psra-pcard__title,
.psra-blog .psra-pcard__title,
.psra-article__title,
.psra-article__body,
.psra-article__body h2,
.psra-article__body h3,
.psra-article__body blockquote,
.psra-bw__rtitle{font-family:inherit !important}
.psra-blog__sub,
.psra-blog-hero__exc,
.psra-article__body blockquote,
.psra-pcard__exc{font-style:normal !important}

/* =====================================================================
 *  The three sections nobody had styled, and the broken column
 *
 *  The index does not stop at the card grid: it also renders an intro, a
 *  "Nos catégories" block and a closing call to action. None of the four
 *  blog snippets styled them, so they fell back to browser defaults — the
 *  category cards collapsed into thin columns of unreadable text and the
 *  call to action stacked its feature labels into giant empty pills.
 *
 *  The main column was also collapsing to roughly 40% of the width with
 *  dead space beside it, because the two-column wrap had no grid.
 * ===================================================================== */

/* ---- the two-column layout ---- */
.psra-blog__wrap{display:block}
.psra-blog__wrap.has-aside{
	display:grid !important;
	grid-template-columns:minmax(0,1fr) 320px !important;
	gap:clamp(24px,3vw,48px) !important;
	align-items:start !important;
}
.psra-blog__main{min-width:0 !important}

/* ---- intro ---- */
.psra-blogintro{padding:clamp(34px,5vw,60px) 0 0 !important}
.psra-blogintro__in{max-width:820px;margin:0 auto;text-align:center}
.psra-blogintro__lede{
	margin:0 0 18px !important;
	font-size:clamp(16px,1.8vw,19px) !important;line-height:1.68 !important;
	color:var(--psra-ink-2,#3a3a3a) !important;
}
.psra-blogintro__mission{
	display:inline-block;margin:0 !important;
	padding:16px 22px !important;border-radius:16px !important;
	background:var(--psra-bg-soft,#f4f5f7) !important;
	border:1px solid var(--psra-line,#e7e7e7) !important;
	font-size:15.5px !important;line-height:1.6 !important;
	color:var(--psra-ink-2,#3a3a3a) !important;
}
.psra-blogintro__mission strong{color:var(--psra-ink,#161616);font-weight:750}

/* ---- "Nos catégories" ---- */
.psra-blogcat-sec{
	padding:clamp(48px,6vw,88px) 0 !important;
	background:linear-gradient(180deg,#fbfbfd 0%,#f5f6fa 100%),#fbfbfd !important;
	border-top:1px solid var(--psra-line,#e7e7e7);
	border-bottom:1px solid var(--psra-line,#e7e7e7);
	margin-top:clamp(40px,5vw,70px);
}
.psra-blogcat__head{max-width:680px;margin:0 auto clamp(28px,3vw,44px);text-align:center}
.psra-blogcat__eyebrow{
	display:inline-flex;align-items:center;gap:8px;
	padding:7px 15px !important;margin-bottom:16px !important;border-radius:999px !important;
	background:var(--psra-bg,#fff) !important;border:1px solid var(--psra-line,#e7e7e7) !important;
	font-size:11px !important;font-weight:800 !important;
	letter-spacing:.13em !important;text-transform:uppercase;
	color:var(--psra-ink-2,#3a3a3a) !important;
}
.psra-blogcat__h2{
	margin:0 0 12px !important;
	font-family:inherit !important;
	font-size:clamp(26px,3.4vw,40px) !important;font-weight:800 !important;
	line-height:1.12 !important;letter-spacing:-.03em !important;
	color:var(--psra-ink,#161616) !important;
}
.psra-blogcat__sub{
	margin:0 !important;font-size:16px !important;line-height:1.6 !important;
	color:var(--psra-ink-2,#3a3a3a) !important;
}
.psra-blogcat__grid{
	display:grid !important;
	grid-template-columns:repeat(auto-fit,minmax(275px,1fr)) !important;
	gap:16px !important;
}
.psra-blogcat{
	display:flex;flex-direction:column;
	padding:24px 22px !important;border-radius:20px !important;
	background:var(--psra-bg,#fff) !important;
	border:1px solid var(--psra-line,#e7e7e7) !important;
	box-shadow:0 1px 2px rgba(20,22,30,.04);
	transition:transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease, border-color .28s ease;
}
.psra-blogcat:hover{
	transform:translateY(-3px);
	border-color:var(--psra-primary-100,#dedede) !important;
	box-shadow:0 2px 4px rgba(20,22,30,.05), 0 28px 50px -32px rgba(20,22,30,.42);
}
.psra-blogcat__ic{
	display:grid;place-items:center;width:48px;height:48px;margin-bottom:16px;
	border-radius:15px;
	background:var(--psra-primary,#1a1a1a);color:#fff;
	box-shadow:0 10px 22px -12px rgba(20,22,30,.6);
}
.psra-blogcat__ic svg{width:22px;height:22px;color:inherit}
.psra-blogcat__title{
	margin:0 0 9px !important;font-family:inherit !important;
	font-size:17.5px !important;font-weight:750 !important;line-height:1.28 !important;
	letter-spacing:-.015em !important;color:var(--psra-ink,#161616) !important;
}
.psra-blogcat__desc{
	margin:0 0 14px !important;flex:1;
	font-size:14.3px !important;line-height:1.6 !important;
	color:var(--psra-ink-2,#3a3a3a) !important;
}
.psra-blogcat__topics{
	margin:0 !important;padding-top:13px;
	border-top:1px solid var(--psra-line,#e7e7e7);
	font-size:12.6px !important;font-weight:600 !important;line-height:1.5 !important;
	color:var(--psra-muted,#6e6e6e) !important;
}

/* ---- closing call to action ---- */
.psra-blogcta{
	position:relative;isolation:isolate;overflow:hidden;
	padding:clamp(56px,7vw,104px) 0 !important;
	background:
		radial-gradient(85% 70% at 18% 0%, rgba(43,82,168,.20) 0%, transparent 60%),
		radial-gradient(70% 60% at 86% 12%, rgba(123,95,214,.16) 0%, transparent 62%),
		linear-gradient(170deg,#0a0c14 0%,#07080e 55%,#000 100%) !important;
}
.psra-blogcta__glow{
	position:absolute;left:50%;top:-30%;z-index:-1;
	width:900px;height:620px;transform:translateX(-50%);pointer-events:none;
	background:radial-gradient(ellipse at center, rgba(90,125,205,.22) 0%, rgba(90,125,205,.05) 42%, transparent 72%);
	animation:psra-ctaglow 14s ease-in-out infinite;
}
@keyframes psra-ctaglow{0%,100%{opacity:.65;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.1)}}
.psra-blogcta__in{max-width:760px;margin:0 auto;text-align:center;position:relative;z-index:1}
.psra-blogcta__h2{
	margin:0 0 16px !important;font-family:inherit !important;
	font-size:clamp(28px,4vw,46px) !important;font-weight:800 !important;
	line-height:1.1 !important;letter-spacing:-.032em !important;color:#fff !important;
}
.psra-blogcta__sub{
	margin:0 auto 30px !important;max-width:62ch;
	font-size:clamp(15px,1.6vw,17.5px) !important;line-height:1.62 !important;
	color:rgba(205,213,232,.9) !important;
}
/* these were stacking into full-width pills: they are inline chips */
.psra-blogcta__feats{
	display:flex !important;flex-wrap:wrap !important;
	justify-content:center !important;gap:10px !important;
	margin:0 0 32px !important;
}
.psra-blogcta__feat{
	display:inline-flex !important;align-items:center;gap:8px;
	width:auto !important;
	padding:9px 16px !important;border-radius:999px !important;
	background:rgba(255,255,255,.07) !important;
	border:1px solid rgba(255,255,255,.15) !important;
	font-size:13.5px !important;font-weight:600 !important;
	color:rgba(226,232,248,.95) !important;
}
.psra-blogcta__feat svg{width:15px;height:15px;color:#9fb8e8;flex:none}

/* An icon that reaches the page without width/height attributes falls back to
   300x150 and blows the pill apart. Cheap insurance on every inline chip. */
.psra-blog__eyebrow svg,
.psra-blogcat__eyebrow svg,
.psra-blogcat__ic svg,
.psra-blog-hero__badge svg,
.psra-pcard__cat svg,
.psra-article__cat svg{width:1em;height:1em;flex:none}
.psra-blogcat__ic svg{width:22px;height:22px}
.psra-blogcta__acts{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.psra-blogcta .psra-btn{
	padding:13px 26px !important;border-radius:13px !important;
	font-size:15px !important;font-weight:700 !important;width:auto !important;
}
.psra-blogcta .psra-btn-primary{background:#fff !important;color:#0a0c14 !important;border-color:#fff !important}
.psra-blogcta .psra-btn-primary:hover{background:rgba(255,255,255,.9) !important}
.psra-blogcta .psra-btn-outline,
.psra-blogcta .psra-btn:not(.psra-btn-primary){
	background:transparent !important;color:#fff !important;
	border:1px solid rgba(255,255,255,.35) !important;
}
.psra-blogcta .psra-btn:not(.psra-btn-primary):hover{background:rgba(255,255,255,.1) !important}

@media (max-width:980px){
	.psra-blog__wrap.has-aside{grid-template-columns:minmax(0,1fr) !important}
}
@media (prefers-reduced-motion:reduce){
	.psra-blogcat,.psra-blogcta__glow{transition:none;animation:none}
	.psra-blogcat:hover{transform:none}
}

/* =====================================================================
 *  BLOG INDEX - restructure
 *
 *  The index was laid out as an article page: the featured post and the
 *  whole card grid squeezed into a narrow column beside a sidebar whose
 *  two blocks ("Articles récents" and a call to action) repeated what the
 *  grid and the closing section already say. On a wide screen the cards
 *  ended up around 40% of the page with dead space beside them.
 *
 *  The index now runs full width: featured post across the page, then a
 *  three-column grid. The sidebar stays on single articles, where it is
 *  useful, and is dropped here, where it only duplicated content.
 * ===================================================================== */

/* ---- full width, no side column on the index ---- */
.psra-blog .psra-blog__wrap,
.psra-blog .psra-blog__wrap.has-aside{
	display:block !important;
	grid-template-columns:none !important;
	gap:0 !important;
}
.psra-blog .psra-blog__main{width:100% !important;max-width:none !important;min-width:0 !important}
.psra-blog .psra-blog__side{display:none !important}

/* ---- featured post, now across the page ---- */
.psra-blog .psra-blog-hero{
	min-height:clamp(340px,34vw,500px) !important;
	margin:0 0 clamp(20px,2.4vw,32px) !important;
}
.psra-blog .psra-blog-hero__title{
	max-width:20ch;
	font-size:clamp(24px,3.6vw,46px) !important;
}
.psra-blog .psra-blog-hero__exc{max-width:64ch;font-size:16px !important}

/* ---- three across on a wide screen ---- */
.psra-blog .psra-blog-grid{
	grid-template-columns:repeat(auto-fill,minmax(310px,1fr)) !important;
	gap:clamp(18px,1.8vw,26px) !important;
}

/* =====================================================================
 *  The closing call to action used different class names than I assumed:
 *  the buttons are .psra-blogcta__btn and .psra-blogcta__sec, and the row
 *  is .psra-blogcta__actions. Styling .psra-btn never reached them, which
 *  is why they rendered as bare full-width blocks.
 * ===================================================================== */
.psra-blogcta__actions{
	display:flex !important;flex-wrap:wrap !important;
	justify-content:center !important;align-items:center !important;
	gap:12px !important;margin:0 !important;
}
.psra-blogcta__btn{
	display:inline-flex !important;align-items:center;gap:9px;
	width:auto !important;
	padding:14px 28px !important;border-radius:13px !important;
	background:#fff !important;color:#0a0c14 !important;border:1px solid #fff !important;
	font-size:15px !important;font-weight:750 !important;text-decoration:none;
	box-shadow:0 16px 34px -18px rgba(0,0,0,.8);
	transition:transform .24s cubic-bezier(.2,.8,.2,1), background-color .24s ease;
}
.psra-blogcta__btn:hover{transform:translateY(-2px);background:rgba(255,255,255,.92) !important}
.psra-blogcta__btn svg{width:16px;height:16px;flex:none}
.psra-blogcta__sec{
	display:inline-flex !important;align-items:center;
	width:auto !important;
	padding:14px 24px !important;border-radius:13px !important;
	background:transparent !important;color:#fff !important;
	border:1px solid rgba(255,255,255,.34) !important;
	font-size:15px !important;font-weight:650 !important;text-decoration:none;
	transition:background-color .24s ease,border-color .24s ease;
}
.psra-blogcta__sec:hover{background:rgba(255,255,255,.1) !important;border-color:rgba(255,255,255,.55) !important}

/* ---- the grid falls back to two, then one ---- */
@media (max-width:1080px){
	.psra-blog .psra-blog-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr)) !important}
}
@media (max-width:640px){
	.psra-blog .psra-blog-grid{grid-template-columns:1fr !important}
	.psra-blog .psra-blog-hero{min-height:300px !important}
	.psra-blogcta__btn,.psra-blogcta__sec{width:100% !important;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
	.psra-blogcta__btn,.psra-blogcta__sec{transition:none}
	.psra-blogcta__btn:hover{transform:none}
}

/* =====================================================================
 *  "Lire l'article" on the featured post
 *
 *  Snippet 32 declares this button five times. The last rule sets it to
 *  var(--psra-ink) - #161616 - and the featured card is a dark plate, so
 *  the label and its arrow were near-black on near-black: invisible.
 *  Earlier rules in the same file had it white; a later one undid them.
 * ===================================================================== */
/* The body is laid out explicitly as a column. It was a block of inline-level
   spans, where vertical margins on the link are unreliable, so the spacing
   above "Lire l'article" depended on the excerpt's own margin rather than on
   anything stated. Each part now owns its spacing. */
.psra-blog .psra-blog-hero__body{
	display:flex !important;flex-direction:column;align-items:flex-start;gap:0;
}
.psra-blog .psra-blog-hero__cat{margin:0 0 12px !important}
.psra-blog .psra-blog-hero__title{margin:0 0 12px !important}
.psra-blog .psra-blog-hero__exc{margin:0 !important}

.psra-blog .psra-blog-hero__cta{
	display:inline-flex;align-items:center;gap:10px;
	margin-top:24px !important;padding:0 0 4px !important;
	background:none !important;
	color:#fff !important;
	border:0 !important;
	border-bottom:1px solid rgba(255,255,255,.45) !important;
	border-radius:0 !important;
	font-size:14.5px !important;font-weight:700 !important;
	text-decoration:none;box-shadow:none !important;
	transition:border-color .22s ease, gap .22s cubic-bezier(.2,.8,.2,1);
}
.psra-blog .psra-blog-hero__cta svg{color:#fff !important;width:16px;height:16px;flex:none}

/* The card's own anchor still inherited a dark colour, so any text inside it
   that is not wrapped in one of the styled spans would land black on black.
   Setting it here means the plate is white-on-dark whatever the markup does. */
.psra-blog .psra-blog-hero{color:#fff !important}
.psra-blog .psra-blog-hero *{color:inherit}
.psra-blog .psra-blog-hero .psra-blog-hero__exc{color:rgba(226,232,248,.86) !important}
.psra-blog .psra-blog-hero .psra-blog-hero__cat{color:#fff !important}
.psra-blog .psra-blog-hero:hover .psra-blog-hero__cta{
	gap:13px;border-bottom-color:#fff !important;transform:none !important;filter:none !important;
}
@media (prefers-reduced-motion:reduce){
	.psra-blog .psra-blog-hero__cta{transition:none}
	.psra-blog .psra-blog-hero:hover .psra-blog-hero__cta{gap:9px}
}

/* =====================================================================
 *  BLOG INDEX - archive template
 *
 *  Structure, card anatomy, spacing rhythm and pagination follow the
 *  supplied specification. The palette does not: the reference uses a warm
 *  off-white with gold and forest green, which belongs to a different brand
 *  and would fight the platform's own header and footer on the same page.
 *  Every colour is mapped to a PSRA token through the four variables just
 *  below, so switching to the literal palette is a four-line edit.
 * ===================================================================== */
.psra-blog{
	/* Build marker. If this is not "archive-1" in devtools on .psra-blog,
	   the page is being served an older copy of this stylesheet. */
	--psra-blog-build:"archive-1";
	--bg-page:#f6f6f4;                       /* reference: #F4F4EF        */
	--bg-card:var(--psra-bg,#fff);
	--bg-accent:var(--psra-primary,#1a1a1a); /* reference: gold  #C9A227  */
	--bg-action:var(--psra-navy,#1a3f8f);    /* reference: green #3E7B4F  */
	--bg-hair:#eaeae4;
	--bg-line:#e0e0d8;
	background:var(--bg-page);
}

/* ---- hero banner ---- */
.psra-blog .psra-blog__hero{
	position:relative;isolation:isolate;overflow:hidden;
	min-height:330px;display:grid;place-items:center;
	padding:0 !important;
	background-size:cover !important;background-position:center !important;
}
.psra-blog .psra-blog__hero::after{
	content:"";position:absolute;inset:0;z-index:0;
	background:rgba(10,12,18,.35);
}
.psra-blog .psra-blog__hero-in{position:relative;z-index:1;text-align:center;padding:24px}
.psra-blog .psra-blog__h1{
	margin:0 !important;
	font-size:clamp(28px,4.4vw,40px) !important;
	font-weight:700 !important;line-height:1.14 !important;letter-spacing:-.01em !important;
	color:#fff !important;
	text-shadow:0 2px 14px rgba(0,0,0,.45);
}
.psra-blog .psra-blog__sub{
	margin:12px auto 0 !important;max-width:56ch;
	color:rgba(255,255,255,.9) !important;
	text-shadow:0 1px 8px rgba(0,0,0,.4);
}

/* ---- the grid starts 55px below the hero ---- */
.psra-blog .psra-blog__body{padding-top:55px !important;padding-bottom:50px !important}
.psra-blog .psra-blog-grid{
	grid-template-columns:repeat(3,minmax(0,1fr)) !important;
	column-gap:30px !important;row-gap:40px !important;
	align-items:stretch !important;
}

/* =====================================================================
 *  CARD
 * ===================================================================== */
.psra-blog .psra-pcard{
	display:flex !important;flex-direction:column;height:100%;
	overflow:hidden;
	border-radius:2px !important;
	background:var(--bg-card) !important;
	border:0 !important;
	box-shadow:0 1px 4px rgba(0,0,0,.07) !important;
	transition:box-shadow .3s ease, transform .3s cubic-bezier(.2,.8,.2,1);
}
.psra-blog .psra-pcard:hover{
	transform:translateY(-2px);
	box-shadow:0 6px 18px rgba(0,0,0,.11) !important;
}

/* image: 16:11, cover, no radius, slight zoom on hover */
.psra-blog .psra-pcard__media{
	display:block;position:relative;overflow:hidden;
	aspect-ratio:16/11 !important;border-radius:0 !important;
	background:var(--psra-bg-soft,#f4f5f7);
}
.psra-blog .psra-pcard__media img{
	width:100%;height:100%;object-fit:cover;display:block;
	transition:transform .4s ease;
}
.psra-blog .psra-pcard:hover .psra-pcard__media img{transform:scale(1.04)}
.psra-blog .psra-pcard__ph{
	position:absolute;inset:0;display:grid;place-items:center;
	color:var(--psra-primary-100,#dedede);background:var(--psra-bg-soft,#f4f5f7);
}

/* body grows so the footer is pinned to the bottom of every card */
.psra-blog .psra-pcard__body{
	display:flex;flex-direction:column;flex:1 1 auto;
	padding:22px !important;
}
.psra-blog .psra-pcard__cat{
	align-self:flex-start;margin:0 0 10px !important;
	padding:3px 9px !important;border-radius:2px !important;
	background:var(--psra-bg-soft,#f4f5f7) !important;border:0 !important;
	font-size:10.5px !important;font-weight:700 !important;
	letter-spacing:.09em !important;text-transform:uppercase;
	color:var(--psra-ink-2,#3a3a3a) !important;
}
.psra-blog .psra-pcard__title{
	margin:0 0 10px !important;
	font-family:Georgia,"Iowan Old Style","Times New Roman",serif !important;
	font-size:19px !important;font-weight:700 !important;line-height:1.35 !important;
	letter-spacing:0 !important;
}
.psra-blog .psra-pcard__title a{
	color:var(--bg-accent) !important;text-decoration:none;
	transition:opacity .2s ease;
}
.psra-blog .psra-pcard:hover .psra-pcard__title a{opacity:.78;text-decoration:none}

/* excerpt clamped to two lines */
.psra-blog .psra-pcard__exc{
	margin:0 0 14px !important;
	font-size:14px !important;line-height:1.6 !important;color:#444 !important;
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
	overflow:hidden;text-overflow:ellipsis;
}

/* READ MORE, directly under the excerpt, pushed to the bottom of the body */
.psra-blog .psra-pcard__more{
	display:inline-flex;align-items:center;gap:5px;
	margin-top:auto;align-self:flex-start;
	font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
	color:var(--bg-action) !important;text-decoration:none;
	transition:gap .2s cubic-bezier(.2,.8,.2,1), opacity .2s ease;
}
.psra-blog .psra-pcard__more svg{width:11px;height:11px;flex:none}
.psra-blog .psra-pcard:hover .psra-pcard__more{gap:9px;opacity:.85}

/* hairline across the full card width, then the footer row */
.psra-blog .psra-pcard__foot{
	display:flex;align-items:center;flex-wrap:wrap;gap:8px;
	margin:0;padding:14px 22px !important;
	border-top:1px solid var(--bg-hair);
	font-size:12px !important;color:#777 !important;
}
.psra-blog .psra-pcard__dot{
	width:3px;height:3px;border-radius:50%;background:#bdbdbd;flex:none;
}
.psra-blog .psra-pcard__read{margin-left:auto;color:#999 !important}
.psra-blog .psra-pcard__meta{display:none}

/* =====================================================================
 *  PAGINATION - 36x36 boxes, centred, 50px clear below
 * ===================================================================== */
.psra-blog .psra-blogpager{
	display:flex !important;justify-content:center;align-items:center;
	gap:6px !important;flex-wrap:wrap;
	margin:40px 0 50px !important;
}
.psra-blog .psra-blogpager a,
.psra-blog .psra-blogpager span{
	min-width:36px;height:36px;padding:0 8px !important;
	display:inline-flex;align-items:center;justify-content:center;
	border-radius:2px !important;
	background:var(--bg-card) !important;
	border:1px solid var(--bg-line) !important;
	font-size:14px;font-weight:600;color:var(--psra-ink-2,#3a3a3a) !important;
	text-decoration:none;
	transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.psra-blog .psra-blogpager a:hover{
	border-color:var(--bg-accent) !important;color:var(--bg-accent) !important;
}
.psra-blog .psra-blogpager .cur,
.psra-blog .psra-blogpager .is-current,
.psra-blog .psra-blogpager [aria-current]{
	background:var(--bg-accent) !important;border-color:var(--bg-accent) !important;
	color:#fff !important;
}
.psra-blog .psra-blogpager__arrow svg{width:13px;height:13px}

@media (max-width:992px){
	.psra-blog .psra-blog-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media (max-width:640px){
	.psra-blog .psra-blog-grid{grid-template-columns:1fr !important;row-gap:30px !important}
	.psra-blog .psra-blog__hero{min-height:240px}
}
@media (prefers-reduced-motion:reduce){
	.psra-blog .psra-pcard,.psra-blog .psra-pcard__media img,
	.psra-blog .psra-pcard__more,.psra-blog .psra-blogpager a{transition:none}
	.psra-blog .psra-pcard:hover{transform:none}
	.psra-blog .psra-pcard:hover .psra-pcard__media img{transform:none}
}

/* psra-mobile-fixes */
/* ---- Base anti-débordement ---- */
html,body{max-width:100%;overflow-x:clip}
/* clip, not hidden. overflow-x:hidden on body -- while html also carries a
   non-visible overflow -- turns body itself into a clipping scroll container,
   and every position:sticky on the site then pins to body, which never
   scrolls. That is why the journey stage scrolled away on phones while the
   desktop was fine. clip cannot create a scroll container, by specification. */
@supports (overflow:clip){html,body{overflow-x:clip}}
img,svg,video{max-width:100%;height:auto}
iframe{max-width:100%}

/* ---- Mobile (≤700px) ---- */
@media (max-width:700px){
  /* iOS : empêcher le zoom auto sur focus */
  input,select,textarea{font-size:16px !important}

  /* Les titres et boutons ne doivent jamais déborder */
  h1,h2,h3,[class*="__h1"],[class*="__title"]{overflow-wrap:break-word}
  .psra-btn{white-space:normal}

  /* Accueil : texte rotatif — retour à la ligne autorisé */
  .psra-rotator{display:inline;min-height:0;max-width:100%}
  .psra-rotator__item{position:static;display:none;white-space:normal;transform:none}
  .psra-rotator__item.is-on{display:inline}

  /* Tarifs : colonnes du comparateur */
  .psra-pr-cmp__col{white-space:normal}
  .psra-pr-cmp{overflow-x:auto;-webkit-overflow-scrolling:touch}

  /* Tableaux larges : défilement interne plutôt que débordement de page */
  .psra-dash table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* ---- Tableau de bord : filet de sécurité (règles terminales) ---- */
@media (max-width:992px){
  .psra-dash__layout{grid-template-columns:1fr !important;gap:18px}
  .psra-dash__nav{flex-direction:row !important;overflow-x:auto;position:static !important;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .psra-dash__nav::-webkit-scrollbar{display:none}
  .psra-dash__navlink{white-space:nowrap;flex:none}
}
@media (max-width:700px){
  .psra-statgrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important;gap:12px}
  .psra-dash__cols{grid-template-columns:1fr !important}
}
@media (max-width:420px){
  .psra-statgrid{grid-template-columns:1fr !important}
}

/* ---- Très petits écrans (≤380px) ---- */
@media (max-width:380px){
  .psra-container{padding-left:14px;padding-right:14px}
}

/* ---- v1.1 : garde-fous « texte coupé / débordements » (site entier) ---- */
[class*="psra-"] :is(h1,h2,h3){overflow-wrap:break-word}
[class*="psra-"] iframe,[class*="psra-"] video,[class*="psra-"] embed,[class*="psra-"] object{max-width:100%}
.psra-btn{max-width:100%}
@media (max-width:700px){
  [class*="psra-"] li a,[class*="psra-"] p a,[class*="psra-"] td a{overflow-wrap:anywhere}
  [class*="psra-"] table{max-width:100%}
}
/* psra-responsive */
/* ---------------------------------------------------------------------------
 *  Tablets and below: grids of three or four columns become two.
 * ------------------------------------------------------------------------ */
@media (max-width:900px){
  body .psra-figs,
  body .psra-bill__grid,
  body .psra-st-kpis,
  body .psra-cm__grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
  body .psra-jrny__sitegrid,
  body .psra-prpack__grid,
  body .psra-blogcat__grid,
  body .psra-rf-stats,
  body .psra-rf-steps,
  body .psra-ab-tmgrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
}

/* ---------------------------------------------------------------------------
 *  Telephones: a single column. Two columns of figures on a 360px screen
 *  leaves each one too narrow to read.
 * ------------------------------------------------------------------------ */
@media (max-width:600px){
  body .psra-figs,
  body .psra-bill__grid,
  body .psra-st-kpis,
  body .psra-cm__grid,
  body .psra-jrny__sitegrid,
  body .psra-prpack__grid,
  body .psra-blogcat__grid,
  body .psra-rf-stats,
  body .psra-rf-steps,
  body .psra-ab-tmgrid{grid-template-columns:1fr}
}

/* ---------------------------------------------------------------------------
 *  The calendar keeps seven columns: a week has seven days, whatever the
 *  screen. The cells and the type shrink instead.
 * ------------------------------------------------------------------------ */
@media (max-width:600px){
  body .psra-ag__grid{gap:2px}
  body .psra-ag__grid > *{min-height:44px;font-size:12px;padding:4px}
}

/* ---------------------------------------------------------------------------
 *  Nought to ten is a scale: collapsing it would change what is being asked.
 *  It is allowed to scroll sideways instead, which keeps every value reachable.
 * ------------------------------------------------------------------------ */
@media (max-width:520px){
  body .psra-nps__scale{gap:2px}
  body .psra-nps__n{padding:9px 0;font-size:11px}
}

/* ---------------------------------------------------------------------------
 *  Flex rows that could not wrap. The gallery editor is the worst case: a
 *  thumbnail, a caption field and two buttons on one line leaves the field
 *  unusable on a telephone.
 * ------------------------------------------------------------------------ */
@media (max-width:560px){
  body .psra-galed__list li{flex-wrap:wrap}
  body .psra-galed__list li input{flex:1 1 100%;order:3}
  body .psra-msposts__list li{flex-wrap:wrap}
  body .psra-prefs__row{flex-wrap:wrap}
  body .psra-prefs__call input{flex:1 1 100%}
}

/* ---------------------------------------------------------------------------
 *  Wide tables must never widen the page itself. Letting the table scroll
 *  inside its own container keeps the rest of the layout intact.
 * ------------------------------------------------------------------------ */
@media (max-width:760px){
  body .psra-vs__scroll,
  body .psra-lp-board{overflow-x:auto;-webkit-overflow-scrolling:touch}
  body .psra-roi__grid,
  body .psra-pages__list{grid-template-columns:1fr}
}

/* ---------------------------------------------------------------------------
 *  Nothing may push the page sideways. This catches anything the audit missed
 *  and anything added later.
 * ------------------------------------------------------------------------ */
@media (max-width:600px){
  body{overflow-x:clip} /* hidden here made body a scroll container and killed sticky on phones */
  body img,
  body video,
  body iframe,
  body table{max-width:100%}
}
