:root{
  --navy: #0F2340;
  --navy-2: #16345C;
  --navy-3: #0B1B33;
  --logo-blue: #4E77AC;
  --paper: #F2F0E8;
  --paper-2: #EAE7DC;
  --gold: #9C7A3C;
  --gold-light: #C7A968;
  --ink: #1B1B18;
  --ink-soft: #4A4943;
  --line: #D9D5C6;
  --line-dark: rgba(255,255,255,0.14);
  --hero-img-1: url('https://images.unsplash.com/photo-1521587760476-6c12a4b040da?auto=format&fit=crop&fm=jpg&q=82&w=2400');
  --hero-img-2: url('https://images.unsplash.com/photo-1450101499163-c8848c66ca85?auto=format&fit=crop&fm=jpg&q=82&w=2400');
  --hero-img-3: url('https://images.unsplash.com/photo-1589829545856-d10d557cf95f?auto=format&fit=crop&fm=jpg&q=82&w=2400');
  --hero-img-4: url('https://images.unsplash.com/photo-1589994965851-a8f479c573a9?auto=format&fit=crop&fm=jpg&q=82&w=2400');
  --hero-img-5: url('https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&fm=jpg&q=82&w=2400');
  --hero-img-6: url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&fm=jpg&q=82&w=2400');
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background:
    radial-gradient(900px 500px at -10% 6%, rgba(78,119,172,.12), transparent 60%),
    radial-gradient(900px 500px at 110% 42%, rgba(156,122,60,.10), transparent 60%),
    var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }

::selection{ background: var(--gold); color: #fff; }

:focus-visible{
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

.wrap{
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 40px;
}

.eyebrow{
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight:600;
  display:flex;
  align-items:center;
  gap:14px;
}
.eyebrow::before{
  content:"";
  width:28px; height:1px;
  background: var(--gold);
  display:inline-block;
}

.dashes{
  display:flex;
  gap:8px;
  margin: 22px 0;
}
.dashes span{
  width:22px; height:2px;
  background: var(--gold);
  opacity:.7;
}
.dashes.center{ justify-content:center; }
.dashes.light span{ background: rgba(255,255,255,.55); }

/* ---------- HEADER BLANC À DEUX NIVEAUX ---------- */
:root{
  --header-top-height: 58px;
  --header-main-height: 84px;
  --header-total-height: calc(var(--header-top-height) + var(--header-main-height));
}

body.menu-open{ overflow:hidden; }

header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  padding:0;
  background:#fff;
  color:var(--navy);
  box-shadow:0 5px 22px rgba(11,27,51,.08);
  transition:box-shadow .3s ease;
}

header.scrolled{
  background:#fff;
  padding:0;
  backdrop-filter:none;
  box-shadow:0 10px 32px rgba(11,27,51,.14);
}

.header-top{
  height:var(--header-top-height);
  border-bottom:1px solid rgba(15,35,64,.14);
  background:#fff;
}

.header-top .wrap,
.header-main .wrap{
  max-width:1400px;
}

.header-top-inner{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:26px;
}

.top-contact-icon svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.top-contact{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--navy);
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
  transition:color .25s ease;
}

.top-contact:hover{ color:var(--gold); }

.top-contact-icon{
  width:34px;
  height:34px;
  border:1px solid var(--navy-2);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--navy-2);
  background:#fff;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}

.top-contact:hover .top-contact-icon{
  background:var(--navy-2);
  border-color:var(--navy-2);
  color:#fff;
}

.language-switcher{
  display:flex;
  align-items:center;
  gap:8px;
  padding-left:2px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}

.language-switcher a{
  color:#7a8190;
  transition:color .25s ease;
}

.language-switcher a:hover,
.language-switcher a.is-active{ color:var(--navy); }

.language-switcher .separator{
  width:1px;
  height:14px;
  background:#ccd1d8;
}

.header-main{
  height:var(--header-main-height);
  background:#fff;
}

.header-main-inner{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:38px;
}

.brand{
  display:flex;
  align-items:center;
}

.brand img{
  width: auto;
 height: auto;
    max-width: 435px;
  object-fit: contain;
  filter: none;
}

.brand-fallback{
  font-family:var(--serif);
  font-weight:600;
  font-size:20px;
  color:var(--navy);
  letter-spacing:.02em;
}

nav.primary{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:30px;
}

nav.primary a{
  position:relative;
  padding:8px 0;
  color:var(--navy);
  font-size:12px;
  font-weight:600;
  letter-spacing:.07em;
  text-transform:uppercase;
  white-space:nowrap;
}

nav.primary a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:2px;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}

nav.primary a:hover::after,
nav.primary a:focus-visible::after{ transform:scaleX(1); }

.nav-cta{
  padding:11px 18px !important;
  border:1px solid var(--navy) !important;
  border-radius:2px;
  color:var(--navy) !important;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}

.nav-cta::after{ display:none; }

.nav-cta:hover{
  background:var(--navy);
  border-color:var(--navy);
  color:#fff !important;
}

.menu-toggle{
  display:none;
  width:44px;
  height:44px;
  position:relative;
  z-index:1102;
  border:1px solid rgba(15,35,64,.16);
  border-radius:50%;
  background:#fff;
  cursor:pointer;
}

.menu-toggle span{
  position:absolute;
  left:12px;
  right:12px;
  height:2px;
  background:var(--navy);
  transition:all .3s ease;
}

.menu-toggle span:nth-child(1){ top:14px; }
.menu-toggle span:nth-child(2){ top:21px; }
.menu-toggle span:nth-child(3){ top:28px; }
.menu-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-toggle.open span:nth-child(2){ opacity:0; }
.menu-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.nav-backdrop{
  position:fixed;
  inset:0;
  z-index:1090;
  background:rgba(11,27,51,.46);
  opacity:0;
  visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
}

.nav-backdrop.is-visible{
  opacity:1;
  visibility:visible;
}

/* ---------- HERO PREMIUM ---------- */
.hero-premium{
  position:relative;
  width:100%;
  min-height:100svh;
  padding:var(--header-total-height) 0 0 !important;
  overflow:hidden;
  background:var(--navy-3);
  color:#fff;
}

