/*
 * Piranda Institute : contenu des onglets (repris du fichier V18).
 * L'en-tête commun à toutes les pages est dans site-header.css.
 */
:root{--navy:#0b2f57; --navy-2:#173f70; --teal:#18b3b0; --gold:#c8873b; --ink:#18273a;
  --muted:#647487; --line:#dce4ec; --bg:#f5f8fb; --white:#fff; --soft:#eef4f7;
  --radius:22px; --shadow:0 16px 40px rgba(10,37,66,.08);}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.wrap{max-width:1180px;margin:auto;padding:0 18px}
main{padding:24px 0 54px}
.tab-panel{display:none;animation:fade .25s ease}
.tab-panel.active{display:block}
@keyframes fade{from{opacity:.3;transform:translateY(8px)}to{opacity:1;transform:none}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center}
.hero-copy{padding:34px}
.eyebrow{font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--navy)}
h1{font-family:Georgia, 'Times New Roman', serif;font-size:clamp(2.3rem,6vw,4.6rem);line-height:.96;margin:14px 0 18px;color:#102339}
.lead{font-size:1.12rem;color:#314458;max-width:640px}
.highlight{margin-top:18px;font-weight:800;font-size:1.22rem;color:#102b46}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:999px;font-weight:700;border:1px solid transparent}
.btn-primary{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;box-shadow:0 12px 26px rgba(11,47,87,.24)}
.btn-secondary{background:#fff;color:var(--navy);border-color:var(--line)}
.hero-visual{overflow:hidden}
.hero-visual img{width:100%;height:100%;min-height:460px;object-fit:cover}
.section{margin-top:24px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:0 0 16px}
.section-head h2{margin:6px 0 0;font-size:2rem;color:#102b46}
.section-head p{max-width:720px;color:var(--muted);margin:0}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.info-card{padding:22px}
.info-card h3{margin:0 0 8px;color:#10335c;font-size:1.1rem}
.info-card p{margin:0;color:var(--muted)}
.book-hero{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch}
.book-photo{overflow:hidden}
.book-photo img{width:100%;height:100%;min-height:400px;object-fit:cover}
.book-intro{padding:28px 28px 22px}
.book-kicker{color:var(--gold);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.88rem}
.book-title{font-size:2.2rem;line-height:1.1;margin:10px 0 6px;color:#0e2948}
.book-subtitle{color:var(--gold);font-weight:700;margin-bottom:14px}
.cover-mock{background:linear-gradient(165deg,#072548 0%,#0c315d 60%,#08223f 100%);color:#fff;border-radius:22px;padding:28px;min-height:380px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.cover-mock::before,
.cover-mock::after{content:'';position:absolute;border-radius:999px;opacity:.23}
.cover-mock::before{width:360px;height:360px;background:radial-gradient(circle at 30% 30%, rgba(27,179,176,.85), transparent 60%);right:-120px;top:-110px}
.cover-mock::after{width:420px;height:420px;background:radial-gradient(circle at 50% 50%, rgba(200,135,59,.15), transparent 70%);left:-170px;bottom:-210px}
.cover-author{font-size:.92rem;letter-spacing:.12em;text-transform:uppercase;opacity:.9;position:relative}
.cover-main{position:relative}
.cover-main h3{font-size:3.5rem;line-height:.92;margin:.2em 0;text-transform:uppercase;letter-spacing:.02em}
.cover-main .small{font-size:2rem;color:#d59a52;display:block;margin:.12em 0}
.cover-main p{font-size:1.05rem;margin-top:18px;color:#e7c08d;max-width:310px;line-height:1.4}
.cover-bottom{position:relative;font-size:1.1rem;letter-spacing:.2em;text-transform:uppercase;opacity:.95;padding-top:24px}
.quote-band{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.quote{background:#f8fbfd;border:1px solid var(--line);border-radius:18px;padding:18px;color:#10335c;font-weight:700}
.back-cover{padding:28px}
.back-cover h3{margin:0 0 12px;color:#102b46;font-size:1.45rem}
.back-cover .hook{font-weight:800;font-size:1.15rem;color:#102b46;margin-bottom:2px}
.back-cover .hook2{font-weight:800;font-size:1.08rem;color:var(--gold);margin-bottom:18px}
.back-cover p{margin:0 0 12px;color:#30465d}
.back-cover .bullets{margin:8px 0 14px 0;padding-left:20px;color:#30465d}
.back-cover .bullets li{margin:6px 0}
.audience,
.buy-card,
.author-card{padding:24px}
.audience ul{margin:10px 0 0 18px;color:#30465d}
.audience li{margin:8px 0}
.buy-card .price{font-size:2rem;font-weight:800;color:#102b46}
.buy-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 12px}
.buy-option{border:1px solid var(--line);border-radius:18px;padding:16px;background:#f8fbfd}
.buy-option strong{display:block;color:#10335c;margin-bottom:6px}
.buy-note{font-size:.95rem;color:var(--muted)}
.author-card{display:grid;grid-template-columns:130px 1fr;gap:18px;align-items:center}
.author-card img{width:130px;height:170px;object-fit:cover;border-radius:18px}
.conference-card{padding:24px}
.conference-card .num{display:inline-block;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);font-weight:800;margin-bottom:10px}
.conference-card h3{margin:0 0 8px;color:#0d2d55}
.conference-card p{margin:0;color:var(--muted)}
.big-cta{padding:28px;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff}
.big-cta h2,
.big-cta p{color:#fff;margin-top:0}
footer{padding:18px 0 40px;color:var(--muted);font-size:.95rem}
footer .wrap{border-top:1px solid var(--line);padding-top:18px}
@media (max-width:980px){
.hero,
.book-hero,
.grid-4,
.grid-3,
.grid-2,
.quote-band,
.author-card{grid-template-columns:1fr}
.section-head{display:block}
}
@media (max-width:760px){
h1{font-size:3rem}
.hero-copy,
.book-intro,
.back-cover,
.audience,
.buy-card,
.author-card,
.info-card,
.conference-card,
.big-cta{padding:22px}
.hero-visual img{min-height:320px}
.book-photo img{min-height:280px}
.cover-main h3{font-size:2.55rem}
.cover-main .small{font-size:1.45rem}
.buy-options{grid-template-columns:1fr}
}
/* Enseignement — présentation éditoriale */
.educ-intro{max-width:920px;margin:24px auto 34px;text-align:center}
.educ-intro h2{font-family:Georgia,serif;font-size:clamp(2.1rem,4vw,3.4rem);line-height:1.15;margin:14px 0 22px;color:#082b50}
.educ-intro p{max-width:780px;margin:0 auto 12px;color:#526779;font-size:1.08rem}
.educ-meta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:28px auto 0}
.educ-meta span{background:#eff6f8;color:#0d5065;border:1px solid #d9e9ed;border-radius:30px;padding:7px 15px;font-size:.85rem;font-weight:650}
.educ-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:22px}
.educ-axis{overflow:hidden;background:white;border:1px solid #e0e8ed;border-radius:18px;box-shadow:0 14px 34px rgba(12,38,67,.06)}
.educ-art{height:225px;position:relative;overflow:hidden}
.educ-art svg{width:100%;height:100%;display:block}
.educ-art-number{position:absolute;top:20px;left:22px;color:#d9faf7;font-weight:700;letter-spacing:.13em;font-size:.78rem}
.educ-axis-body{padding:27px}
.educ-axis-kicker{font-size:.78rem;color:#008d92;letter-spacing:.14em;text-transform:uppercase;font-weight:800}
.educ-axis-body h3{font-size:1.56rem;line-height:1.22;margin:9px 0 10px;color:#092b4e}
.educ-axis-body>p{color:#526779;margin:0 0 22px}
.educ-courses{border-top:1px solid #e6ecef}
.educ-course{border-bottom:1px solid #e6ecef}
.educ-course summary{list-style:none;display:flex;justify-content:space-between;gap:16px;cursor:pointer;align-items:center;padding:16px 0;font-weight:700;color:#1a354f;line-height:1.35}
.educ-course summary::-webkit-details-marker{display:none}
.educ-plus{font-size:1.5rem;line-height:1;color:#019b9a;font-weight:400}
.educ-course[open] .educ-plus{transform:rotate(45deg)}
.educ-course>p{font-size:.95rem;color:#607080;margin:0 0 18px}
.educ-end{margin-top:30px;padding:34px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-radius:20px;background:#edf5f6}
.educ-end h3{color:#092b4e;font-size:1.55rem;margin:8px 0}
.educ-end p{margin:0;color:#516779;max-width:660px}
@media(max-width:800px){
.educ-grid{grid-template-columns:1fr}
.educ-art{height:190px}
.educ-end{flex-direction:column;align-items:flex-start;padding:25px}
.educ-intro{text-align:left}
.educ-meta{justify-content:flex-start}
}
.bio-expleo{padding:clamp(30px,5vw,54px);margin:10px 0 28px;background:#edf5f7;border-left:4px solid #158f9a;border-radius:4px}
.bio-expleo h2{color:#0b2f51;font-size:clamp(1.8rem,3.1vw,2.55rem);line-height:1.2;max-width:850px;margin:13px 0 20px}
.bio-expleo p{color:#334c60;max-width:880px;font-size:1.05rem}
.bio-expleo .bio-expleo-lead{font-size:1.16rem;color:#173950}
.bio-sector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:24px 0}
.bio-sector-grid span{background:#fff;border:1px solid #d4e5eb;padding:13px 15px;color:#0b3457;font-weight:650;border-radius:3px}
@media(max-width:650px){
.bio-sector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.bio-expleo{padding:25px 20px}
}
/* À propos : composition éditoriale premium */
.bio-intro{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(24px,5vw,76px);align-items:center;padding:34px 0 56px}
.bio-heading .eyebrow,
.bio-section .eyebrow,
.bio-statement .eyebrow,
.bio-contact .eyebrow{letter-spacing:.16em}
.bio-heading h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;letter-spacing:-.035em;font-size:clamp(2.65rem,5vw,4.8rem);line-height:1.1;margin:16px 0 26px;color:#092b4e}
.bio-heading h1 em{font-weight:400;color:#158f9a}
.bio-heading p{max-width:630px;color:#45596e;font-size:1.05rem}
.bio-heading .bio-lead{font-size:1.22rem;color:#182f46;line-height:1.6}
.bio-photo{border-radius:5px;overflow:hidden;box-shadow:0 20px 50px rgba(12,38,63,.12);background:#ebf0f3}
.bio-photo img{width:100%;aspect-ratio:4/4.6;object-fit:cover;object-position:center top}
.bio-section{padding:56px 0}
.bio-section-heading{max-width:780px;margin-bottom:29px}
.bio-section h2,
.bio-contact h2{color:#0c2f50;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:600;line-height:1.2;margin:10px 0}
.bio-section-heading p{color:#586b7e}
.bio-experience-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bio-exp{background:#fff;border:1px solid #dbe5eb;padding:26px;border-radius:6px;box-shadow:0 7px 24px rgba(10,37,66,.035)}
.bio-exp>span{font-size:.75rem;letter-spacing:.11em;color:#128c94;font-weight:800}
.bio-exp h3{color:#123452;font-size:1.22rem;line-height:1.25;margin:13px 0}
.bio-exp p{color:#526678;line-height:1.65;margin:0}
.bio-statement{background:#0b2f51;color:#fff;padding:clamp(30px,6vw,64px);border-radius:6px;margin:16px 0 20px}
.bio-statement .eyebrow{color:#79d3d4}
.bio-statement blockquote{font-family:Georgia,serif;font-size:clamp(1.9rem,3.9vw,3rem);line-height:1.2;margin:18px 0 26px;max-width:850px}
.bio-statement p{color:#d6e6ec;max-width:890px;font-size:1.06rem;margin:0}
.bio-columns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(25px,6vw,90px)}
.bio-columns article p{color:#516678}
.bio-contact{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid #dbe5eb;margin-top:14px;padding:32px 0 50px}
.bio-contact-btn{border:0;background:#0b2f51;color:#fff;border-radius:4px;padding:14px 22px;font-weight:700;cursor:pointer}
.bio-contact-btn:hover{background:#127d87}
@media(max-width:850px){
.bio-intro,
.bio-columns{grid-template-columns:1fr}
.bio-intro{padding-top:12px}
.bio-photo{max-width:590px}
.bio-experience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
.bio-experience-grid{grid-template-columns:1fr}
.bio-section{padding:36px 0}
.bio-intro{gap:18px}
.bio-contact{align-items:flex-start;flex-direction:column}
.bio-heading h1{font-size:2.55rem}
.bio-photo img{aspect-ratio:5/4.5}
.bio-exp{padding:23px}
}
.bio-new{padding-top:42px}
.bio-world-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.bio-innovation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bio-innovation-feature{border-top:3px solid #13999c;background:#fff;padding:27px 24px;display:flex;flex-direction:column;gap:15px;min-height:215px}
.bio-innovation-feature>strong{font:500 2rem Georgia,serif;color:#0b355b}
.bio-innovation-feature h3{font-size:1.18rem;color:#123452;margin:0 0 10px}
.bio-innovation-feature p{color:#526678;margin:0;line-height:1.6}
@media(max-width:850px){
.bio-world-grid,
.bio-innovation-grid{grid-template-columns:1fr}
}
/* V15 — Conferences sur mesure et conseil stratégique et opérationnel */
.offer-custom,
.advisory-bottom{margin-top:34px;background:#0b2f51;color:#fff;padding:clamp(24px,4.5vw,50px);border-radius:7px;display:flex;gap:32px;align-items:center;justify-content:space-between}
.offer-custom>div,
.advisory-bottom>div{max-width:770px}
.offer-custom .eyebrow,
.advisory-bottom .eyebrow{color:#82d5d4}
.offer-custom h2,
.advisory-bottom h2{font:normal clamp(1.65rem,3vw,2.45rem)/1.2 Georgia,serif;color:#fff;margin:10px 0 18px}
.offer-custom p,
.advisory-bottom p{color:#dfebf0;margin:10px 0}
.offer-link{flex:0 0 auto;border:1px solid #91cfd1;border-radius:4px;background:#fff;color:#0b3558;font-weight:700;padding:15px 22px;cursor:pointer}
.offer-link:hover{background:#d9f1f1}
.conseil-heading{margin-bottom:26px}
.advisory-lead{padding:30px 0 25px;max-width:960px}
.advisory-intro{font-size:clamp(1.3rem,2.4vw,1.85rem);line-height:1.5;color:#12334f}
.advisory-lead>p:last-child{color:#526678;max-width:810px}
.advisory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.advisory-card{background:#fff;border:1px solid #dbe5eb;border-radius:6px;padding:27px;box-shadow:0 7px 24px rgba(10,37,66,.035)}
.advisory-card span{font-size:.77rem;letter-spacing:.12em;font-weight:800;color:#118f9b}
.advisory-card h3{font-size:1.24rem;line-height:1.3;color:#103451;margin:13px 0}
.advisory-card p{color:#54687a;margin:0}
@media(max-width:900px){
.advisory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.offer-custom,
.advisory-bottom{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
.advisory-grid{grid-template-columns:1fr}
.advisory-card{padding:22px}
.offer-custom,
.advisory-bottom{padding:26px}
}
/* V16 : biographie narrative */
.bio-story-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,5vw,68px);align-items:center;padding:35px 0 48px}
.bio-story-intro h1{font:normal clamp(2.5rem,5vw,4.6rem)/1.09 Georgia,serif;letter-spacing:-.035em;color:#092d50;margin:18px 0 16px}
.bio-story-intro p{font-size:1.06rem;color:#44596c;max-width:690px}
.bio-story-intro .bio-story-sub{font:italic 1.4rem Georgia,serif;color:#138e99}
.bio-story-photo{overflow:hidden;border-radius:6px;box-shadow:0 22px 45px #0a27401c}
.bio-story-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top}
.bio-story-body{max-width:825px;margin:auto}
.bio-story-body article{padding:35px 0 42px;border-bottom:1px solid #dce5ea}
.bio-story-index{font-size:.78rem;font-weight:800;letter-spacing:.15em;color:#0c9095;text-transform:uppercase;margin-bottom:12px}
.bio-story-body h2{font:normal clamp(1.8rem,3vw,2.55rem)/1.2 Georgia,serif;color:#0b3151;margin:0 0 22px}
.bio-story-body p{color:#34495b;font-size:1.075rem;line-height:1.87;margin:0 0 18px}
.bio-story-body strong{color:#143d5a}
.bio-story-quote{background:#0b3151;color:#fff;padding:36px 45px;margin:32px -25px;font:italic clamp(1.6rem,3.5vw,2.55rem)/1.3 Georgia,serif;border-radius:5px}
.bio-story-cta{margin:50px 0 24px;background:#eaf3f5;padding:32px 40px;display:flex;align-items:center;justify-content:space-between;gap:25px;border-radius:5px}
.bio-story-cta h2{font:normal 1.8rem Georgia,serif;color:#0b3151;margin:10px 0 0}
.bio-story-cta button{background:#0b3151;color:#fff;border:0;padding:15px 24px;border-radius:4px;font-weight:700;white-space:nowrap}
@media(max-width:800px){
.bio-story-hero{grid-template-columns:1fr}
.bio-story-photo{max-width:440px}
.bio-story-quote{margin:25px 0;padding:28px}
.bio-story-cta{flex-direction:column;align-items:flex-start}
}
@media(max-width:550px){
.bio-story-hero{padding-top:12px}
.bio-story-intro h1{font-size:2.6rem}
.bio-story-body p{font-size:1rem;line-height:1.75}
.bio-story-body article{padding:28px 0}
.bio-story-cta{padding:25px}
}
/* V18 : énergie-climat, édition premium */
.ec-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(22px,5vw,70px);align-items:center;padding:40px 0 55px}
.ec-hero h1{font:400 clamp(2.5rem,5vw,4.4rem)/1.08 Georgia,serif;letter-spacing:-.028em;color:#0b3051;margin:16px 0 24px}
.ec-hero h1 em{font-weight:400;color:#138c93}
.ec-hero p{color:#4d6174;max-width:770px}
.ec-hero .ec-lead{font-size:1.16rem;color:#203f57;line-height:1.65}
.ec-hero .rubric-feature{margin:0;overflow:hidden;border-radius:8px}
.ec-section{padding:50px 0}
.ec-section h2{font:400 clamp(1.9rem,3.3vw,2.85rem)/1.18 Georgia,serif;color:#0e3253;margin:12px 0 20px}
.ec-wide{max-width:920px;color:#4d6174;font-size:1.07rem}
.ec-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:30px}
.ec-three article{border-top:2px solid #1caaa9;background:white;padding:22px 24px 26px;box-shadow:0 8px 25px rgba(15,51,78,.055)}
.ec-three article span{font-size:.77rem;font-weight:800;letter-spacing:.12em;color:#168d93}
.ec-three h3,
.ec-topics h3{font-size:1.22rem;line-height:1.3;color:#0f3454;margin:15px 0 10px}
.ec-three p,
.ec-topics p{color:#52697b;margin:0}
.ec-quote{padding:clamp(28px,5vw,60px);border-radius:6px;background:#0b3051;color:#fff}
.ec-quote .eyebrow{color:#86d4d3}
.ec-quote p{font:400 clamp(1.55rem,3vw,2.5rem)/1.3 Georgia,serif;max-width:950px;margin:18px 0 12px}
.ec-quote small{color:#bfd8e1}
.ec-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}
.ec-topics article{background:#f2f7f8;border:1px solid #dfebec;border-radius:6px;padding:28px}
.ec-symbol{font-weight:800;color:#0a5970;display:flex;justify-content:space-between}
.ec-symbol span{font-size:1.5rem;color:#12aaa4}
.ec-experience{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,5vw,85px);border-block:1px solid #d9e5e9}
.ec-experience p{margin-top:0;color:#4c6175}
.ec-cta{background:#0b3051;color:#fff;padding:clamp(26px,4vw,48px);display:flex;justify-content:space-between;gap:25px;align-items:center;border-radius:6px}
.ec-cta .eyebrow{color:#87d5d4}
.ec-cta h2{color:#fff;font:400 clamp(1.6rem,2.8vw,2.4rem)/1.2 Georgia,serif;margin:10px 0}
.ec-cta p{color:#dae9ef;max-width:700px}
@media(max-width:950px){
.ec-hero,
.ec-experience{grid-template-columns:1fr}
.ec-hero .rubric-feature{max-width:650px}
.ec-three{grid-template-columns:1fr}
.ec-cta{align-items:flex-start;flex-direction:column}
}
@media(max-width:660px){
.ec-topics{grid-template-columns:1fr}
.ec-hero{padding:18px 0 24px}
.ec-section{padding:32px 0}
.ec-topics article{padding:22px}
}
/* V7 — Premium redesign */
:root{--navy:#072c50;--teal:#05a9a4;--line:#e6ebf0;--bg:#f9fafb}
body{background:#f9fafb;color:#14273b}
main{padding-top:32px}
.card{border:1px solid #e9edf1;box-shadow:0 12px 38px rgba(12,43,72,.035);border-radius:18px}
.hero-copy{border:0;box-shadow:none;background:transparent;padding:10px 6px}
.hero-visual{border-radius:14px;box-shadow:0 18px 45px rgba(12,43,72,.12)}
h1{font-size:clamp(2.9rem,5.3vw,4.7rem);letter-spacing:-.038em}
.section{margin-top:50px}
.section-head h2{font-family:Georgia,'Times New Roman',serif;font-weight:normal;font-size:clamp(2rem,3.6vw,2.8rem);letter-spacing:-.028em}
.info-card{min-height:170px}
.info-card h3{font-size:1.07rem}
.rubric-feature{margin:18px 0 25px;display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);border-radius:16px;overflow:hidden;background:#0b3255;min-height:255px}
.rubric-art{min-height:255px}
.rubric-art svg{display:block;width:100%;height:100%;object-fit:cover}
.rubric-caption{padding:30px;display:flex;flex-direction:column;justify-content:center;color:white}
.rubric-caption .eyebrow{color:#65d5cc}
.rubric-caption p{font:normal 1.4rem/1.35 Georgia,serif;margin:12px 0 0;color:white}
.conference-card{padding:0 0 26px;overflow:hidden;border-radius:16px}
.conference-card>.num,
.conference-card>h3,
.conference-card>p{margin-left:24px;margin-right:24px}
.conference-art{height:170px;overflow:hidden;margin-bottom:22px}
.conference-art svg{height:100%;width:100%;display:block}
.book-hero{gap:28px}
.book-photo{border-radius:16px}
.book-intro{padding:38px 30px}
.accent-rule{width:76px;height:3px;background:var(--teal);margin-bottom:22px}
.quote{border-radius:9px;background:#fff;border-left:3px solid var(--teal);font-family:Georgia,serif;font-size:1.12rem;font-weight:normal}
.cover-mock{border-radius:15px}
.back-cover{background:#fffdf9}
.buy-card,
.audience,
.author-card{border-radius:16px}
@media(max-width:760px){
.hero-copy{padding:12px 0}
.hero-visual img{min-height:300px;max-height:450px;object-position:center 25%}
.rubric-feature{grid-template-columns:1fr}
.rubric-art{height:190px;min-height:190px}
.rubric-caption{padding:22px}
.rubric-caption p{font-size:1.25rem}
main{padding-top:15px}
.section{margin-top:32px}
.section-head h2{font-size:2rem}
.conference-art{height:155px}
.book-photo img{height:380px;object-position:center 28%;min-height:0}
}

/* Intégration au site (styles autrefois écrits dans le HTML) */
[hidden] {
  display: none !important;
}
.tab-panel:focus {
  outline: none;
}
.big-cta .eyebrow--light {
  color: #cfe8f2;
}
.big-cta .contact-email {
  font-size: 1.15rem;
}
a.offer-link,
a.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 100;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  transform: translateY(-160%);
  transition: transform 0.2s;
}
.skip-link:focus {
  transform: none;
}
.pi-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 24px;
}
.pi-footer p {
  margin: 0;
}
.pi-footer a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pi-footer__links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
}

/* ═════════════════════════════════════════════════════════════════════════
   Finitions UX/UI : typographie, boutons, cartes, rythme, bandeaux sombres,
   page Contact, pied de page. Les variables --pi-* viennent de site-header.css.
   ═════════════════════════════════════════════════════════════════════════ */
:root {
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --teal-ink: #04726f;
}
html {
  scroll-padding-top: 100px;
}
body.institute-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: #f7f9fb;
  color: var(--pi-ink);
  font-family: var(--pi-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.institute-page > main {
  flex: 1 0 auto;
}
.wrap {
  max-width: var(--pi-container);
  padding-inline: var(--pi-gutter);
}
main.wrap {
  width: 100%;
  padding-top: clamp(28px, 4vw, 48px);
  padding-bottom: clamp(56px, 8vw, 104px);
}
.tab-panel.active {
  animation: panel-in 0.5s var(--pi-ease);
}
@keyframes panel-in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
}
h1,
h2,
h3 {
  text-wrap: balance;
}
p {
  text-wrap: pretty;
}

/* ── Typographie : titres en EB Garamond, texte en Inter ─────────────────── */
h1,
.section-head h2,
.educ-intro h2,
.bio-story-intro h1,
.bio-story-body h2,
.bio-story-cta h2,
.bio-story-quote,
.ec-hero h1,
.ec-section h2,
.ec-quote p,
.ec-cta h2,
.offer-custom h2,
.advisory-bottom h2,
.big-cta h2,
.rubric-caption p {
  font-family: var(--pi-serif);
  font-weight: 500;
  letter-spacing: -0.012em;
}
h1,
.ec-hero h1,
.bio-story-intro h1 {
  font-size: clamp(2.7rem, 5.2vw, 4.7rem);
  line-height: 1.04;
  letter-spacing: -0.02em;
  margin: 18px 0 24px;
}
h1 em,
.ec-hero h1 em {
  font-style: italic;
  font-weight: 400;
  color: var(--teal-ink);
}
.section-head h2,
.educ-intro h2,
.ec-section h2,
.bio-story-body h2,
.offer-custom h2,
.advisory-bottom h2,
.ec-cta h2,
.big-cta h2,
.bio-story-cta h2 {
  font-size: clamp(2.1rem, 4vw, 3.2rem);
  line-height: 1.08;
}
.eyebrow,
.educ-axis-kicker,
.book-kicker,
.bio-story-index,
.conference-card .num,
.advisory-card span,
.ec-three article span,
.rubric-caption .eyebrow {
  font-family: var(--pi-sans);
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}
.eyebrow {
  color: var(--teal-ink);
}
.lead,
.ec-lead,
.bio-story-intro p {
  color: #3b4d60;
}
.lead {
  max-width: 36em;
  font-size: clamp(1.08rem, 1.6vw, 1.22rem);
  line-height: 1.65;
}
.section {
  margin-top: clamp(64px, 9vw, 112px);
}
.section-head {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 16px clamp(28px, 5vw, 72px);
  align-items: end;
  margin-bottom: clamp(24px, 3.5vw, 40px);
}
.section-head p {
  max-width: 56ch;
  color: var(--pi-muted);
  font-size: 1.04rem;
  line-height: 1.7;
}

/* Les titres principaux (h1) des onglets Conférences, Conseil, Enseignement et Contact gardent la taille des titres de section */
.section-head h1,
.educ-intro h1,
.big-cta h1 {
  font-family: var(--pi-serif);
  font-weight: 500;
  font-size: clamp(2.1rem, 4vw, 3.2rem);
  line-height: 1.08;
  letter-spacing: -0.012em;
  margin: 6px 0 0;
  color: #102b46;
}
.educ-intro h1 {
  margin: 14px 0 22px;
  color: #082b50;
}
.big-cta h1 {
  color: #fff;
}
.ec-three article span,
.bio-story-intro .bio-story-sub,
.bio-story-index,
.educ-end .eyebrow,
.bio-story-cta .eyebrow {
  color: var(--teal-ink);
}

/* ── Boutons : un seul langage partout ───────────────────────────────────── */
.btn,
.offer-link,
.bio-contact-btn,
.bio-story-cta button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  min-height: 50px;
  padding: 0 28px;
  border: 1px solid transparent;
  border-radius: 999px;
  font: 600 0.96rem/1.2 var(--pi-sans);
  letter-spacing: 0.005em;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.22s var(--pi-ease), box-shadow 0.28s var(--pi-ease), background-color 0.2s, color 0.2s,
    border-color 0.2s;
}
.btn:active,
.offer-link:active,
.bio-story-cta button:active {
  transform: scale(0.985);
}
.btn-primary,
.bio-story-cta button,
.bio-contact-btn {
  background: var(--pi-navy);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 10px 22px -10px rgba(7, 44, 80, 0.75);
}
.btn-primary:hover,
.bio-story-cta button:hover,
.bio-contact-btn:hover {
  background: var(--pi-navy-700);
  transform: translateY(-2px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 16px 28px -12px rgba(7, 44, 80, 0.8);
}
.btn-secondary {
  background: #fff;
  color: var(--pi-navy);
  border-color: var(--pi-line-strong);
  box-shadow: 0 1px 2px rgba(7, 44, 80, 0.05);
}
.btn-secondary:hover {
  border-color: var(--pi-navy);
  background: #f2f7fa;
  transform: translateY(-2px);
}
/* Sur les bandeaux sombres : bouton blanc */
.offer-link {
  background: #fff;
  color: var(--pi-navy);
  box-shadow: 0 12px 26px -14px rgba(0, 0, 0, 0.6);
}
.offer-link:hover {
  background: #e4f6f5;
  transform: translateY(-2px);
}
.cta-row {
  gap: 12px;
  margin-top: 32px;
}

/* ── Cartes ──────────────────────────────────────────────────────────────── */
.card,
.advisory-card,
.ec-three article,
.ec-topics article,
.educ-axis {
  background: #fff;
  border: 1px solid var(--pi-line);
  border-radius: var(--r-md);
  box-shadow: var(--pi-shadow-sm);
  transition: transform 0.4s var(--pi-ease), box-shadow 0.4s var(--pi-ease), border-color 0.3s;
}
.ec-three article {
  border-top: 3px solid var(--pi-teal);
}
.ec-topics article {
  background: #f1f7f8;
}
@media (hover: hover) {
  .info-card:hover,
  .advisory-card:hover,
  .ec-three article:hover,
  .ec-topics article:hover,
  .conference-card:hover,
  .educ-axis:hover {
    transform: translateY(-4px);
    box-shadow: var(--pi-shadow-md);
    border-color: rgba(5, 169, 164, 0.45);
  }
}
.grid-4,
.grid-3,
.grid-2 {
  gap: clamp(14px, 2vw, 22px);
}
.info-card {
  padding: 30px 28px 32px;
}
.info-card::before {
  content: '';
  display: block;
  width: 34px;
  height: 3px;
  margin-bottom: 22px;
  border-radius: 3px;
  background: var(--pi-teal);
  transition: width 0.4s var(--pi-ease);
}
.info-card:hover::before {
  width: 56px;
}
.info-card h3,
.advisory-card h3,
.ec-three h3,
.ec-topics h3,
.conference-card h3 {
  color: var(--pi-navy);
  font-size: 1.14rem;
  font-weight: 700;
  line-height: 1.3;
}
.info-card p,
.advisory-card p,
.ec-three p,
.ec-topics p,
.conference-card p {
  line-height: 1.7;
}

/* ── Accueil ─────────────────────────────────────────────────────────────── */
#accueil {
  position: relative;
}
#accueil::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: -90px;
  right: 0;
  width: min(680px, 100%);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(5, 169, 164, 0.14), transparent);
  pointer-events: none;
}
#accueil .hero {
  grid-template-columns: minmax(0, 1.14fr) minmax(0, 0.86fr);
  gap: clamp(36px, 6vw, 96px);
  align-items: center;
  margin-top: 0;
}
#accueil .hero-copy {
  padding: 0;
  background: none;
  border: 0;
  box-shadow: none;
}
#accueil .highlight {
  margin-top: 26px;
  padding-left: 18px;
  border-left: 3px solid var(--pi-teal);
  font-size: 1.14rem;
  line-height: 1.5;
  color: var(--pi-navy);
}
#accueil .hero-visual {
  position: relative;
  isolation: isolate;
  overflow: visible;
  background: none;
  border: 0;
  box-shadow: none;
}
#accueil .hero-visual img {
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 18%;
  border-radius: var(--r-lg);
  box-shadow: var(--pi-shadow-lg);
}
#accueil .hero-visual::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 28px -16px -22px 28px;
  border: 1.5px solid rgba(5, 169, 164, 0.5);
  border-radius: calc(var(--r-lg) + 6px);
}
#accueil .hero-visual::after {
  content: '';
  position: absolute;
  z-index: -1;
  top: -40px;
  right: -34px;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(200, 135, 59, 0.38), transparent);
}

/* ── Bandeaux illustrés (conférences, conseil, énergie-climat) ───────────── */
.rubric-feature {
  margin: 0 0 clamp(24px, 3vw, 36px);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--pi-navy);
  box-shadow: var(--pi-shadow-md);
}
.rubric-caption {
  padding: clamp(24px, 3vw, 40px);
}
.rubric-caption p {
  font-size: clamp(1.5rem, 2.3vw, 1.95rem);
  line-height: 1.25;
}
.ec-hero .rubric-feature {
  grid-template-columns: 1fr;
  align-self: center;
}
.ec-hero .rubric-art {
  height: 240px;
  min-height: 240px;
}
.editorial-art {
  display: block;
  width: 100%;
  height: 100%;
}
.conference-card {
  padding: 0 0 30px;
}
.conference-art {
  height: 200px;
  margin-bottom: 26px;
}
.conference-card > .num,
.conference-card > h3,
.conference-card > p {
  margin-left: 28px;
  margin-right: 28px;
}
.conference-card .num {
  color: var(--teal-ink);
}
.advisory-grid {
  gap: clamp(14px, 2vw, 22px);
}
.advisory-card {
  padding: 30px 28px 32px;
}
.advisory-card span {
  color: var(--teal-ink);
}
.advisory-intro {
  font-family: var(--pi-serif);
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  line-height: 1.32;
  font-weight: 400;
}
.advisory-intro strong {
  font-weight: 600;
}

/* ── Bandeaux sombres : un même gabarit ──────────────────────────────────── */
.offer-custom,
.advisory-bottom,
.ec-cta {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  gap: clamp(22px, 4vw, 56px);
  padding: clamp(30px, 5vw, 60px);
  border-radius: var(--r-lg);
  background: linear-gradient(135deg, #072c50 0%, #0c3a68 100%);
  box-shadow: var(--pi-shadow-md);
}
.offer-custom::before,
.advisory-bottom::before,
.ec-cta::before,
.big-cta::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: -220px;
  right: -160px;
  width: 560px;
  height: 560px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(5, 169, 164, 0.3), transparent);
  pointer-events: none;
}
.offer-custom p,
.advisory-bottom p,
.ec-cta p {
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.7;
}
.offer-custom .eyebrow,
.advisory-bottom .eyebrow,
.ec-cta .eyebrow {
  color: #7fdad6;
}
.ec-quote {
  position: relative;
  padding: clamp(30px, 5vw, 64px);
  border-radius: var(--r-lg);
  background: linear-gradient(135deg, #072c50 0%, #0c3a68 100%);
  box-shadow: var(--pi-shadow-md);
}
.ec-quote p {
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.7rem, 3.2vw, 2.6rem);
  line-height: 1.28;
}
.ec-quote small {
  color: rgba(255, 255, 255, 0.6);
}
.ec-section {
  padding: clamp(36px, 5vw, 64px) 0;
}
.ec-experience {
  border-block: 1px solid var(--pi-line);
}
.ec-symbol span {
  transition: transform 0.35s var(--pi-ease);
}
.ec-topics article:hover .ec-symbol span {
  transform: translate(3px, -3px);
}

/* ── Enseignement ────────────────────────────────────────────────────────── */
.educ-grid {
  gap: clamp(16px, 2.4vw, 28px);
}
.educ-axis {
  overflow: hidden;
}
.educ-axis-body h3 {
  color: var(--pi-navy);
}
.educ-course summary {
  min-height: 56px;
  transition: color 0.2s;
}
.educ-course summary:hover {
  color: var(--teal-ink);
}
.educ-plus {
  transition: transform 0.3s var(--pi-ease);
}
.educ-course[open] > p {
  animation: fade-down 0.35s var(--pi-ease);
}
@keyframes fade-down {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
}
.educ-end {
  border-radius: var(--r-lg);
  background: #e9f3f4;
}

/* ── À propos ────────────────────────────────────────────────────────────── */
.bio-story-photo {
  border-radius: var(--r-lg);
  box-shadow: var(--pi-shadow-lg);
}
.bio-story-quote {
  border-radius: var(--r-lg);
  background: linear-gradient(135deg, #072c50 0%, #0c3a68 100%);
  font-style: italic;
  font-weight: 400;
}
.bio-story-cta {
  border-radius: var(--r-lg);
  background: #e9f3f4;
}
.bio-story-body p {
  font-size: 1.08rem;
  line-height: 1.85;
}

/* ── Contact ─────────────────────────────────────────────────────────────── */
#contact .big-cta {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: clamp(420px, 56vh, 560px);
  margin-top: 0;
  padding: clamp(32px, 6vw, 80px);
  border: 0;
  border-radius: var(--r-lg);
  background: linear-gradient(135deg, #072c50 0%, #0c3a68 100%);
  box-shadow: var(--pi-shadow-lg);
}
#contact .big-cta::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0 0 0 46%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 700 420' preserveAspectRatio='xMaxYMid slice'%3E%3Cpath d='M0 355C145 300 190 350 275 235S450 250 700 70' fill='none' stroke='%2309bab0' stroke-width='8'/%3E%3Cpath d='M0 397C160 330 198 395 285 282S488 324 700 145' fill='none' opacity='.8' stroke='%23ddae74' stroke-width='3'/%3E%3Ccircle cx='502' cy='174' r='104' fill='none' opacity='.25' stroke='%23fff' stroke-width='2'/%3E%3Ccircle cx='502' cy='174' r='59' fill='none' opacity='.4' stroke='%23fff'/%3E%3Ccircle cx='502' cy='174' r='11' fill='%23e1ae78'/%3E%3Cpath d='M502 174L586 96' stroke='%23fff' stroke-width='4'/%3E%3C/svg%3E")
    right center / cover no-repeat;
  opacity: 0.6;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 55%);
  mask-image: linear-gradient(90deg, transparent, #000 55%);
}
#contact .big-cta > * {
  max-width: 640px;
}
#contact .big-cta .eyebrow {
  color: #7fdad6;
}
#contact .big-cta h1 {
  margin: 14px 0 18px;
  font-size: clamp(2.4rem, 5vw, 4rem);
  color: #fff;
}
#contact .big-cta p {
  color: rgba(255, 255, 255, 0.84);
  font-size: 1.1rem;
  line-height: 1.7;
}
#contact .contact-email {
  margin: 28px 0 0;
}
#contact .contact-email a {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 15px 22px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: clamp(1.02rem, 2.4vw, 1.3rem);
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.25s, border-color 0.25s, transform 0.25s var(--pi-ease);
}
#contact .contact-email a::before {
  content: '';
  flex: none;
  width: 24px;
  height: 24px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237fdad6' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='2.5'/%3E%3Cpath d='m4 7.5 8 6 8-6'/%3E%3C/svg%3E")
    center / contain no-repeat;
}
#contact .contact-email a:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.5);
  transform: translateY(-2px);
}
#contact .big-cta .cta-row {
  margin-top: 26px;
}
#contact .big-cta .btn-secondary {
  border-color: transparent;
}
#contact .big-cta .btn-secondary:first-child {
  background: #fff;
  color: var(--pi-navy);
}
#contact .big-cta .btn-secondary:first-child:hover {
  background: #e4f6f5;
}
#contact .big-cta .btn-secondary:last-child {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.45);
  box-shadow: none;
}
#contact .big-cta .btn-secondary:last-child:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: #fff;
}

/* ── Pied de page ────────────────────────────────────────────────────────── */
body.institute-page > footer {
  margin-top: 0;
  padding: 0;
  background: var(--pi-navy);
  box-shadow: inset 0 3px 0 var(--pi-teal);
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.9rem;
}
body.institute-page > footer .wrap,
body.institute-page > footer .pi-footer {
  align-items: center;
  max-width: var(--pi-container);
  margin: 0 auto;
  padding: 40px var(--pi-gutter);
  border: 0;
  gap: 14px 28px;
}
.pi-footer a {
  color: #fff;
  text-decoration: none;
  text-underline-offset: 5px;
  text-decoration-thickness: 1.5px;
}
.pi-footer a:hover {
  text-decoration: underline;
  text-decoration-color: var(--pi-teal);
}
.pi-footer__links {
  gap: 8px 22px;
}

/* ── Apparition douce au défilement (ajoutée par institute.js) ───────────── */
/* « translate » est une propriété à part : elle ne gêne pas le soulèvement au survol (transform) */
.js-reveal .reveal {
  opacity: 0;
  translate: 0 22px;
}
.js-reveal .reveal.is-visible {
  opacity: 1;
  translate: none;
  transition: opacity 0.7s var(--pi-ease) var(--reveal-delay, 0s), translate 0.7s var(--pi-ease) var(--reveal-delay, 0s),
    transform 0.4s var(--pi-ease), box-shadow 0.4s var(--pi-ease), border-color 0.3s;
}

/* ── Illustrations animées (ajoutées par illustrations.js) ───────────────── */
/* Avant d'arriver à l'écran, seul le fond du dessin est visible ; ensuite chaque élément joue son animation.
   « backwards » : l'élément reprend son aspect normal à la fin (même opacité que dans le dessin d'origine). */
.art-armed:not(.is-drawn) .art-part {
  opacity: 0;
}
.art-armed:not(.is-drawn) .educ-art-number {
  opacity: 0;
  translate: -10px 0;
}
.art-armed.is-drawn .educ-art-number {
  transition: opacity 0.7s var(--pi-ease) 0.25s, translate 0.7s var(--pi-ease) 0.25s;
}
.art-armed.is-drawn .art-part {
  animation-duration: var(--d, 0.9s);
  animation-delay: var(--t, 0s);
  animation-fill-mode: backwards;
  animation-timing-function: var(--pi-ease);
}
.art-part--point,
.art-part--ring,
.art-ping {
  transform-box: fill-box;
  transform-origin: center;
}
/* Traits : se dessinent de bout en bout (pathLength = 1) */
.art-armed.is-drawn .art-part--trace {
  animation-name: art-trace;
  animation-timing-function: cubic-bezier(0.45, 0.05, 0.3, 1);
}
@keyframes art-trace {
  0% {
    stroke-dasharray: 1 2;
    stroke-dashoffset: 1;
    opacity: 0;
  }
  5% {
    opacity: var(--o, 1);
  }
  100% {
    stroke-dasharray: 1 2;
    stroke-dashoffset: 0;
    opacity: var(--o, 1);
  }
}
/* Anneaux : s'élargissent depuis leur centre */
.art-armed.is-drawn .art-part--ring {
  animation-name: art-ring;
}
@keyframes art-ring {
  0% {
    transform: scale(0.5);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: var(--o, 1);
  }
}
/* Points : petit rebond quand le trait arrive */
.art-armed.is-drawn .art-part--point {
  animation-name: art-point;
  animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes art-point {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  35% {
    opacity: var(--o, 1);
  }
  100% {
    transform: scale(1);
    opacity: var(--o, 1);
  }
}
/* Quadrillage et autres éléments : fondu */
.art-armed.is-drawn .art-part--fade {
  animation-name: art-fade;
}
@keyframes art-fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: var(--o, 1);
  }
}
/* Pulsation du point principal, seulement tant que le dessin est à l'écran */
.art-ping {
  fill: none;
  stroke-width: 2px;
  vector-effect: non-scaling-stroke;
  opacity: 0;
  pointer-events: none;
}
.art-armed.is-drawn.is-live .art-ping {
  animation: art-ping 2.8s cubic-bezier(0.2, 0.6, 0.3, 1) var(--t, 0s) infinite;
}
@keyframes art-ping {
  0% {
    transform: scale(1);
    opacity: 0.75;
  }
  100% {
    transform: scale(3.4);
    opacity: 0;
  }
}

/* ── Tablette et mobile ──────────────────────────────────────────────────── */
@media (max-width: 980px) {
  .grid-4,
  .grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-3 {
    grid-template-columns: minmax(0, 1fr);
  }
  .section-head {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }
  #accueil .hero {
    grid-template-columns: minmax(0, 1fr);
  }
  #accueil .hero-visual {
    max-width: 520px;
  }
  #contact .big-cta::after {
    inset: 0;
    opacity: 0.3;
  }
}
@media (max-width: 640px) {
  .grid-4,
  .grid-2 {
    grid-template-columns: minmax(0, 1fr);
  }
  .cta-row .btn {
    flex: 1 1 100%;
  }
  .offer-link,
  .educ-end .btn,
  .bio-story-cta button,
  .ec-cta .offer-link {
    width: 100%;
  }
  #accueil .hero-visual::before {
    inset: 18px -10px -14px 18px;
  }
  #accueil .hero-visual::after {
    top: -28px;
    right: -12px;
  }
  .conference-card > .num,
  .conference-card > h3,
  .conference-card > p {
    margin-left: 22px;
    margin-right: 22px;
  }
  .info-card,
  .advisory-card {
    padding: 24px 22px 26px;
  }
  #contact .big-cta .cta-row .btn {
    flex: 1 1 100%;
  }
  body.institute-page > footer .wrap,
  body.institute-page > footer .pi-footer {
    flex-direction: column;
    align-items: flex-start;
    padding-block: 32px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tab-panel.active,
  .educ-course[open] > p {
    animation: none;
  }
  .js-reveal .reveal {
    opacity: 1;
    translate: none;
  }
  .art-armed:not(.is-drawn) .art-part {
    opacity: var(--o, 1);
  }
  .art-armed:not(.is-drawn) .educ-art-number {
    opacity: 1;
    translate: none;
  }
  .art-armed .art-part,
  .art-ping {
    animation: none !important;
  }
  .btn,
  .offer-link,
  .card,
  .advisory-card,
  .ec-three article,
  .ec-topics article,
  .educ-axis {
    transition: none;
  }
}
