@font-face {
  font-family: 'Libre Caslon Text';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/font-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Libre Caslon Text';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Libre Caslon Text';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/font-4.ttf) format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/font-5.ttf) format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/font-6.ttf) format('truetype');
}
/* Polices embarquées et règles communes aux navigateurs. */
:root{--font-heading:'Libre Caslon Text',Georgia,serif;--font-body:'Montserrat',Arial,sans-serif}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:24px}
body{overflow-wrap:break-word;font-synthesis:none}
h1,h2,h3{font-weight:400;line-height:1.12}
.shell,.wide{width:calc(100% - clamp(40px,11vw,160px));margin-inline:auto}
.shell{max-width:1200px}.wide{max-width:1350px}
main section{scroll-margin-top:24px}
.approach-grid>*,.identity-grid>*,.activity-grid>*,.contact-layout>*,.model-grid>*{min-width:0}
.home-approach,.home-sectors,.home-philosophy,.home-contact,.group-identity,.group-model,.group-sectors,.group-engagement,.contact-main,.contact-network,.activities-outro{height:auto;overflow:visible}
.home-approach,.group-identity{padding-block:36px;min-height:0}
.approach-grid,.identity-grid,.model-grid,.home-contact .shell,.home-philosophy .shell{height:auto}
.approach-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.6fr);gap:28px}
.identity-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,.9fr);gap:28px}
.approach-grid h2,.identity-grid h2,.activity-text h2{font-size:clamp(26px,2.5vw,34px)}
.approach-grid .approach-photo,.identity-photo{height:auto;aspect-ratio:1;object-fit:cover;width:100%}
.approach-keywords{padding-left:24px;height:auto;min-height:220px}
.philosophy-list{height:auto;gap:18px}.philosophy-item p{font-size:11px;line-height:1.6}
.home-sectors,.group-sectors{padding-block:36px}
.sector-cards,.group-sector-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.sector-card h3,.sector-card:nth-child(2) h3{white-space:normal;font-size:clamp(15px,1.4vw,19px);line-height:1.3;letter-spacing:-.035em}
.sector-card p{font-size:11px;line-height:1.7}.sector-card-content{min-height:0}
.sector-card+.sector-card .sector-card-content{margin-left:0;padding-left:2px;border:0}
.sector-card img{height:auto;aspect-ratio:1.85;object-fit:cover}
.group-sector-cards{width:calc(100% - clamp(40px,9vw,96px))}
.group-sector-card{height:auto;min-height:210px;padding:18px}
.group-sector-card h3{white-space:normal;font-size:16px;line-height:1.3}.group-sector-card p{font-size:10px;line-height:1.6}
.home-philosophy{padding-block:40px;min-height:210px}.home-philosophy .shell{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:32px}
.home-contact{padding-block:28px}.home-contact .shell{grid-template-columns:140px minmax(0,1fr) auto;gap:32px}
.group-model{padding-block:36px}.model-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:32px}
.model-steps{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.model-step p{font-size:9px;line-height:1.6}
.international-banner,.international-banner .international-inner{height:auto;min-height:260px}.international-banner .international-inner{padding-block:40px}
.group-engagement .shell{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.hero,.hero--home,.hero--group,.hero--activities,.hero--contact{height:auto;min-height:330px}
.hero-content,.hero--home .hero-content,.hero--contact .hero-content{padding-block:56px}
.hero--home{min-height:400px}.hero--contact{min-height:400px}
.hero--home h1{font-size:clamp(31px,4.8vw,56px)}.hero h2,.hero--activities h2{font-size:clamp(29px,3.4vw,44px)}
.hero--contact h2{font-size:clamp(40px,5vw,56px)}.hero-tagline{font-size:clamp(13px,1.8vw,20px)}
.hero .hero-paragraph{font-size:12px;line-height:1.7}
.activity-detail,.activity-detail--first,.activity-detail--last{height:auto;min-height:0;padding-block:32px;overflow:visible}
.activity-detail .activity-grid,.activity-detail--last .activity-grid{height:auto;grid-template-columns:minmax(0,1.2fr) minmax(0,1.1fr) minmax(0,.6fr);gap:28px}
.activity-detail .activity-illustration,.activity-detail--last .activity-illustration{height:auto;max-height:none;aspect-ratio:1.65;object-fit:cover}
.activity-functions{padding-left:20px}.activity-functions div{overflow-wrap:anywhere;line-height:1.7}
.activities-outro{padding:40px 20px;min-height:170px}
.contact-main{padding-block:36px}.contact-layout{width:calc(100% - clamp(40px,10vw,144px));margin-inline:auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.85fr);height:auto;gap:28px}
.contact-details{padding-top:0}.contact-details h2{width:auto;max-width:100%;font-size:clamp(26px,2.7vw,34px)}
.contact-form-panel{min-width:0;min-height:0;width:100%;padding:26px 20px}.contact-sideimage{min-height:540px}
.form-fields input,.form-fields select,.form-fields textarea{font-size:13px}.form-fields input,.form-fields select{height:44px}.form-submit{min-height:44px}
.contact-network{min-height:320px;padding-block:40px}.contact-network .shell{width:calc(100% - clamp(40px,11vw,160px))}
.footer-main,.site-footer--activities .footer-main,.site-footer--contact .footer-main{height:auto;min-height:90px;padding-block:24px;grid-template-columns:160px minmax(0,1fr) auto;gap:24px}
.footer-links{flex-wrap:wrap;gap:12px}.footer-links a+a:before{padding-right:12px}
.footer-bottom,.site-footer--contact .footer-bottom,.site-footer--activities .footer-bottom{height:auto;min-height:58px;padding-block:16px}.footer-bottom .shell{gap:12px;flex-wrap:wrap}
.button-outline{max-width:100%;min-height:44px}.button-outline.upper{min-height:44px;min-width:0}
@media(max-width:1100px){
.sector-cards,.group-sector-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.identity-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.philosophy-list{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:0;padding:16px 0 0}.philosophy-list .eyebrow{grid-column:1/-1}
.contact-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-sideimage{grid-column:1/-1;min-height:360px;background-position:center 60%}
.model-grid{grid-template-columns:1fr}.model-grid p{max-width:none}
.activity-detail .activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.activity-functions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;border-left:0;padding:20px 0 0;border-top:1px solid var(--hairline);gap:16px}
.activity-functions .end-line{display:none}
.footer-main,.site-footer--activities .footer-main,.site-footer--contact .footer-main{grid-template-columns:160px minmax(0,1fr)}.footer-links{grid-column:1/-1}
}
@media(max-width:800px){
.approach-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.approach-keywords{grid-column:1/-1;min-height:0;border-left:0;border-top:1px solid var(--hairline);padding:20px 0 0;flex-direction:row;flex-wrap:wrap;gap:14px}
.home-contact .shell{grid-template-columns:100px minmax(0,1fr)}.home-contact .button-outline{grid-column:2;justify-self:start}
.group-engagement .shell{grid-template-columns:1fr;gap:28px}.group-engagement .engagement-logo{border-left:0;border-top:1px solid var(--gold);padding-top:24px}
}
@media(max-width:680px){
.shell,.wide,.home-approach .shell,.home-sectors>.shell,.home-contact .shell,.home-philosophy .shell{width:calc(100% - 40px)}
.approach-grid,.identity-grid{display:flex;flex-direction:column;gap:28px}.approach-grid>*,.identity-grid>*{width:100%}
.approach-grid .approach-photo,.identity-photo{height:auto;aspect-ratio:1.1}
.approach-keywords{justify-content:space-between}.approach-keywords span{font-size:9px}
.philosophy-list{display:flex;padding:0;gap:22px}
.sector-cards,.group-sector-cards{grid-template-columns:1fr;gap:28px}.group-sector-cards{width:calc(100% - 40px)}
.sector-card h3,.sector-card:nth-child(2) h3{font-size:21px}.sector-card p{font-size:13px;max-width:none}.group-sector-card{min-height:240px}
.home-philosophy .shell{grid-template-columns:1fr;gap:28px}
.hero-content,.hero--home .hero-content,.hero--contact .hero-content{padding-block:48px}.hero--home{min-height:390px}
.hero h2 br,.hero h3 br,.contact-details h2 br{display:none}
.hero--contact h3{font-size:22px;line-height:1.35}
.home-philosophy h2,.home-sectors h2,.model-grid h2,.group-sectors h2{font-size:30px;line-height:1.2}
.model-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.model-step p{font-size:11px}
.activity-detail .activity-grid{display:flex;flex-direction:column;gap:24px}.activity-text h2{font-size:30px}.activity-text p{max-width:none;line-height:1.7}
.activity-detail .activity-illustration{height:auto;aspect-ratio:1.65}.activity-functions{width:100%;gap:14px}.activity-functions div{font-size:10px}
.contact-layout{width:calc(100% - 40px);display:flex;flex-direction:column;margin-inline:auto;gap:32px}.contact-sideimage{min-height:400px;height:auto}
.contact-form-panel{padding:24px 18px}.form-fields input,.form-fields select,.form-fields textarea{font-size:16px}
.contact-network h2{font-size:30px;line-height:1.2}
.footer-main,.site-footer--activities .footer-main,.site-footer--contact .footer-main{grid-template-columns:1fr;gap:24px}.footer-links{grid-column:auto;justify-content:flex-start}.footer-locale{padding-left:16px}
.legal-page{padding-block:48px}.legal-page h1{font-size:36px}
}