.hero-premium-stage{
  position:relative;
  width:100%;
  height:calc(100svh - var(--header-total-height));
  min-height:650px;
  overflow:hidden;
  background:var(--navy-3);
}

.hero-premium-slide{
  position:absolute;
  inset:0;
  z-index:0;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .9s ease, visibility .9s ease;
}

.hero-premium-slide.is-active{
  z-index:2;
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.hero-premium-image{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:#0b1b33;
}

.hero-premium-image img{
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:var(--image-position, center);
  transform:scale(1.075);
  filter:saturate(.82) contrast(1.04);
  transition:transform 7.5s cubic-bezier(.2,.7,.2,1), filter 1.2s ease;
}

.hero-premium-slide.is-active .hero-premium-image img{
  transform:scale(1);
  filter:saturate(.92) contrast(1.06);
}

.hero-premium-image::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg, rgba(7,20,39,.96) 0%, rgba(11,27,51,.90) 34%, rgba(11,27,51,.55) 62%, rgba(11,27,51,.22) 100%),
    linear-gradient(180deg, rgba(7,20,39,.16) 0%, rgba(7,20,39,.10) 52%, rgba(7,20,39,.72) 100%);
  pointer-events:none;
}

.hero-premium-image::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(700px 420px at 75% 18%, rgba(199,169,104,.20), transparent 62%),
    linear-gradient(115deg, transparent 55%, rgba(156,122,60,.12));
  pointer-events:none;
}

.hero-premium-inner{
  position:relative;
  z-index:3;
  height:100%;
  display:grid;
  grid-template-columns:minmax(0, 760px) 1fr;
  align-items:center;
  gap:70px;
  padding-top:44px;
  padding-bottom:122px;
}

.hero-premium-copy{
  position:relative;
  max-width:760px;
  opacity:0;
  transform:translateY(34px);
}

.hero-premium-slide.is-active .hero-premium-copy{
  animation:heroPremiumReveal .85s .18s cubic-bezier(.2,.7,.2,1) forwards;
}

@keyframes heroPremiumReveal{
  to{ opacity:1; transform:translateY(0); }
}

.hero-premium-kicker{
  display:inline-flex;
  align-items:center;
  gap:13px;
  margin-bottom:22px;
  color:var(--gold-light);
  font-size:11px;
  font-weight:600;
  letter-spacing:.19em;
  text-transform:uppercase;
}

.hero-premium-kicker::before{
  content:"";
  width:34px;
  height:1px;
  background:var(--gold-light);
  box-shadow:0 0 16px rgba(199,169,104,.45);
}

.hero-premium-copy h1{
  color:#fff;
  font-family:var(--serif);
  font-weight:500;
  line-height:1.19;
  letter-spacing:-.025em;
  text-wrap:balance;
}

.hero-premium-copy h1 em{
  color:var(--gold-light);
  font-style:italic;
  font-weight:400;
}

.hero-premium-description{
  max-width:650px;
  margin-top:26px;
  padding-left:22px;
  border-left:2px solid var(--gold);
  color:rgba(255,255,255,.84);
  font-family:var(--serif);
  font-size:clamp(17px, 1.45vw, 21px);
  font-style:italic;
  line-height:1.62;
}

.hero-premium-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  margin-top:34px;
}

.hero-premium-btn{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:0 25px;
  border:1px solid transparent;
  border-radius:2px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.09em;
  text-transform:uppercase;
  transition:transform .28s ease, background .28s ease, color .28s ease, border-color .28s ease;
}

.hero-premium-btn svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .28s ease;
}

.hero-premium-btn:hover svg{ transform:translateX(4px); }

.hero-premium-btn--gold{
  background:var(--gold);
  border-color:var(--gold);
  color:#fff;
  box-shadow:0 16px 36px rgba(156,122,60,.22);
}

.hero-premium-btn--gold:hover{
  background:var(--gold-light);
  border-color:var(--gold-light);
  transform:translateY(-2px);
}

.hero-premium-btn--ghost{
  background:rgba(255,255,255,.045);
  border-color:rgba(255,255,255,.32);
  color:#fff;
  backdrop-filter:blur(8px);
}

.hero-premium-btn--ghost:hover{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.62);
  transform:translateY(-2px);
}

.hero-premium-tags{
  display:none;
  flex-wrap:wrap;
  gap:11px 22px;
  margin-top:31px;
}

.hero-premium-tags span{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:rgba(255,255,255,.68);
  font-size:11px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.hero-premium-tags span::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--gold-light);
  box-shadow:0 0 15px rgba(199,169,104,.75);
}

.hero-premium-aside{
  justify-self:end;
  align-self:center;
  width:210px;
  padding:28px 25px;
  border-top:1px solid rgba(255,255,255,.30);
  border-bottom:1px solid rgba(255,255,255,.18);
  background:rgba(11,27,51,.32);
  backdrop-filter:blur(9px);
  opacity:0;
  transform:translateX(30px);
}

.hero-premium-slide.is-active .hero-premium-aside{
  animation:heroPremiumAside .8s .42s cubic-bezier(.2,.7,.2,1) forwards;
}

@keyframes heroPremiumAside{
  to{ opacity:1; transform:translateX(0); }
}

.hero-premium-aside-label{
  color:var(--gold-light);
  font-size:10px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.hero-premium-aside-number{
  margin-top:9px;
  color:#fff;
  font-family:var(--serif);
  font-size:45px;
  line-height:1;
}

.hero-premium-aside-text{
  margin-top:12px;
  color:rgba(255,255,255,.68);
  font-size:12px;
  line-height:1.7;
}

.hero-premium-controls{
  position:absolute;
  left:50%;
  right:auto;
  bottom:28px;
  z-index:8;
  width:min(1400px, calc(100% - 80px));
  transform:translateX(-50%);
}

.hero-premium-progress{
  height:2px;
  overflow:hidden;
  background:rgba(255,255,255,.18);
}

.hero-premium-progress-bar{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg, var(--gold), var(--gold-light));
}

.hero-premium-control-row{
  display:grid;
  grid-template-columns:170px 1fr 170px;
  align-items:center;
  gap:24px;
  margin-top:18px;
}

