/* Statesia Universal 25 — Joomla 2.5 / PHP 5.6
   Design universel, sans framework et sans dépendance externe.
*/
:root{--ink:#0a3353;--ink2:#174d6a;--teal:#0f9da6;--cyan:#1790bd;--sky:#eef7fa;--mist:#f7fafb;--line:#dce8ed;--white:#fff;--text:#3a5263;--muted:#6d8290;--shadow:0 18px 45px rgba(10,51,83,.08);--radius:18px;--container:1320px;--reading:940px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;color:var(--ink);background:#fff;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,Helvetica,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img,svg,video,iframe{max-width:100%;height:auto}table{max-width:100%;border-collapse:collapse}.container{width:min(calc(100% - 48px),var(--container));margin:0 auto}.narrow-container{width:min(calc(100% - 48px),var(--reading));margin:0 auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:1000;left:16px;top:12px;transform:translateY(-150%);background:var(--ink);color:#fff;padding:10px 14px;border-radius:8px}.skip-link:focus{transform:translateY(0)}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid rgba(220,232,237,.92);transition:box-shadow .2s}.site-header.is-scrolled{box-shadow:0 10px 30px rgba(10,51,83,.07)}.header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:inline-flex;align-items:center;gap:12px;min-width:max-content}.brand-mark{width:31px;height:31px;display:inline-flex;align-items:flex-end;gap:3px}.brand-mark i{display:block;width:5px;background:var(--cyan);border-radius:1px 1px 0 0}.brand-mark i:nth-child(1){height:10px}.brand-mark i:nth-child(2){height:18px}.brand-mark i:nth-child(3){height:27px}.brand-mark i:nth-child(4){height:14px;background:var(--teal)}.brand-copy{display:grid;gap:2px}.brand-copy strong{font-size:23px;letter-spacing:.13em;font-weight:650;line-height:1}.brand-copy small{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.primary-nav{display:flex;align-items:center;gap:20px}.primary-nav ul,.primary-nav .menu,.fallback-menu{display:flex;align-items:center;gap:24px;list-style:none;margin:0;padding:0}.primary-nav li{position:relative;margin:0;padding:0}.primary-nav a{display:block;padding:12px 0;font-size:14px;font-weight:600;color:var(--ink)}.primary-nav li.active>a,.primary-nav a:hover{color:#0d7896}.primary-nav ul ul{display:none;position:absolute;top:100%;left:-18px;min-width:320px;padding:12px 18px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.primary-nav li:hover>ul{display:block}.primary-nav ul ul li{width:100%}.primary-nav ul ul a{padding:9px 0;font-size:13px;line-height:1.35}.language-slot{margin-left:8px}.language-slot ul{gap:8px}.language-slot img{width:auto;max-height:18px}.nav-toggle{display:none;width:44px;height:44px;border:0;background:transparent;padding:9px;cursor:pointer}.nav-toggle span:not(.sr-only){display:block;height:2px;background:var(--ink);margin:5px 0}

/* Hero */
.hero{overflow:hidden;background:radial-gradient(circle at 82% 26%,rgba(23,144,189,.12),transparent 26%),linear-gradient(100deg,#fff 0%,#fff 44%,#f5fbfd 100%);border-bottom:1px solid var(--line)}.hero-grid{min-height:590px;display:grid;grid-template-columns:minmax(0,1.03fr) minmax(430px,.97fr)}.hero-copy{padding:90px 58px 84px 0;align-self:center}.eyebrow{margin:0 0 17px;color:#176889;font-size:12px;font-weight:750;letter-spacing:.2em;text-transform:uppercase}.eyebrow.light{color:#a9d8e5}.hero h1{max-width:820px;margin:0;color:var(--ink);font-size:clamp(42px,4.5vw,72px);line-height:1.02;letter-spacing:-.04em;font-weight:650}.hero-lead{max-width:760px;margin:28px 0 0;color:var(--text);font-size:clamp(18px,1.45vw,22px);line-height:1.65}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:0 24px;border:1px solid transparent;border-radius:8px;font-size:15px;font-weight:650;transition:transform .2s,box-shadow .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-primary{color:#fff!important;background:linear-gradient(135deg,#07557a,#0a3959);box-shadow:0 12px 24px rgba(10,51,83,.16)}.button-secondary{background:#fff;border-color:#176889;color:var(--ink)!important}.hero-visual{position:relative;min-height:560px;display:flex;align-items:center;justify-content:center;border-left:1px solid rgba(220,232,237,.65)}.hero-visual svg{width:94%}.bars rect{fill:rgba(23,144,189,.14)}.curve{fill:none;stroke-width:2.2}.curve-one{stroke:#147dad}.curve-two{stroke:#0ea8b4}.curve-dash{stroke:#3a9cc3;stroke-dasharray:5 8}.network-lines line{stroke:#328fb1;stroke-width:1.1;opacity:.75}.network-nodes circle{fill:#147b9e}.network-nodes circle:nth-child(3n){fill:#10a8aa}.visual-label{position:absolute;z-index:2;top:45px;left:26px;font-size:12px;line-height:1.75;letter-spacing:.2em;text-transform:uppercase;color:#2b6b87}

/* Home sections */
.section{padding:82px 0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px}.section-heading h2,.publications-panel h2,.contact-cta h2{margin:0;color:var(--ink);font-size:clamp(30px,3vw,46px);line-height:1.08;letter-spacing:-.03em;font-weight:650}.expertise-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.expertise-card{min-height:175px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:15px;padding:25px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(10,51,83,.035);transition:transform .2s,box-shadow .2s,border-color .2s}.expertise-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:#bad9e4}.expertise-card strong{display:block;margin-bottom:7px;font-size:17px;line-height:1.3}.expertise-card small{display:block;color:var(--text);font-size:13px;line-height:1.5}.card-number{font-size:11px;letter-spacing:.14em;color:#4a879e}.card-arrow{align-self:end;padding-bottom:4px;font-size:21px;color:#176889}.home-content-section{background:#f7fbfc;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.home-component{font-size:16px}.home-component h2,.home-component h3{margin-top:38px}.home-component h2:first-child{margin-top:0}.home-component p{color:var(--text)}.home-component a{color:#0d7896;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.home-component img{border-radius:10px}.publications-section{background:#fff}.publications-panel{display:grid;grid-template-columns:1fr auto;gap:38px;align-items:center;padding:40px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg,#f8fbfc,#edf6f9)}.publications-panel p{max-width:760px;color:var(--text)}

/* Interior shell */
.breadcrumbs-bar{padding:12px 0;background:#f7fafb;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.breadcrumbs-bar ul{display:flex;flex-wrap:wrap;gap:7px;list-style:none;margin:0;padding:0}.interior-shell{min-height:66vh;padding:66px 0 82px;background:linear-gradient(180deg,#f7fbfc 0,#fff 210px)}.interior-container{display:grid;grid-template-columns:minmax(0,1fr);gap:38px}.interior-container.has-left{grid-template-columns:240px minmax(0,1fr)}.interior-container.has-right{grid-template-columns:minmax(0,1fr) 240px}.interior-container.has-left.has-right{grid-template-columns:220px minmax(0,1fr) 220px}.content-main{min-width:0}.component-frame{width:min(100%,var(--reading));margin:0 auto;padding:42px 48px;background:#fff;border:1px solid #e3edf1;border-radius:18px;box-shadow:0 16px 45px rgba(10,51,83,.05)}.is-reference-detail .component-frame{width:min(100%,1100px)}.is-references-index .component-frame{width:min(100%,1120px)}.is-contact-page .component-frame{width:min(100%,900px)}.before-content,.after-content{width:min(100%,var(--reading));margin:0 auto 26px}.after-content{margin:26px auto 0}.sidebar .moduletable{margin-bottom:22px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:12px}.sidebar h3{margin-top:0}.sidebar ul{list-style:none;padding:0;margin:0}.sidebar li{margin:0 0 9px}

/* Generic Joomla content */
.component-frame h1,.component-frame .page-header h1,.component-frame .page-header h2,.component-frame>.item-page>h2:first-child,.component-frame>.blog>h2:first-child{margin:0 0 30px;color:var(--ink);font-size:clamp(36px,4vw,58px);line-height:1.06;letter-spacing:-.035em;font-weight:650;text-transform:none}.component-frame h2{margin:42px 0 18px;color:var(--ink);font-size:30px;line-height:1.16;letter-spacing:-.02em}.component-frame h3{margin:34px 0 14px;color:var(--ink2);font-size:23px;line-height:1.25}.component-frame h4{margin:26px 0 10px;color:var(--ink2);font-size:18px;line-height:1.35}.component-frame p,.component-frame li,.component-frame dd{color:var(--text);font-size:16px;line-height:1.72}.component-frame p{margin:0 0 17px}.component-frame ul,.component-frame ol{padding-left:1.25em}.component-frame a{color:#0c7898;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}.component-frame a:hover{color:#075673}.component-frame img{max-width:100%!important;height:auto!important;margin:10px 10px 18px 0;border-radius:10px}.component-frame hr{border:0;border-top:1px solid var(--line);margin:34px 0}.component-frame blockquote{margin:30px 0;padding:20px 24px;background:#f6fafb;border-left:4px solid var(--teal);border-radius:0 10px 10px 0;color:var(--text)}.component-frame table{width:100%;display:block;overflow-x:auto;margin:26px 0;border:1px solid var(--line);border-radius:10px}.component-frame th,.component-frame td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left}.component-frame th{background:#f2f8fa;color:var(--ink)}.component-frame .readmore a,.component-frame a.readmore{display:inline-flex;padding:9px 14px;border:1px solid #aacbd7;border-radius:7px;text-decoration:none;font-weight:650}.article-info,.article-info-term,.createdby,.published{color:var(--muted);font-size:12px}.items-row,.items-leading>div{margin-bottom:30px;padding-bottom:30px;border-bottom:1px solid var(--line)}.pagination,.pagination ul{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0}.pagination a,.pagination span{display:grid;place-items:center;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:7px;text-decoration:none}.category-list table{width:100%}

/* Forms: contact, search, login */
.component-frame form{max-width:760px}.component-frame fieldset{margin:0 0 24px;padding:0;border:0}.component-frame legend{margin-bottom:18px;color:var(--ink);font-size:20px;font-weight:650}.component-frame label{display:block;margin:0 0 7px;color:var(--ink);font-size:13px;font-weight:650}.component-frame input[type="text"],.component-frame input[type="email"],.component-frame input[type="password"],.component-frame input[type="search"],.component-frame textarea,.component-frame select{width:100%;max-width:100%;min-height:46px;padding:10px 12px;border:1px solid #c7dbe3;border-radius:8px;background:#fff;color:var(--ink);font:inherit;outline:none}.component-frame textarea{min-height:150px;resize:vertical}.component-frame input:focus,.component-frame textarea:focus,.component-frame select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(15,157,166,.12)}.component-frame button,.component-frame input[type="submit"],.component-frame .button{min-height:46px;padding:0 20px;border:0;border-radius:8px;background:var(--ink);color:#fff!important;font-weight:650;cursor:pointer;text-decoration:none}.contact h3{margin-top:12px}.contact-address,.contact-contactinfo,.contact-miscinfo{padding:18px 20px;background:#f7fbfc;border:1px solid var(--line);border-radius:10px}.contact-form{margin-top:28px}.login,.registration,.reset,.remind,.search,.finder{max-width:760px}

/* Services: class-only enhancement, no node moving */
.is-service-page .component-frame{width:min(100%,1020px)}.is-service-page .service-title{margin-bottom:28px!important}.is-service-page .service-objective{margin:0 0 24px!important;padding:24px 26px!important;background:linear-gradient(135deg,#eef8fa,#fbfdfe)!important;border:1px solid #cfe4ea!important;border-left:4px solid var(--teal)!important;border-radius:12px!important;color:var(--ink)!important;font-size:17px!important;line-height:1.65!important;text-transform:none!important}.is-service-page .service-definition{margin:0 0 24px!important;padding-left:20px;border-left:2px solid #d6e7ed;color:var(--text)!important;font-size:16px!important;line-height:1.72!important}.is-service-page .service-section-title{margin:40px 0 18px!important;padding-top:6px;color:var(--ink)!important;font-size:25px!important;text-transform:none!important}.is-service-page .service-offer{position:relative;margin:10px 0!important;padding:16px 18px 16px 46px!important;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--ink)!important;font-size:15px!important;line-height:1.55!important;font-weight:600!important;text-transform:none!important}.is-service-page .service-offer:before{content:"→";position:absolute;left:18px;top:16px;color:var(--teal);font-weight:700}.is-service-page .service-validation{clear:both!important;float:none!important;position:static!important;display:block!important;width:100%!important;height:auto!important;margin:28px 0!important;padding:24px 26px!important;overflow:visible!important;background:#f7fbfc!important;border:1px solid #cfe2e8!important;border-left:4px solid #147b9e!important;border-radius:12px!important;color:var(--text)!important;font-size:16px!important;line-height:1.7!important;font-weight:400!important;text-transform:none!important;white-space:normal!important}.is-service-page .service-validation:before{content:"Validation indépendante des modèles";display:block;margin:0 0 9px;color:var(--ink);font-size:20px;line-height:1.3;font-weight:650}.is-service-page .service-categories-title{margin-top:48px!important;padding-top:24px;border-top:1px solid var(--line)}.is-service-page .service-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;list-style:none!important;padding:0!important}.is-service-page .service-categories li{margin:0!important}.is-service-page .service-categories a{display:block;height:100%;padding:13px 15px;background:#f8fbfc;border:1px solid var(--line);border-radius:8px;text-decoration:none;font-size:13px;font-weight:600}.is-service-page .obsolete-link{color:var(--muted)!important;text-decoration:none!important;cursor:default}.contact-cta-interior{margin-top:0}

/* References index */
.is-references-index .reference-section{margin:0 0 22px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 9px 25px rgba(10,51,83,.035)}.is-references-index .reference-section h2{margin-top:0}.is-references-index .reference-section img{max-width:120px!important;float:left;margin:0 22px 12px 0}.is-references-index .reference-section:after{content:"";display:block;clear:both}.is-references-index .reference-section .readmore,.is-references-index .reference-section a[href*="study-reports"],.is-references-index .reference-section a[href*="publications"],.is-references-index .reference-section a[href*="communications"],.is-references-index .reference-section a[href*="posters"]{font-weight:650}

/* Long reference pages */
.is-reference-detail .component-frame{padding:44px 52px}.is-reference-detail .component-frame>div>h2:first-child,.is-reference-detail .component-frame h1:first-child{margin-bottom:32px}.is-reference-detail .component-frame p{padding-bottom:15px;margin-bottom:15px;border-bottom:1px solid #edf2f4}.is-reference-detail .component-frame p:last-child{border-bottom:0}.is-reference-detail .component-frame img{max-width:100px!important;float:left;margin:3px 18px 10px 0}.is-reference-detail .component-frame h2,.is-reference-detail .component-frame h3{clear:both}.is-reference-detail .reference-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none!important;padding:0!important;margin-top:36px!important}.is-reference-detail .reference-nav a{display:block;padding:12px;background:#f7fbfc;border:1px solid var(--line);border-radius:8px;text-decoration:none;font-size:13px;font-weight:650}

/* Teaching */
.is-teaching-page .component-frame{width:min(100%,980px)}.is-teaching-page .teaching-lead{margin:0 0 26px!important;padding:22px 24px;background:#f1f8fa;border:1px solid #cfe2e8;border-radius:12px;font-size:17px!important}.is-teaching-page .course-item{position:relative;margin:10px 0!important;padding:17px 18px 17px 46px!important;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--ink)!important;font-weight:600}.is-teaching-page .course-item:before{content:"•";position:absolute;left:20px;color:var(--teal);font-size:24px;line-height:1}.is-teaching-page a[href*="univ-lemans.fr"]{font-weight:650}

/* Contact */
.is-contact-page .component-frame{background:linear-gradient(180deg,#fff,#fbfdfe)}.is-contact-page .contact>h3,.is-contact-page .contact .contact-name{color:var(--ink)}.is-contact-page .contact-miscinfo img{max-width:180px!important}

/* Footer / CTA */
.contact-cta{padding:66px 0;color:#fff;background:radial-gradient(circle at 86% 44%,rgba(28,145,170,.33),transparent 30%),linear-gradient(118deg,#073956 0%,#064665 55%,#082f4a 100%)}.cta-grid{display:grid;grid-template-columns:1fr auto;align-items:center;gap:56px}.contact-cta h2{max-width:900px;color:#fff}.contact-cta p:not(.eyebrow){max-width:780px;margin:14px 0 0;color:#cbe1e9;font-size:17px}.button-light{min-width:180px;color:var(--ink)!important;background:#fff}.site-footer{padding:36px 0;background:#06283e;color:#d5e5eb}.footer-grid{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:36px}.footer-brand .brand-copy strong{color:#fff;font-size:18px}.footer-brand .brand-copy small{color:#8fb3c1}.site-footer p{margin:0;font-size:12px;color:#9ebbc6}.site-footer ul,.footer-fallback{display:flex;flex-wrap:wrap;gap:18px;list-style:none;margin:0;padding:0}.site-footer a{color:#d5e5eb;font-size:13px}.error-shell{padding:12vh 0}.error-shell h1{font-size:100px;margin:0}

/* FaLang credit is preserved; paid FaLang editions can remove it through the extension itself. */

/* Responsive */
@media(max-width:1160px){.hero-grid{grid-template-columns:1fr .9fr}.hero-copy{padding-right:34px}.expertise-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.primary-nav ul,.primary-nav .menu,.fallback-menu{gap:17px}.primary-nav a{font-size:13px}}
@media(max-width:920px){.container,.narrow-container{width:min(calc(100% - 32px),var(--container))}.header-inner{min-height:72px}.brand-copy strong{font-size:20px}.brand-copy small{display:none}.nav-toggle{display:block}.primary-nav{position:absolute;left:16px;right:16px;top:calc(100% + 8px);display:none;flex-direction:column;align-items:stretch;padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.primary-nav.is-open{display:flex}.primary-nav ul,.primary-nav .menu,.fallback-menu{flex-direction:column;align-items:stretch;gap:3px}.primary-nav ul ul{display:block;position:static;min-width:0;padding:0 0 0 18px;border:0;box-shadow:none}.language-slot{margin:8px 0 0;padding-top:8px;border-top:1px solid var(--line)}.hero-grid{min-height:0;grid-template-columns:1fr}.hero-copy{padding:66px 0 32px}.hero-visual{min-height:380px;border-left:0}.section{padding:66px 0}.interior-container,.interior-container.has-left,.interior-container.has-right,.interior-container.has-left.has-right{grid-template-columns:1fr}.component-frame{padding:34px 32px}.publications-panel,.cta-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.reference-nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:640px){.container,.narrow-container{width:min(calc(100% - 24px),var(--container))}.hero h1{font-size:clamp(38px,12vw,52px)}.hero-lead{font-size:17px}.hero-actions{flex-direction:column}.button{width:100%}.hero-visual{min-height:285px}.expertise-grid{grid-template-columns:1fr}.expertise-card{min-height:145px;padding:21px}.interior-shell{padding:42px 0 58px}.component-frame,.is-reference-detail .component-frame{padding:28px 22px;border-radius:12px}.component-frame h1,.component-frame .page-header h1,.component-frame .page-header h2,.component-frame>.item-page>h2:first-child{font-size:36px}.is-service-page .service-categories{grid-template-columns:1fr}.is-references-index .reference-section{padding:22px}.is-references-index .reference-section img,.is-reference-detail .component-frame img{float:none;max-width:140px!important}.reference-nav{grid-template-columns:1fr!important}.contact-cta{padding:52px 0}.publications-panel{padding:28px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}


/* =====================================================================
   v2.1 — finition globale
   ===================================================================== */

/* FaLang: attribution preserved, visually integrated */
.compact-falang-credit .falang-credit{
  clear:both!important;
  display:block!important;
  margin:30px 0 0!important;
  padding-top:14px!important;
  border-top:1px solid #edf2f4!important;
  color:#91a3ad!important;
  font-size:10px!important;
  line-height:1.4!important;
  text-align:center!important;
}
.compact-falang-credit .falang-credit a,
.compact-falang-credit .falang-credit-link{
  color:#8198a4!important;
  font-size:10px!important;
  font-weight:400!important;
  text-decoration:none!important;
}

/* Home: clean legacy content, retain news */
.home-component .legacy-home-hidden,
.home-component .legacy-news-duplicate{display:none!important}
.home-component.home-news-stream{
  width:min(100%,1040px);
  margin:0 auto;
}
.home-component .home-news-title{
  margin:0 0 28px!important;
  color:var(--ink)!important;
  font-size:clamp(30px,3vw,42px)!important;
  line-height:1.1!important;
  letter-spacing:-.025em!important;
  text-transform:none!important;
}
.home-component.home-news-stream>p{
  margin:0!important;
  padding:18px 0!important;
  border-bottom:1px solid #e6eef1;
}
.home-component.home-news-stream>p:last-child{border-bottom:0}
.home-component.home-news-stream h3,
.home-component.home-news-stream h4{
  margin-top:30px;
  color:var(--ink2);
}

/* Reference landing: 2 x 2 editorial cards */
.is-references-index .references-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  align-items:stretch;
}
.is-references-index .references-grid>.reference-section{
  height:100%;
  margin:0;
  display:flex;
  flex-direction:column;
}
.is-references-index .references-grid>.reference-section h2{
  font-size:25px;
  line-height:1.15;
}
.is-references-index .references-grid>.reference-section .readmore,
.is-references-index .references-grid>.reference-section p:last-child{
  margin-top:auto;
}
.is-references-index .references-grid>.reference-section img{
  float:none!important;
  display:block;
  width:auto;
  max-width:150px!important;
  margin:0 0 20px!important;
}

/* Reference detail: cleaner long-form rhythm */
.is-reference-detail .component-frame h2{
  margin-top:52px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.is-reference-detail .component-frame h2:first-child{
  margin-top:0;
  padding-top:0;
  border-top:0;
}
.is-reference-detail .component-frame p{
  orphans:3;
  widows:3;
}

/* Contact */
.is-contact-page .contact-intro{
  display:grid;
  gap:7px;
  margin:-4px 0 32px;
  padding:24px 26px;
  background:linear-gradient(135deg,#eef8fa,#fbfdfe);
  border:1px solid #cfe4ea;
  border-left:4px solid var(--teal);
  border-radius:12px;
}
.is-contact-page .contact-intro strong{
  color:var(--ink);
  font-size:22px;
  line-height:1.25;
}
.is-contact-page .contact-intro span{
  max-width:680px;
  color:var(--text);
  font-size:15px;
  line-height:1.65;
}
.is-contact-page .contact-empty{display:none!important}
.is-contact-page .contact{
  display:block;
}
.is-contact-page .contact h2:first-of-type{
  margin-top:0;
}
.is-contact-page .contact-address,
.is-contact-page .contact-contactinfo,
.is-contact-page .contact-miscinfo{
  margin:18px 0;
}
.is-contact-page .contact-form{
  padding-top:8px;
}
.is-contact-page .contact-form fieldset{
  display:grid;
  gap:16px;
}
.is-contact-page .contact-form .control-group,
.is-contact-page .contact-form dl{
  margin:0;
}

/* Empty legacy output */
.component-frame table:empty{display:none}

/* Small polish */
.component-frame .content-page-title{
  position:relative;
}
.component-frame .content-page-title:after{
  content:"";
  display:block;
  width:58px;
  height:3px;
  margin-top:18px;
  background:linear-gradient(90deg,var(--cyan),var(--teal));
  border-radius:3px;
}
.is-service-page .service-objective,
.is-teaching-page .teaching-lead,
.is-contact-page .contact-intro{
  box-shadow:0 8px 24px rgba(10,51,83,.035);
}

@media(max-width:760px){
  .is-references-index .references-grid{grid-template-columns:1fr}
  .is-contact-page .contact-intro{padding:21px}
}


/* =====================================================================
   v2.2 — sélecteur de langue natif FR / EN
   ===================================================================== */
.native-language-switch{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-left:12px;
  padding:4px;
  background:#f4f8fa;
  border:1px solid #dce8ed;
  border-radius:10px;
}
.native-language-switch .language-button{
  min-width:47px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0 8px;
  color:#315d72;
  background:transparent;
  border:1px solid transparent;
  border-radius:7px;
  font-size:11px;
  line-height:1;
  font-weight:700;
  letter-spacing:.04em;
  text-decoration:none!important;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
}
.native-language-switch a.language-button:hover,
.native-language-switch a.language-button:focus{
  color:#083c59;
  background:#fff;
  border-color:#bfd8e2;
  transform:translateY(-1px);
}
.native-language-switch .language-button.is-current{
  color:#fff;
  background:#0a4d70;
  border-color:#0a4d70;
  cursor:default;
}
.native-language-switch .flag{
  width:18px;
  height:12px;
  display:inline-block;
  flex:0 0 auto;
  border-radius:1px;
  box-shadow:0 0 0 1px rgba(10,51,83,.12);
}
.native-language-switch .flag-fr{
  background:linear-gradient(90deg,#173f8f 0 33.333%,#fff 33.333% 66.666%,#e32938 66.666% 100%);
}
.native-language-switch .flag-gb{
  position:relative;
  background:#234b91;
  overflow:hidden;
}
.native-language-switch .flag-gb:before{
  content:"";
  position:absolute;
  left:7px;top:-2px;
  width:4px;height:16px;
  background:#fff;
  box-shadow:0 0 0 1px rgba(255,255,255,.15);
}
.native-language-switch .flag-gb:after{
  content:"";
  position:absolute;
  left:-2px;top:4px;
  width:22px;height:4px;
  background:#e3343f;
}
@media(max-width:920px){
  .native-language-switch{
    margin:12px 0 0;
    align-self:flex-start;
  }
}