.hero-premium-counter{
  display:flex;
  align-items:baseline;
  gap:8px;
  color:#fff;
  font-family:var(--serif);
}

.hero-premium-counter-current{
  font-size:25px;
  color:var(--gold-light);
}

.hero-premium-counter-separator,
.hero-premium-counter-total{
  color:rgba(255,255,255,.48);
  font-size:14px;
}

.hero-premium-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
}

.hero-premium-dot{
  position:relative;
  width:38px;
  height:22px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}

.hero-premium-dot::before{
  content:"";
  position:absolute;
  top:50%;
  left:0;
  right:0;
  height:2px;
  transform:translateY(-50%);
  background:rgba(255,255,255,.28);
  transition:background .25s ease, transform .25s ease;
}

.hero-premium-dot:hover::before{ background:rgba(255,255,255,.68); }
.hero-premium-dot.is-active::before{
  background:var(--gold-light);
  transform:translateY(-50%) scaleY(1.5);
}

.hero-premium-arrows{
  display:flex;
  justify-content:flex-end;
  gap:10px;
}

.hero-premium-arrow{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  background:rgba(11,27,51,.30);
  color:#fff;
  cursor:pointer;
  backdrop-filter:blur(8px);
  transition:background .25s ease, border-color .25s ease, transform .25s ease;
}

.hero-premium-arrow:hover{
  background:var(--gold);
  border-color:var(--gold);
  transform:translateY(-2px);
}

.hero-premium-arrow svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.hero-premium-scroll{
  position:absolute;
  right:28px;
  top:50%;
  z-index:7;
  display:flex;
  align-items:center;
  gap:13px;
  transform:translateY(-50%) rotate(90deg);
  transform-origin:center;
  color:rgba(255,255,255,.50);
  font-size:10px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.hero-premium-scroll::before{
  content:"";
  width:38px;
  height:1px;
  background:linear-gradient(90deg, transparent, var(--gold-light));
}

@media (max-width:1050px){
  .hero-premium-inner{
    grid-template-columns:minmax(0, 720px) 1fr;
    gap:35px;
  }
  .hero-premium-aside{ width:185px; }
}

@media (max-width:900px){
  .hero-premium-stage{
    height:calc(100svh - var(--header-total-height));
    min-height:700px;
  }
  .hero-premium-inner{
    grid-template-columns:1fr;
    align-items:center;
    padding-top:38px;
    padding-bottom:130px;
  }
  .hero-premium-copy{ max-width:720px; }
  .hero-premium-aside{ display:none; }
  .hero-premium-controls{ width:calc(100% - 48px); }
  .hero-premium-scroll{ display:none; }
}

@media (max-width:560px){
  .hero-premium-stage{
    height:auto;
    min-height:720px;
  }
  .hero-premium-inner{
    min-height:720px;
    padding-top:38px;
    padding-bottom:132px;
  }
  .hero-premium-copy h1{
    max-width:12ch;
    font-size:clamp(38px, 12vw, 54px);
  }
  .hero-premium-description{
    margin-top:20px;
    padding-left:16px;
    font-size:16px;
  }
  .hero-premium-actions{
    align-items:stretch;
    gap:10px;
    margin-top:26px;
  }
  .hero-premium-btn{
    width:100%;
    min-height:48px;
    padding:0 18px;
  }
  .hero-premium-tags{ gap:9px 14px; margin-top:22px; }
  .hero-premium-tags span{ font-size:9.5px; }
  .hero-premium-controls{
    bottom:20px;
    width:calc(100% - 36px);
  }
  .hero-premium-control-row{
    grid-template-columns:auto 1fr auto;
    gap:12px;
  }
  .hero-premium-dot{ width:22px; }
  .hero-premium-arrow{ width:42px; height:42px; }
  .hero-premium-arrows{ gap:7px; }
}


/* ---------- STAT BAR ---------- */
.stats{
  background: var(--navy-2);
  color:#fff;
  position:relative;
  z-index:3;
}
.stats .wrap{
  display:grid;
  grid-template-columns: repeat(3,1fr);
}
.stat{
  padding: 44px 30px;
  text-align:center;
  border-left: 1px solid var(--line-dark);
}
.stat:first-child{ border-left:none; }
.stat .num{
  font-family: var(--serif);
  font-size: clamp(30px,3.4vw,44px);
  font-weight:500;
  color: var(--gold-light);
}
.stat .label{
  margin-top:8px;
  font-size: 12px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color: rgba(255,255,255,.68);
}


/* ---------- BACKGROUND IMAGES / PREMIUM ATMOSPHERE ---------- */
#cabinet::before,
#expertises::before,
#equipe::before,
#actualites::before,
#contact::before,
#carriere-hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-size: cover;
  background-position:center;
  z-index:0;
}
#cabinet::before{
  background-image: linear-gradient(90deg, rgba(242,240,232,.97), rgba(242,240,232,.85), rgba(242,240,232,.97)), var(--hero-img-1);
  opacity:.44;
}
#expertises::before{
  background-image: linear-gradient(90deg, rgba(11,27,51,.98), rgba(11,27,51,.88)), var(--hero-img-2);
  opacity:.74;
  filter:saturate(.85);
}
#equipe::before{
  background-image: linear-gradient(90deg, rgba(242,240,232,.98), rgba(242,240,232,.90), rgba(242,240,232,.98)), var(--hero-img-3);
  opacity:.34;
  background-position:right center;
}
#actualites::before{
  background-image: linear-gradient(90deg, rgba(15,35,64,.98), rgba(15,35,64,.84)), var(--hero-img-4);
  opacity:.72;
}
#contact::before{
  background-image: linear-gradient(90deg, rgba(11,27,51,.96), rgba(11,27,51,.88)), var(--hero-img-1);
  opacity:.36;
}
#carriere-hero::before{
  background-image: linear-gradient(90deg, rgba(11,27,51,.97), rgba(11,27,51,.86)), var(--hero-img-6);
  opacity:.7;
}
#cabinet > .wrap,
#expertises > .wrap,
#equipe > .wrap,
#actualites > .wrap,
#contact > .wrap,
#carriere-hero > .wrap{
  position:relative;
  z-index:2;
}

/* ---------- SECTION GENERIC ---------- */
section{ padding: 130px 0; position:relative; }
.section-head{
  max-width: 720px;
  margin-bottom: 64px;
}
.section-head h2{
  font-family: var(--serif);
  font-weight:500;
  font-size: clamp(30px, 3.6vw, 48px);
  margin-top: 18px;
  letter-spacing:-0.01em;
  color: var(--navy);
}
.section-head p{
  margin-top: 22px;
  font-size: 17px;
  color: var(--ink-soft);
  max-width: 60ch;
}
#expertises .section-head h2,
#actualites .section-head h2,
#carriere-hero .section-head h2{ color:#fff; }
#expertises .section-head p,
#actualites .section-head p,
#carriere-hero .section-head p{ color: rgba(255,255,255,.68); }
#expertises .eyebrow,
#actualites .eyebrow,
#carriere-hero .eyebrow{ color: var(--gold-light); }
#expertises .eyebrow::before,
#actualites .eyebrow::before,
#carriere-hero .eyebrow::before{ background: var(--gold-light); }

.section-banner{
  position:relative;
  height: clamp(240px, 33vw, 360px);
  overflow:hidden;
  border: 1px solid rgba(15,35,64,.08);
  margin: -4px 0 54px;
  box-shadow: 0 24px 60px rgba(11,27,51,.12);
  background:#ddd;
}
.section-banner img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform: scale(1.02);
}
.section-banner::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(11,27,51,.04), rgba(11,27,51,.24));
  pointer-events:none;
}
.section-banner .section-banner-caption{
  position:absolute;
  left: 28px;
  bottom: 22px;
  z-index:2;
  color:#fff;
  font-family: var(--serif);
  font-size: clamp(18px, 2vw, 24px);
  font-style: italic;
  text-shadow: 0 10px 24px rgba(0,0,0,.35);
}

.art-num{
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
}

.reveal{
  opacity:0;
  transform: translateY(28px);
  transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
}
.reveal.is-visible{ opacity:1; transform:none; }

/* ---------- CABINET / A PROPOS ---------- */
#cabinet{ background: var(--paper); }
.about-grid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 90px;
  align-items:start;
}
.about-copy p{
  color: var(--ink-soft);
  margin-bottom: 18px;
  font-size: 15.5px;
}
.about-copy strong{ color: var(--navy); font-weight:600; }

.values{
  background: var(--navy);
  color:#fff;
  padding: 44px 40px;
  border-radius: 3px;
  position:relative;
}
.values::before{
  content:"";
  position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, var(--gold), transparent);
}
.values h3{
  font-family: var(--serif);
  font-style:italic;
  font-weight:400;
  font-size: 20px;
  color: var(--gold-light);
  margin-bottom: 26px;
}
.values li{
  display:flex;
  gap:16px;
  padding: 18px 0;
  border-top: 1px solid var(--line-dark);
  font-size: 14.5px;
  color: rgba(255,255,255,.85);
}
.values li:first-of-type{ border-top:none; }
.values .roman{
  font-family: var(--serif);
  font-style:italic;
  color: var(--gold-light);
  flex-shrink:0;
  width: 26px;
}


/* ---------- CTA D'APERÇU ---------- */
.section-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px;
  margin-top:42px;
}
.section-actions.center{ justify-content:center; }

.section-link{
  min-height:50px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:0 24px;
  border:1px solid var(--navy);
  border-radius:2px;
  background:transparent;
  color:var(--navy);
  font-size:11px;
  font-weight:600;
  letter-spacing:.11em;
  text-transform:uppercase;
  transition:background .28s ease, color .28s ease, border-color .28s ease, transform .28s ease;
}
.section-link svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .28s ease;
}
.section-link:hover{
  background:var(--navy);
  color:#fff;
  transform:translateY(-2px);
}
.section-link:hover svg{ transform:translateX(4px); }
.section-link--gold{
  background:var(--gold);
  border-color:var(--gold);
  color:#fff;
}
.section-link--gold:hover{
  background:var(--gold-light);
  border-color:var(--gold-light);
  color:var(--navy-3);
}
.section-link--light{
  border-color:rgba(255,255,255,.42);
  color:#fff;
  background:rgba(255,255,255,.04);
}
.section-link--light:hover{
  background:#fff;
  border-color:#fff;
  color:var(--navy);
}

/* ---------- EXPERTISES ---------- */
#expertises{ background: var(--navy-3); color:#fff; }

.practice-list{
  border-top: 1px solid var(--line-dark);
}
.practice-item{
  border-bottom: 1px solid var(--line-dark);
  transition: background .3s ease, padding-left .3s ease;
}
.practice-item:hover{
  background: rgba(255,255,255,.035);
  padding-left: 12px;
}
.practice-trigger{
  width:100%;
  display:flex;
  align-items:center;
  gap: 26px;
  padding: 26px 4px;
  background:none;
  border:none;
  color:#fff;
  text-align:left;
  cursor:pointer;
  font-family: inherit;
  position:relative;
}
.practice-trigger .idx{
  font-family: var(--serif);
  font-style: italic;
  color: var(--gold-light);
  font-size: 18px;
  width: 56px;
  flex-shrink:0;
}
.practice-trigger .title{
  font-family: var(--serif);
  font-size: clamp(18px,2vw,23px);
  font-weight:500;
  flex:1;
}
.practice-trigger .plus{
  width: 22px; height:22px;
  position:relative;
  flex-shrink:0;
}
.practice-trigger .plus::before, .practice-trigger .plus::after{
  content:"";
  position:absolute;
  background: var(--gold-light);
  transition: transform .35s ease;
}
.practice-trigger .plus::before{ top:50%; left:0; right:0; height:1px; transform:translateY(-.5px); }
.practice-trigger .plus::after{ left:50%; top:0; bottom:0; width:1px; transform:translateX(-.5px); }
.practice-item.open .plus::after{ transform: translateX(-.5px) rotate(90deg); opacity:0; }

.practice-panel{
  max-height:0;
  overflow:hidden;
  transition: max-height .5s ease;
}
.practice-panel-inner{
  padding: 8px 4px 40px 82px;
  color: rgba(255,255,255,.7);
  font-size: 15px;
  max-width: none;
}

.practice-thumb{
  width: 118px;
  height: 74px;
  flex: 0 0 118px;
  border-radius: 2px;
  background-image:
    linear-gradient(120deg, rgba(11,27,51,.18), rgba(156,122,60,.20)),
    var(--practice-img);
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 16px 34px rgba(0,0,0,.22);
  opacity: .82;
  transition: transform .35s ease, opacity .35s ease, border-color .35s ease;
}
.practice-item:hover .practice-thumb,
.practice-item.open .practice-thumb{
  opacity: 1;
  transform: scale(1.04);
  border-color: rgba(199,169,104,.55);
}
.practice-content-grid{
  display:grid;
  grid-template-columns: minmax(0, 1fr) 500px;
  gap: 36px;
  align-items: stretch;
}
.practice-text{
  max-width: 68ch;
}
.practice-tag{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  margin-bottom: 14px;
  font-size: 11px;
  letter-spacing:.14em;
  text-transform: uppercase;
  color: var(--gold-light);
  font-weight: 600;
}
.practice-tag::before{
  content:"";
  width: 22px;
  height: 1px;
  background: var(--gold-light);
  opacity:.8;
}
.practice-visual{
  position:relative;
  min-height: 340px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.04);
  box-shadow: 0 22px 55px rgba(0,0,0,.22);
}
.practice-visual img{
  width:100%;
  height:100%;
  min-height:340px;
  object-fit:cover;
  object-position:center;
  filter: saturate(.85) contrast(1.05);
  transform: scale(1.02);
  transition: transform .65s ease, filter .65s ease;
}
.practice-item.open .practice-visual img{
  transform: scale(1.08);
  filter: saturate(.95) contrast(1.08);
}
.practice-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, transparent 35%, rgba(11,27,51,.82)),
    linear-gradient(120deg, rgba(156,122,60,.15), transparent 55%);
}
.practice-visual figcaption{
  position:absolute;
  left: 18px;
  right: 18px;
  bottom: 16px;
  z-index:2;
  font-family: var(--serif);
  font-style: italic;
  color: rgba(255,255,255,.92);
  font-size: 18px;
  line-height:1.35;
}
@media (max-width: 900px){
  .practice-trigger{ gap: 16px; }
  .practice-thumb{
    width: 88px;
    height: 58px;
    flex-basis: 88px;
  }
  .practice-content-grid{
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .practice-visual{ min-height: 260px; }
  .practice-visual img{ min-height: 260px; }
}
@media (max-width: 560px){
  .practice-thumb{ display:none; }
  .practice-trigger .idx{ width: 42px; }
  .practice-panel-inner{ padding-left: 48px; }
}


/* ---------- EQUIPE ---------- */
#equipe{ background: var(--paper); }

.associates{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 46px;
  margin-bottom: 0;
}
.assoc-card{
  background:#fff;
  border: 1px solid var(--line);
  padding: 42px 38px;
  position:relative;
}
.assoc-card::before{
  content:"";
  position:absolute; top:0; left:0; width:3px; height:56px;
  background: var(--gold);
}
.assoc-card .name{
  font-family: var(--serif);
  font-weight:600;
  font-size: 25px;
  color: var(--navy);
}
.assoc-card .role{
  font-family: var(--serif);
  font-style:italic;
  color: var(--gold);
  font-size: 14.5px;
  margin: 6px 0 20px;
}
.assoc-card p{
  font-size: 14.5px;
  color: var(--ink-soft);
  margin-bottom: 12px;
}
.assoc-card p:last-child{ margin-bottom:0; }

.team-tier{ margin-bottom: 54px; }
.team-tier > .tier-label{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--gold);
  font-weight:600;
  margin-bottom: 24px;
  display:block;
}
.team-row{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap: 30px;
}
.team-row.single{ grid-template-columns: 1fr; max-width: 560px; }
.member{
  border-top: 1px solid var(--line);
  padding-top: 20px;
}
.member .name{
  font-family: var(--serif);
  font-weight:600;
  font-size: 18px;
  color: var(--navy);
}
.member .meta{
  font-size: 13px;
  color: var(--gold);
  margin: 4px 0 10px;
  font-style: italic;
  font-family: var(--serif);
}
.member p{ font-size: 14px; color: var(--ink-soft); }

.support-note{
  margin-top: 50px;
  padding-top: 30px;
  border-top: 1px dashed var(--line);
  font-size: 14px;
  color: var(--ink-soft);
}
.support-note strong{ color: var(--navy); }

/* ---------- ACTUALITES / DOSSIERS — CARROUSEL ---------- */
#actualites{ background: var(--navy); color:#fff; overflow:hidden; }

.news-carousel{
  position:relative;
  margin-top:6px;
}
.news-carousel-viewport{
  overflow:hidden;
  margin-right:calc((100vw - min(1180px, 100vw)) / -2);
  padding-right:max(40px, calc((100vw - 1180px) / 2));
}
.news-carousel-track{
  display:flex;
  gap:24px;
  transition:transform .65s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
}
.news-card{
  position:relative;
  flex:0 0 calc((100% - 48px) / 3);
  min-width:0;
  min-height:500px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.17);
  background:#102746;
  box-shadow:0 25px 70px rgba(0,0,0,.20);
}
.news-card-image{
  position:absolute;
  inset:0;
}
.news-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.78) contrast(1.05);
  transform:scale(1.02);
  transition:transform .7s ease, filter .7s ease;
}
.news-card:hover .news-card-image img{
  transform:scale(1.08);
  filter:saturate(.92) contrast(1.08);
}
.news-card-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:
linear-gradient(180deg, rgba(11, 27, 51, .05) 20%, rgba(11, 27, 51, .55) 58%, rgba(7, 20, 39, .98) 100%), linear-gradient(125deg, rgba(156, 122, 60, .18), #00000070 52%);
}
.news-card-content{
  position:absolute;
  inset:auto 0 0;
  z-index:2;
  padding:30px 28px 28px;
}
.news-card-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:15px;
  color:#fbdd9d;
  font-size:10px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.news-card-type{
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.news-card-type::before{
  content:"";
  width:18px;
  height:1px;
  background:var(--gold-light);
}
.news-card h3{
  color:#fff;
  font-family:var(--serif);
  font-size:clamp(21px,2vw,24px);
  font-weight:500;
  line-height:1.3;
}
.news-card p{
  margin-top:15px;
    margin-bottom: 15px;
  color:rgba(255,255,255,.72);
  font-size:14px;
  line-height:1.7;
}
.news-card-amount{
  display:block;
  margin-top:17px;
  color:#fff;
  font-family:var(--serif);
  font-style:italic;
  font-size:16px;
}
.news-card-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:20px;
  color:var(--gold-light);
  font-size:10px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.news-card-link svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  transition:transform .25s ease;
}
.news-card:hover .news-card-link svg{ transform:translateX(4px); }

.news-carousel-footer{
  display:grid;
  grid-template-columns:1fr auto auto;
  align-items:center;
  gap:22px;
  margin-top:30px;
}
.news-carousel-progress{
  height:1px;
  overflow:hidden;
  background:rgba(255,255,255,.18);
}
.news-carousel-progress-bar{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg,var(--gold),var(--gold-light));
  transition:width .45s ease;
}
.news-carousel-counter{
  min-width:74px;
  color:rgba(255,255,255,.5);
  font-family:var(--serif);
  font-size:14px;
  text-align:center;
}
.news-carousel-counter strong{
  color:var(--gold-light);
  font-size:22px;
  font-weight:500;
}
.news-carousel-arrows{
  display:flex;
  gap:10px;
}
.news-carousel-arrow{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  background:rgba(255,255,255,.04);
  color:#fff;
  cursor:pointer;
  transition:background .25s ease, border-color .25s ease, transform .25s ease;
}
.news-carousel-arrow:hover{
  background:var(--gold);
  border-color:var(--gold);
  transform:translateY(-2px);
}
.news-carousel-arrow svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media (max-width:900px){
  .news-carousel-viewport{
    margin-right:-24px;
    padding-right:24px;
  }
  .news-card{ flex-basis:calc((100% - 24px) / 2); min-height:470px; }
}
@media (max-width:620px){
  .news-carousel-viewport{
    margin-right:-18px;
    padding-right:18px;
  }
  .news-card{ flex-basis:88%; min-height:450px; }
  .news-carousel-footer{
    grid-template-columns:1fr auto;
    gap:16px;
  }
  .news-carousel-counter{ display:none; }
  .news-card-content{ padding:25px 22px; }
}

/* ---------- ACTUALITES — GRILLE (page dédiée) ---------- */
.news-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.news-grid .news-card{
  position:relative;
  min-height:460px;
}
@media (max-width: 1050px){
  .news-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px){
  .news-grid{ grid-template-columns: 1fr; }
}

/* ---------- CARRIERE ---------- */
#carriere{ background: var(--paper); }
.career-panel{
  background:#fff;
  border: 1px solid var(--line);
  padding: 70px 70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 50px;
  flex-wrap:wrap;
}
.career-panel h2{
  font-family:var(--serif);
  font-weight:500;
  font-size: clamp(26px,3vw,38px);
  color: var(--navy);
  max-width: 14ch;
}
.career-panel p{
  margin-top:16px;
  color: var(--ink-soft);
  max-width: 46ch;
  font-size:15px;
}
.career-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
}

.job-list{ margin-top: 10px; }
.job-item{
  background:#fff;
  border: 1px solid var(--line);
  padding: 30px 34px;
  margin-bottom: 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 30px;
  flex-wrap:wrap;
}
.job-item .job-title{
  font-family: var(--serif);
  font-weight:600;
  font-size: 19px;
  color: var(--navy);
}
.job-item .job-meta{
  margin-top: 6px;
  font-size: 13px;
  color: var(--gold);
  letter-spacing:.04em;
  text-transform:uppercase;
}

/* ---------- CONTACT ---------- */
#contact{ background: var(--navy-3); color:#fff; }
.contact-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
}
.contact-info h2{
  font-family: var(--serif);
  font-weight:500;
  font-size: clamp(28px,3.4vw,42px);
  margin-top:18px;
}
.contact-list{ margin-top: 40px; }
.contact-list li{
  padding: 20px 0;
  border-top: 1px solid var(--line-dark);
  display:flex;
  gap: 20px;
}
.contact-list li:last-child{ border-bottom: 1px solid var(--line-dark); }
.contact-list .k{
  width: 100px;
  flex-shrink:0;
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color: var(--gold-light);
  padding-top:2px;
}
.contact-list .v{ font-size:15px; color: rgba(255,255,255,.9); }
.contact-list a.v:hover{ color: var(--gold-light); }

.map-frame{
  border: 1px solid var(--line-dark);
  min-height: 380px;
  filter: grayscale(.3) contrast(1.05);
}
.map-frame iframe{ width:100%; height:100%; min-height:380px; border:0; display:block; }

footer{
  background: var(--navy-3);
  color: rgba(255,255,255,.55);
  padding: 40px 0;
  border-top: 1px solid var(--line-dark);
  font-size: 13px;
}
footer .wrap{
  display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;
}
footer .brand-fallback{ color: rgba(255,255,255,.7); font-size:16px; }


.stat,
.assoc-card,
.job-item,
.career-panel,
.values{
  box-shadow: 0 24px 70px rgba(11,27,51,.08);
}
.assoc-card,
.career-panel,
.job-item{
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(8px);
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1050px){
  .header-main-inner{ gap:22px; }
  nav.primary{ gap:18px; }
  nav.primary a{ font-size:11px; }
  .brand img{ height:46px; max-width:230px; }
}

@media (max-width: 900px){
  :root{
    --header-top-height: 62px;
    --header-main-height: 72px;
  }

  .wrap{ padding:0 24px; }

  .header-top-inner{
    gap:12px;
    padding-top:9px;
    padding-bottom:9px;
  }

  .top-contact > span:first-child{ display:none; }
  .language-switcher{ gap:6px; font-size:11px; }

  .header-main-inner{ gap:16px; }
  .brand img{ height:40px; max-width:210px; }
  .menu-toggle{ display:block; }

  nav.primary{
    position:fixed;
    top:0;
    right:0;
    z-index:1100;
    width:min(82vw, 380px);
    height:100svh;
    padding:120px 42px 50px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    gap:8px;
    overflow-y:auto;
    background:#fff;
    box-shadow:-20px 0 55px rgba(11,27,51,.16);
    transform:translateX(105%);
    transition:transform .4s cubic-bezier(.22,.61,.36,1);
  }

  nav.primary.open{ transform:translateX(0); }

  nav.primary a{
    width:100%;
    padding:16px 0;
    border-bottom:1px solid rgba(15,35,64,.10);
    color:var(--navy);
    font-size:13px;
  }

  nav.primary a::after{ display:none; }

  .nav-cta{
    margin-top:18px;
    width:auto !important;
    padding:13px 20px !important;
    border-bottom:1px solid var(--navy) !important;
  }

  .about-grid{ grid-template-columns:1fr; gap:50px; }
  .stats .wrap{ grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(3){ border-left:none; }
  .stat{ padding:34px 20px; }
  .associates{ grid-template-columns:1fr; }
  .team-row{ grid-template-columns:1fr; }
  .team-row.single{ max-width:none; }
  .contact-grid{ grid-template-columns:1fr; }
  .career-panel{ padding:46px 30px; }
  .section-banner{ height:240px; margin-bottom:36px; }
  section{ padding:90px 0; }
  .practice-panel-inner{ padding-left:56px; }
  .news-grid{ gap: 22px; }
}

@media (max-width: 560px){
  :root{
    --header-top-height: 58px;
    --header-main-height: 68px;
  }

  .wrap{ padding:0 18px; }
  .header-top-inner{ gap:9px; }
  .language-switcher .separator{ display:none; }
  .language-switcher{ flex-direction:column; gap:0; line-height:1.1; }
  .brand img{ height:36px; max-width:180px; }
  .menu-toggle{ width:42px; height:42px; }
  nav.primary{ width:88vw; padding-left:30px; padding-right:30px; }
  .top-contact-icon{ width:32px; height:32px; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
}

/* ---------- PAGINATION (Actualités) ---------- */
.news-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin-top:56px;
}
.news-pagination .page-btn{
  border:1px solid var(--line-dark);
  background:transparent;
  color:rgba(255,255,255,.6);
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.08em;
  font-weight:600;
  width:38px;
  height:38px;
  border-radius:50%;
  cursor:pointer;
  transition:all .3s ease;
}
.news-pagination .page-btn:hover{
  border-color:var(--gold-light);
  color:#fff;
}
.news-pagination .page-btn.is-active{
  background:var(--gold);
  border-color:var(--gold);
  color:#fff;
}
.news-grid .news-card.is-hidden{ display:none; }

/* ---------- COOKIE BANNER ---------- */
#cookieBanner{
  position:fixed;
  left:20px;
  right:20px;
  bottom:20px;
  z-index:2000;
  max-width:920px;
  margin:0 auto;
  background:var(--navy-3);
  color:rgba(255,255,255,.86);
  border:1px solid var(--line-dark);
  box-shadow:0 24px 60px rgba(0,0,0,.28);
  padding:26px 30px;
  display:flex;
  align-items:center;
  gap:26px;
  flex-wrap:wrap;
  transform:translateY(140%);
  opacity:0;
  transition:transform .5s ease, opacity .5s ease;
}
#cookieBanner.is-visible{
  transform:translateY(0);
  opacity:1;
}
#cookieBanner p{
  flex:1 1 380px;
  font-size:13.5px;
  line-height:1.6;
  margin:0;
}
#cookieBanner strong{ color:#fff; }
.cookie-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.cookie-btn{
  border:1px solid var(--line-dark);
  background:transparent;
  color:#fff;
  font-family:var(--sans);
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.03em;
  padding:11px 22px;
  cursor:pointer;
  transition:all .25s ease;
  white-space:nowrap;
}
.cookie-btn:hover{ border-color:var(--gold-light); }
.cookie-btn--accept{
  background:var(--gold);
  border-color:var(--gold);
}
.cookie-btn--accept:hover{ background:var(--gold-light); border-color:var(--gold-light); }

@media (max-width:600px){
  #cookieBanner{ padding:22px; gap:16px; }
  .cookie-actions{ width:100%; }
  .cookie-btn{ flex:1; }
}

.actualite-single {
    background: #f6f3ec;
}

.actualite-single-hero {
    padding: 90px 0 60px;
}

.actualite-single-back {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 50px;
    text-decoration: none;
}

.actualite-single-back svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
}

.actualite-single-category {
    margin-bottom: 20px;
}

.actualite-single-title {
    max-width: 1000px;
    margin: 0;
    font-size: clamp(42px, 5vw, 76px);
    line-height: 1.05;
}

.actualite-single-enjeu {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.actualite-single-enjeu span {
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.12em;
}

.actualite-single-enjeu strong {
    font-size: 22px;
} 
.actualite-single-image {
        padding: 0;
}
.news-card-category {
    color: #fdcf6e;
    font-weight: 900;
}

.actualite-single-image .wrap {
    overflow: hidden;
}

.actualite-single-image img {
    display: block;
    width: 100%;
    height: clamp(350px, 55vw, 700px);
    object-fit: cover;
}

.actualite-single-body {

    padding: 30px 0;
}

.actualite-single-content {
    margin: 0 auto;
}

.actualite-single-intro {
    margin-bottom: 45px;
    font-size: 24px;
    line-height: 1.6;
    font-weight: 500;
}

.actualite-single-text {
    font-size: 18px;
    line-height: 1.8;
}

.actualite-single-text p {
    margin: 0 0 25px;
}

.actualite-single-footer {
    padding: 20px 0 100px;
}
/* =========================================================
   PAGE EXPERTISES — DESIGN ISOLÉ
========================================================= */

.ssk-exp-page {
    background: #f7f4ed;
    color: #14263f;
}


.ssk-exp-section {
    padding:
        calc(var(--header-total-height, 100px) + 75px)
        0
        100px;
}


.ssk-exp-container {
    width: min(1500px, calc(100% - 80px));
    margin: 0 auto;
}



/* =========================================================
   HEADER
========================================================= */

.ssk-exp-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250px;
    gap: 60px;
    align-items: start;
    margin-bottom: 65px;
}


.ssk-exp-kicker {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 20px;

    font-size: 12px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #aa7c2b;
}


.ssk-exp-kicker span {
    width: 42px;
    height: 1px;
    background: #aa7c2b;
}


.ssk-exp-main-title {
    max-width: 830px;
    margin: 0;

    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(42px, 4.5vw, 72px);
    font-weight: 400;
    line-height: 1.04;
    letter-spacing: -.035em;

    color: #10243f;
}


.ssk-exp-intro {
    max-width: 800px;
    margin: 28px 0 0;

    font-size: 17px;
    line-height: 1.65;
    color: #4d5360;
}


.ssk-exp-header-side {
    padding-top: 45px;
    text-align: right;
}


.ssk-exp-header-side span {
    display: block;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 13px;
    line-height: 1.7;
    letter-spacing: .16em;
    text-transform: uppercase;

    color: #9c7130;
}


.ssk-exp-header-side i {
    display: inline-block;
    width: 48px;
    height: 1px;
    margin-top: 25px;
    background: #a67b38;
}



/* =========================================================
   GRID
========================================================= */

.ssk-exp-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 34px;
    row-gap: 55px;
    align-items: start;
}



/* =========================================================
   CARD
========================================================= */

.ssk-exp-card {
    min-width: 0;
}


.ssk-exp-image {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1.65 / 1;
    margin-bottom: 17px;

    background: #ddd8cd;
}


.ssk-exp-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform .6s cubic-bezier(.2,.7,.2,1),
        filter .4s ease;
}


.ssk-exp-card:hover .ssk-exp-image img {
    transform: scale(1.035);
}


.ssk-exp-number {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 58px;
    height: 52px;

    background: rgba(247,244,237,.96);

    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    color: #24354a;
}


.ssk-exp-card-title {
    margin: 0 0 7px;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    line-height: 1.15;
    font-weight: 400;

    color: #14263f;
}


.ssk-exp-category {
    margin-bottom: 10px;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;

    color: #a5742b;
}


.ssk-exp-description {
    margin: 0;

    font-size: 14px;
    line-height: 1.48;
    color: #4b5058;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}


.ssk-exp-summary {
    min-height: 42px;
    margin: 14px 0 17px;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 14px;
    line-height: 1.4;
    font-style: italic;

    color: #717171;
}


.ssk-exp-link {
    position: relative;

    display: inline-flex;
    align-items: center;
    gap: 15px;

    padding-bottom: 7px;

    font-size: 13px;
    font-weight: 700;

    color: #16283e;
    text-decoration: none;
}


.ssk-exp-link::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: 0;

    width: 100%;
    height: 1px;

    background: #b79a69;

    transform-origin: left;
    transition: transform .3s ease;
}


.ssk-exp-link:hover::after {
    transform: scaleX(.45);
}


.ssk-exp-link span {
    transition: transform .3s ease;
}


.ssk-exp-link:hover span {
    transform: translateX(5px);
}



/* =========================================================
   CTA FINAL
========================================================= */

.ssk-exp-cta {
    grid-column: span 3;

    min-height: 300px;

    padding:
        45px
        55px
        40px;

    align-self: stretch;

    border-left: 1px solid rgba(166,123,56,.6);

    display: flex;
    flex-direction: column;
    justify-content: center;

    position: relative;
    overflow: hidden;
}


.ssk-exp-cta::after {
    content: "";

    position: absolute;

    width: 380px;
    height: 380px;

    right: -120px;
    bottom: -190px;

    border-radius: 50%;

    background:
        repeating-linear-gradient(
            125deg,
            rgba(180,160,120,.08) 0,
            rgba(180,160,120,.08) 18px,
            transparent 18px,
            transparent 42px
        );

    pointer-events: none;
}


.ssk-exp-cta-line {
    width: 35px;
    height: 2px;

    margin-bottom: 24px;

    background: #aa7c2b;
}


.ssk-exp-cta h2 {
    position: relative;
    z-index: 1;

    max-width: 760px;
    margin: 0;

    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(30px, 3vw, 46px);
    line-height: 1.12;
    font-weight: 400;

    color: #14263f;
}


.ssk-exp-cta p {
    position: relative;
    z-index: 1;

    max-width: 700px;
    margin: 18px 0 26px;

    font-size: 14px;
    line-height: 1.55;
    color: #63666c;
}


.ssk-exp-cta > a {
    position: relative;
    z-index: 1;

    display: inline-flex;
    align-items: center;
    justify-content: space-between;

    width: fit-content;
    min-width: 255px;

    padding: 14px 18px;

    border: 1px solid #b79a69;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;

    color: #263750;
    text-decoration: none;

    transition:
        background .3s ease,
        color .3s ease;
}


.ssk-exp-cta > a:hover {
    background: #17385f;
    color: white;
}



/* =========================================================
   TABLETTE
========================================================= */

@media (max-width: 1180px) {

    .ssk-exp-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }


    .ssk-exp-cta {
        grid-column: span 2;
    }

}



/* =========================================================
   TABLETTE PETITE
========================================================= */

@media (max-width: 900px) {

    .ssk-exp-container {
        width: min(100% - 40px, 1500px);
    }


    .ssk-exp-header {
        grid-template-columns: 1fr;
        gap: 20px;
    }


    .ssk-exp-header-side {
        display: none;
    }


    .ssk-exp-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 45px 25px;
    }


    .ssk-exp-cta {
        grid-column: span 2;
        padding-left: 35px;
    }

}



/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .ssk-exp-section {
        padding-top:
            calc(var(--header-total-height, 80px) + 45px);
    }


    .ssk-exp-container {
        width: calc(100% - 30px);
    }


    .ssk-exp-main-title {
        font-size: 40px;
    }


    .ssk-exp-intro {
        font-size: 15px;
    }


    .ssk-exp-grid {
        grid-template-columns: 1fr;
        row-gap: 45px;
    }


    .ssk-exp-card-title {
        font-size: 22px;
    }


    .ssk-exp-description {
        -webkit-line-clamp: unset;
        display: block;
    }


    .ssk-exp-cta {
        grid-column: span 1;
        padding:
            40px
            25px;
    }

}
