/* =========================================================
   IF — Cabinet d'anticipation stratégique
   ========================================================= */

:root{
  --bg:        #0d0d0f;   /* noir légèrement charcoal */
  --bg-soft:   #131316;
  --line:      #26262b;
  --ink:       #f4f3ef;   /* blanc ivoire */
  --ink-dim:   #a7a7a8;
  --ink-faint: #6a6a6e;
  --peach:     #ffd2c2;   /* accent — peach ice */
  --peach-dim: #e9b7a6;
  --glass:     rgba(255,255,255,.045);
  --glass-brd: rgba(255,255,255,.10);
  --maxw:      1240px;
  --pad:       clamp(22px, 5vw, 80px);
  --ease:      cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }

body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Inter", system-ui, -apple-system, sans-serif;
  font-weight:400;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

a{ color:inherit; text-decoration:none; }

::selection{ background:var(--peach); color:#000; }

/* ---------- NAV ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px var(--pad);
  transition:background .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-scrolled{
  background:rgba(13,13,15,.82);
  backdrop-filter:blur(14px);
  padding:14px var(--pad);
  border-bottom:1px solid var(--line);
}
.nav__logo{ height:44px; width:auto; display:block; transition:height .4s var(--ease); }
.nav.is-scrolled .nav__logo{ height:38px; }
.nav__logo-text{
  font-family:"Fraunces", serif; font-size:26px; font-weight:400;
  letter-spacing:.06em;
}
.nav__links{ display:flex; align-items:center; gap:clamp(18px,3vw,38px); }
.nav__links a{
  font-size:13px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-dim); transition:color .25s var(--ease); position:relative;
}
.nav__links a:hover{ color:var(--ink); }
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:-6px; height:1px; width:0;
  background:var(--peach); transition:width .3s var(--ease);
}
.nav__links a:hover::after{ width:100%; }
.nav__cta{
  border:1px solid var(--line); border-radius:100px;
  padding:9px 18px; color:var(--ink)!important;
}
.nav__cta::after{ display:none; }
.nav__cta:hover{ border-color:var(--peach); }

/* ---------- HERO ---------- */
.hero{
  min-height:100svh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:120px var(--pad) 90px; position:relative;
}
.hero__inner{ width:100%; max-width:1060px; margin:0 auto; position:relative; z-index:2; }

/* visuel de fond : dégradé peach + terrain filaire animé */
.hero__terrain{
  position:absolute; inset:0; width:100%; height:100%;
  z-index:0; opacity:.55; pointer-events:none;
}
.hero__glow{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(60% 45% at 50% 8%, rgba(255,210,194,.10), transparent 70%),
    radial-gradient(50% 40% at 82% 78%, rgba(255,210,194,.08), transparent 70%),
    radial-gradient(120% 80% at 50% 120%, rgba(0,0,0,.5), transparent 60%);
}

.hero__mark{
  display:flex; justify-content:center; align-items:center;
  transition:opacity .7s var(--ease), transform .7s var(--ease), filter .7s var(--ease);
}
.hero__mark-logo{
  height:clamp(110px, 20vw, 230px); width:auto; display:block;
  filter:drop-shadow(0 20px 60px rgba(0,0,0,.5));
}
.hero__mark.is-hidden{
  opacity:0; transform:scale(.86) translateY(-10px); filter:blur(6px);
  position:absolute; pointer-events:none;
}

.hero__title{
  font-family:"Fraunces", serif;
  font-weight:400; font-style:italic;
  font-size:clamp(26px, 6.4vw, 76px);
  line-height:1.06; letter-spacing:-.01em;
  display:inline-flex; align-items:baseline; justify-content:flex-start;
  opacity:0; transform:translateY(14px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
.hero__title.is-visible{ opacity:1; transform:none; }

/* "Innovation &" garde une largeur constante ; le mot qui alterne occupe
   une largeur figée (= le mot le plus long, calculée en JS), donc
   l'espacement avec le & ne bouge jamais. */
.hero__static{ white-space:nowrap; padding-right:.34em; }
.hero__rotator{
  text-align:left; white-space:nowrap; color:var(--ink); font-style:italic;
  transition:opacity .45s var(--ease), transform .45s var(--ease), filter .45s var(--ease);
}
.hero__rotator.swap{ opacity:0; transform:translateY(12px); filter:blur(4px); }

.amp{
  font-family:"Cormorant Garamond", serif; font-style:italic; font-weight:600;
  color:var(--peach); font-size:1.12em; padding:0 .04em;
}

.hero__slogan{
  margin-top:34px;
  font-size:clamp(15px,2vw,20px); letter-spacing:.02em; color:var(--ink);
  opacity:0; transform:translateY(10px);
  transition:opacity .9s .3s var(--ease), transform .9s .3s var(--ease);
}
.hero__slogan.is-visible{ opacity:1; transform:none; }

.hero__kicker{
  margin-top:14px;
  font-size:12px; letter-spacing:.32em; text-transform:uppercase; color:var(--ink-faint);
  opacity:0; transition:opacity 1s .5s var(--ease);
}
.hero__kicker.is-visible{ opacity:1; }

.hero__cta{
  display:inline-flex; align-items:center; gap:.5em; margin-top:30px;
  padding:14px 32px; border-radius:100px; background:var(--peach); color:#1a0f0a;
  font-size:13px; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  opacity:0; transform:translateY(10px);
  transition:opacity 1s .65s var(--ease), transform 1s .65s var(--ease),
             background .25s var(--ease), gap .25s var(--ease);
}
.hero__cta.is-visible{ opacity:1; transform:none; }
.hero__cta:hover{ background:#ffe0d3; gap:.85em; }
.hero__cta span{ font-size:1.15em; }

.hero__scroll{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:12px;
  font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--ink-faint);
}
.hero__scroll-line{
  width:1px; height:46px; background:linear-gradient(var(--ink-faint), transparent);
  position:relative; overflow:hidden;
}
.hero__scroll-line::after{
  content:""; position:absolute; top:0; left:0; width:100%; height:40%;
  background:var(--peach); animation:scrollpulse 2.2s var(--ease) infinite;
}
@keyframes scrollpulse{
  0%{ transform:translateY(-100%); } 60%,100%{ transform:translateY(260%); }
}

/* ---------- SECTIONS (générique) ---------- */
.section{
  max-width:var(--maxw); margin:0 auto;
  padding:clamp(90px,13vh,160px) var(--pad);
  border-top:1px solid var(--line);
}
.section__head{ margin-bottom:clamp(48px,7vw,88px); }
.section__num{
  display:block; font-size:13px; letter-spacing:.3em; color:var(--peach); margin-bottom:16px;
}
.section__title{
  font-family:"Fraunces", serif; font-weight:300;
  font-size:clamp(30px,5.2vw,58px); line-height:1.05; letter-spacing:-.01em;
  max-width:16ch;
}
.section__intro{
  margin-top:26px; max-width:60ch;
  color:var(--ink-dim); font-size:clamp(15px,1.6vw,18.5px); line-height:1.6;
}

/* ---------- glassmorphism ---------- */
.glass{
  background:var(--glass);
  border:1px solid var(--glass-brd);
  backdrop-filter:blur(16px) saturate(1.2);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  border-radius:18px;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 30px 60px -30px rgba(0,0,0,.6);
}
/* repli si backdrop-filter non supporté : fond légèrement opaque */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .glass{ background:rgba(28,28,32,.85); }
}

/* ---------- détail button ---------- */
.btn-detail{
  align-self:flex-start; margin-top:22px;
  display:inline-flex; align-items:center; gap:.5em;
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink);
  padding:11px 20px; border-radius:100px;
  border:1px solid var(--glass-brd); background:rgba(255,210,194,.05);
  transition:background .3s var(--ease), border-color .3s var(--ease), gap .3s var(--ease);
}
.btn-detail span{ transition:transform .3s var(--ease); color:var(--peach); }
.btn-detail:hover{ background:rgba(255,210,194,.14); border-color:var(--peach); }
.btn-detail:hover span{ transform:translateX(4px); }

/* ---------- 02 · VISION ---------- */
.vision__list{ display:grid; gap:clamp(14px,1.6vw,20px); }
.vision__item{
  display:grid;
  grid-template-columns:64px minmax(150px,.9fr) 2fr;
  gap:clamp(20px,4vw,54px); align-items:start;
  padding:clamp(28px,3.4vw,42px) clamp(26px,3.4vw,44px);
}
.vision__idx{ color:var(--peach-dim); font-size:13px; letter-spacing:.2em; padding-top:.7em; }
.vision__word{
  font-family:"Fraunces", serif; font-weight:400; font-style:italic;
  font-size:clamp(26px,3.4vw,40px); line-height:1;
}
.vision__body{ display:flex; flex-direction:column; }
.vision__text{ color:var(--ink-dim); font-size:clamp(15px,1.5vw,18px); max-width:46ch; }

/* ---------- 03 · EXPERTS ---------- */
.experts__grid{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,24px);
}
.expert{
  display:flex; gap:clamp(18px,2vw,26px); align-items:flex-start;
  padding:clamp(24px,2.6vw,32px);
}
.expert__photo{
  position:relative; flex:0 0 auto;
  width:clamp(84px,11vw,128px); aspect-ratio:1;
  border-radius:16px; overflow:hidden; background:var(--bg-soft);
  border:1px solid var(--glass-brd);
}
.expert__photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter:grayscale(1) contrast(1.02); transition:filter .6s var(--ease), transform .8s var(--ease);
}
.expert:hover .expert__photo img{ filter:grayscale(0); transform:scale(1.04); }
.expert__initials{
  position:absolute; inset:0; display:none; align-items:center; justify-content:center;
  font-family:"Fraunces", serif; font-size:34px; color:var(--ink-faint); letter-spacing:.05em;
}
.expert__photo.is-empty img{ display:none; }
.expert__photo.is-empty .expert__initials{ display:flex; }
.expert__body{ padding-top:2px; }
.expert__name{
  font-family:"Fraunces", serif; font-weight:400; font-size:clamp(22px,2.6vw,30px);
}
.expert__role{
  color:var(--peach); font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  margin-top:8px; margin-bottom:16px;
}
.expert__desc{ color:var(--ink-dim); font-size:15.5px; max-width:52ch; }

/* ---------- TRUST + MARQUEE ---------- */
.trust{ margin-top:clamp(16px,2.6vw,36px); text-align:center; }
.trust__line{
  color:var(--ink-dim); font-size:clamp(15px,1.7vw,19px);
  max-width:44ch; margin:0 auto clamp(34px,5vw,52px);
}
.marquee{
  position:relative; width:100vw; left:50%; transform:translateX(-50%);
  overflow:hidden; padding:6px 0;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.marquee__track{
  display:flex; align-items:center; gap:clamp(38px,5vw,72px); width:max-content;
  animation:marquee 46s linear infinite;
}
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__item{
  display:flex; align-items:center; justify-content:center;
  font-family:"Fraunces", serif; font-weight:400;
  font-size:clamp(17px,2vw,24px); letter-spacing:.01em;
  color:var(--ink-faint); white-space:nowrap;
  opacity:.72; transition:opacity .3s var(--ease);
}
.marquee__item img{
  height:clamp(26px,3vw,38px); width:auto; max-width:150px; object-fit:contain;
  filter:brightness(0) invert(1);            /* logo -> blanc uniforme */
  opacity:.78; transition:opacity .3s var(--ease);
}
.marquee__item:hover, .marquee__item:hover img{ opacity:1; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ---------- PAGE DÉTAIL SERVICES ---------- */
.back-link{
  display:inline-flex; align-items:center; gap:.5em; margin-bottom:clamp(40px,6vw,64px);
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-dim);
  transition:color .3s var(--ease), gap .3s var(--ease);
}
.back-link span{ color:var(--peach); }
.back-link:hover{ color:var(--ink); gap:.8em; }

.detail{
  display:block;
  padding:clamp(28px,3.4vw,44px); margin-bottom:clamp(16px,2vw,22px);
  scroll-margin-top:100px;
}
.detail__head{ display:flex; flex-direction:column; gap:10px; margin-bottom:clamp(20px,2.6vw,30px); }
.detail__num{ color:var(--peach-dim); font-size:13px; letter-spacing:.28em; }
.detail__title{
  font-family:"Fraunces", serif; font-style:italic; font-weight:400;
  font-size:clamp(32px,4.4vw,52px); line-height:1;
}
.detail__list{ display:flex; flex-direction:column; gap:18px; }
.detail__item{
  display:flex; gap:16px; align-items:baseline;
  font-size:clamp(16px,1.6vw,19px); color:var(--ink);
  padding-bottom:18px; border-bottom:1px solid var(--glass-brd);
}
.detail__item:last-child{ border-bottom:0; padding-bottom:0; }
.detail__item b{ color:var(--peach); font-weight:500; font-variant-numeric:tabular-nums; }
.detail__note{ margin-top:22px; color:var(--ink-dim); font-size:15px; font-style:italic; }

/* item dépliable (chevron) */
.detail__acc > summary{ list-style:none; cursor:pointer; }
.detail__acc > summary::-webkit-details-marker{ display:none; }
.detail__item--toggle{ align-items:center; user-select:none; transition:color .25s var(--ease); }
.detail__item--toggle:hover{ color:var(--peach); }
.detail__item--toggle::after{
  content:""; margin-left:auto; flex:0 0 auto;
  width:9px; height:9px; margin-right:4px;
  border-right:2px solid var(--peach); border-bottom:2px solid var(--peach);
  transform:translateY(-2px) rotate(45deg); transition:transform .3s var(--ease);
}
.detail__acc[open] .detail__item--toggle::after{ transform:translateY(2px) rotate(-135deg); }
.detail__acc[open] > summary{ border-bottom:0; }

.detail__panel{ padding:2px 0 24px 0; animation:etsiIn .5s var(--ease); }
.detail__panel-desc{ color:var(--ink-dim); font-size:clamp(15px,1.6vw,17.5px); line-height:1.65; max-width:none; }
.detail__meta{ margin-top:14px; font-size:13.5px; color:var(--ink-faint); line-height:1.7; }
.detail__meta b{ color:var(--ink-dim); font-weight:500; letter-spacing:.03em; }

.rescards__label{
  margin:26px 0 12px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--peach-dim);
}
.rescards__note{
  display:inline; text-transform:none; letter-spacing:normal; font-size:12px;
  color:var(--ink-faint); font-style:italic;
}
.rescards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; }
.rescard{
  position:relative; display:flex; flex-direction:column; gap:8px; padding:16px 18px;
  border-radius:14px; background:var(--glass); border:1px solid var(--glass-brd);
  transition:transform .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease);
}
.rescard:hover{ transform:translateY(-3px); border-color:var(--peach); background:rgba(255,210,194,.05); }
.rescard__type{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--peach); }
.rescard__title{ font-size:15px; color:var(--ink); max-width:22ch; }
.rescard__arrow{ position:absolute; top:14px; right:16px; color:var(--ink-faint); transition:color .3s var(--ease); }
.rescard:hover .rescard__arrow{ color:var(--peach); }

/* hashtags */
.tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.tag{
  font-size:12px; letter-spacing:.02em; color:var(--peach);
  padding:6px 12px; border-radius:100px;
  background:rgba(255,210,194,.06); border:1px solid var(--glass-brd);
}

@media (max-width:860px){ .detail__panel{ padding-left:0; } }

/* ---------- FOOTER ---------- */
.footer{
  text-align:center; padding:clamp(80px,12vw,140px) var(--pad) 60px;
  border-top:1px solid var(--line);
}

/* ---------- CITATION ---------- */
.quote{ max-width:760px; margin:0 auto clamp(48px,7vw,80px); }
.quote__text{
  font-family:"Fraunces", serif; font-style:italic; font-weight:300;
  font-size:clamp(20px,2.8vw,32px); line-height:1.4; color:var(--ink);
}
.quote__cite{
  display:block; margin-top:18px;
  font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--peach);
  font-style:normal;
}
.quote__cite em{ font-style:italic; text-transform:none; letter-spacing:.02em; }

/* ---------- MODULE "ET SI…" ---------- */
.etsi{ max-width:820px; margin:0 auto clamp(20px,3vw,40px); text-align:center; }
.etsi-band{ padding-top:clamp(52px,7vh,96px); padding-bottom:clamp(36px,5vh,64px); }
.trust-band{ padding-top:clamp(24px,3.5vh,52px); }
.etsi__title{
  font-family:"Fraunces", serif; font-style:italic; font-weight:400;
  font-size:clamp(46px,9vw,104px); line-height:.95; letter-spacing:-.01em;
}
.etsi__dots{ color:var(--peach); }
.etsi__sub{
  margin:20px auto 0; max-width:38ch; color:var(--ink-dim);
  font-size:clamp(15px,1.7vw,18px);
}
.etsi__form{
  display:flex; gap:10px; margin:clamp(30px,4vw,42px) auto 0; max-width:600px;
}
.etsi__input{
  flex:1 1 auto; min-width:0;
  background:var(--glass); border:1px solid var(--glass-brd);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  color:var(--ink); font-family:inherit; font-size:16px;
  padding:16px 22px; border-radius:100px; outline:none;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.etsi__input::placeholder{ color:var(--ink-faint); }
.etsi__input:focus{
  border-color:var(--peach);
  box-shadow:0 0 0 3px rgba(255,210,194,.14);
}
.etsi__btn{
  flex:0 0 auto; cursor:pointer;
  font-family:inherit; font-size:13px; letter-spacing:.12em; text-transform:uppercase;
  color:#1a0f0a; background:var(--peach); border:0; border-radius:100px;
  padding:0 26px; display:inline-flex; align-items:center; gap:.5em;
  transition:transform .25s var(--ease), background .25s var(--ease), gap .25s var(--ease);
}
.etsi__btn:hover{ background:#ffe0d3; gap:.8em; }
.etsi__btn span{ font-size:1.1em; }

.etsi__chips{
  display:flex; flex-wrap:wrap; justify-content:center; gap:8px;
  margin:22px auto 0; max-width:640px;
}
.etsi__chip{
  cursor:pointer; font-family:inherit; font-size:12px; letter-spacing:.04em;
  color:var(--ink-dim); background:transparent;
  border:1px solid var(--glass-brd); border-radius:100px; padding:7px 14px;
  transition:color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);
}
.etsi__chip:hover{ color:var(--ink); border-color:var(--peach); background:rgba(255,210,194,.06); }

.etsi__results{
  display:grid; gap:12px; margin:clamp(30px,4vw,44px) auto 0; max-width:760px;
  text-align:left;
}
.etsi__lead{
  text-align:center; color:var(--ink-dim); font-size:14px; letter-spacing:.02em;
  margin-bottom:4px;
}
.etsi__lead b{ color:var(--peach); font-weight:500; }
.etsi__card{
  display:flex; gap:16px; align-items:baseline;
  padding:20px 24px; border-radius:16px;
  opacity:0; transform:translateY(12px);
  animation:etsiIn .6s var(--ease) forwards;
}
.etsi__card .q{
  flex:0 0 auto; font-family:"Cormorant Garamond", serif; font-style:italic;
  font-size:22px; color:var(--peach); line-height:1.2;
}
.etsi__card p{ font-size:clamp(15px,1.6vw,18px); color:var(--ink); }
.etsi__empty{ color:var(--ink-dim); font-size:15px; }
@keyframes etsiIn{ to{ opacity:1; transform:none; } }

.footer__slogan{ margin-top:20px; color:var(--ink-dim); font-size:clamp(15px,2vw,19px); }
.footer__mail{
  display:inline-block; margin-top:34px; font-size:15px; letter-spacing:.04em;
  border-bottom:1px solid var(--line); padding-bottom:4px; transition:border-color .3s var(--ease);
}
.footer__mail:hover{ border-color:var(--peach); }
.footer__legal{ margin-top:48px; font-size:12px; letter-spacing:.08em; color:var(--ink-faint); }

/* ---------- PAGE CONTACT ---------- */
.contact{
  min-height:100svh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:140px var(--pad) 80px; gap:0;
}
.contact__logo{
  height:clamp(84px,13vw,140px); width:auto;
  filter:drop-shadow(0 20px 50px rgba(0,0,0,.5));
}
.contact__catch{
  margin-top:30px;
  font-family:"Fraunces", serif; font-style:italic; font-weight:300;
  font-size:clamp(20px,3vw,34px); color:var(--ink);
}
.contact__cta{
  display:inline-flex; align-items:center; gap:.5em; margin-top:32px;
  padding:15px 34px; border-radius:100px; background:var(--peach); color:#1a0f0a;
  font-size:13px; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  transition:background .25s var(--ease), gap .25s var(--ease), transform .25s var(--ease);
}
.contact__cta:hover{ background:#ffe0d3; gap:.85em; transform:translateY(-2px); }
.contact__cta span{ font-size:1.15em; }
.contact__team{
  display:flex; gap:clamp(40px,8vw,90px); flex-wrap:wrap; justify-content:center;
  margin-top:clamp(56px,8vw,84px);
}
.person{ display:flex; flex-direction:column; align-items:center; gap:14px; }
.person__photo{
  width:clamp(96px,12vw,132px); aspect-ratio:1; border-radius:50%;
  overflow:hidden; border:1px solid var(--glass-brd); background:var(--bg-soft);
  display:block; transition:transform .4s var(--ease), border-color .4s var(--ease);
}
.person__photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter:grayscale(1); transition:filter .5s var(--ease);
}
.person:hover .person__photo{ transform:translateY(-4px); border-color:var(--peach); }
.person:hover .person__photo img{ filter:grayscale(0); }
.person__name{
  font-family:"Fraunces", serif; font-weight:400; font-size:clamp(18px,2vw,22px); color:var(--ink);
}
.person__link{
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-dim);
  transition:color .3s var(--ease);
}
.person__link span{ color:var(--peach); }
.person:hover .person__link{ color:var(--ink); }
.contact__mail{
  margin-top:clamp(56px,8vw,84px);
  font-size:clamp(15px,1.8vw,18px); letter-spacing:.02em; color:var(--ink);
  border-bottom:1px solid var(--line); padding-bottom:5px; transition:border-color .3s var(--ease);
}
.contact__mail:hover{ border-color:var(--peach); }

/* ---------- FOOTER NAV (liens internes) ---------- */
.footer__nav{
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px 26px;
  margin:40px auto 0; max-width:720px;
}
.footer__nav a{
  font-size:13px; letter-spacing:.08em; color:var(--ink-dim);
  transition:color .25s var(--ease);
}
.footer__nav a:hover{ color:var(--peach); }

/* ---------- FIL D'ARIANE ---------- */
.breadcrumb{
  display:flex; align-items:center; gap:12px; margin-bottom:clamp(30px,5vw,50px);
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint);
}
.breadcrumb a{ color:var(--ink-dim); transition:color .25s var(--ease); }
.breadcrumb a:hover{ color:var(--peach); }
.breadcrumb__sep{ color:var(--ink-faint); }
.breadcrumb [aria-current="page"]{ color:var(--ink); }

/* ---------- FAQ ---------- */
.faq{ display:grid; gap:12px; max-width:820px; }
.faq__item{ padding:6px 26px; border-radius:16px; }
.faq__item summary{
  cursor:pointer; list-style:none; padding:20px 0;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  font-family:"Fraunces", serif; font-size:clamp(17px,2vw,21px); color:var(--ink);
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{
  content:"+"; color:var(--peach); font-size:24px; line-height:1;
  transition:transform .3s var(--ease); flex:0 0 auto;
}
.faq__item[open] summary::after{ transform:rotate(45deg); }
.faq__item p{ padding:0 0 22px; color:var(--ink-dim); font-size:clamp(15px,1.6vw,17px); max-width:64ch; }
.faq__item a{ color:var(--peach); border-bottom:1px solid var(--glass-brd); }
.faq__item a:hover{ border-color:var(--peach); }

/* ---------- PROSE (mentions / confidentialité) ---------- */
.prose{ max-width:70ch; color:var(--ink-dim); font-size:16px; line-height:1.7; }
.prose h3{
  font-family:"Fraunces", serif; font-weight:400; color:var(--ink);
  font-size:clamp(19px,2.2vw,24px); margin:38px 0 12px;
}
.prose p{ margin-bottom:14px; }
.prose ul{ margin:0 0 14px 1.1em; display:grid; gap:8px; }
.prose a{ color:var(--peach); border-bottom:1px solid var(--glass-brd); }
.prose a:hover{ border-color:var(--peach); }
.prose strong{ color:var(--ink); font-weight:500; }
.prose__note{
  background:rgba(255,210,194,.06); border:1px solid var(--glass-brd);
  border-radius:12px; padding:14px 18px; font-size:14px; color:var(--ink);
}
.prose__meta{ margin-top:30px; font-size:14px; color:var(--ink-faint); }

/* ---------- PAGES CENTRÉES (404 / merci) ---------- */
.midpage{
  min-height:100svh; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  padding:140px var(--pad) 90px; max-width:820px; margin:0 auto;
}
.midpage__eyebrow{
  font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:var(--peach); margin-bottom:22px;
}
.midpage__title{
  font-family:"Fraunces", serif; font-weight:300; font-style:italic;
  font-size:clamp(34px,6vw,66px); line-height:1.08; letter-spacing:-.01em;
}
.midpage__title em{ font-style:italic; color:var(--peach); }
.midpage__text{ margin-top:24px; max-width:46ch; color:var(--ink-dim); font-size:clamp(15px,1.8vw,18px); }
.midpage__links{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px 26px; margin-top:38px;
}
.midpage__link{
  font-size:13px; letter-spacing:.08em; color:var(--ink-dim); transition:color .25s var(--ease);
}
.midpage__link:hover{ color:var(--peach); }

/* =========================================================
   NEXUS
   ========================================================= */
.nexus-intro{
  display:grid; grid-template-columns:0.95fr 1.1fr; gap:clamp(32px,5vw,72px); align-items:center;
}
.nexus-intro__text .section__title{ margin:8px 0 0; }
.nexus-note{ margin-top:22px; color:var(--ink-dim); font-size:15px; font-style:italic; }
.nexus-note em{ color:var(--peach); font-style:italic; }

.nexus-cone{
  margin:0; padding:clamp(16px,2.5vw,30px);
  border-radius:22px; background:rgba(255,255,255,.02); border:1px solid var(--line);
}
.nexus-cone svg{ width:100%; height:auto; display:block; }
.nexus-cone__cap{
  margin-top:12px; text-align:center; font-size:12px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-faint);
}
.nexus-cone__cap em{ font-style:italic; text-transform:none; letter-spacing:.02em; }

/* ---- cards thématiques (glass sur formes) ---- */
.ncards{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:clamp(16px,2vw,22px);
}
.ncard{
  position:relative; min-height:360px; border-radius:24px; overflow:hidden;
  background:#0f0f12; border:1px solid var(--line); isolation:isolate;
  transition:transform .4s var(--ease), border-color .4s var(--ease);
}
.ncard:hover{ transform:translateY(-5px); border-color:rgba(255,210,194,.4); }

/* une couleur par secteur (--c1 clair, --c2 profond) */
.ncard{ --c1:#ffb07a; --c2:#ff6a3d; }            /* défaut */
.s-industrie   { --c1:#7d95f2; --c2:#4c63d8; }   /* indigo acier */
.s-energie     { --c1:#f7b84e; --c2:#ef8322; }   /* ambre */
.s-sante       { --c1:#37c89a; --c2:#1c9f78; }   /* émeraude */
.s-mobilite    { --c1:#45c3e6; --c2:#2b8fce; }   /* cyan */
.s-finance     { --c1:#ab8cee; --c2:#7a55d6; }   /* violet */
.s-alimentation{ --c1:#b6cf54; --c2:#82a52c; }   /* lime */

.ncard__shapes{ position:absolute; inset:0; z-index:0; }
.blob{
  position:absolute; width:236px; height:236px; filter:blur(3px); opacity:.9;
  clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%);
  background:linear-gradient(150deg,var(--c1),var(--c2));
}
.blob--a{ top:-48px; right:-42px; transform:rotate(10deg); }
.blob--b{ bottom:-62px; left:-52px; width:200px; height:200px; transform:rotate(-8deg); opacity:.72; }

.ncard__panel{
  position:absolute; inset:14px; z-index:1; border-radius:18px;
  padding:26px 26px 24px; display:flex; flex-direction:column;
  background:rgba(14,14,18,.34);
  backdrop-filter:blur(26px) saturate(1.15); -webkit-backdrop-filter:blur(26px) saturate(1.15);
  border:1px solid rgba(255,255,255,.15);
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 30px 60px -30px rgba(0,0,0,.7);
}
.ncard__icon{
  position:absolute; top:22px; right:22px; width:26px; height:26px;
  color:var(--c1);
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.4));
}
.ncard__title{
  font-family:"Inter", sans-serif; font-weight:700; font-size:clamp(21px,2.2vw,26px);
  line-height:1.12; color:#fff; max-width:12ch;
}
.ncard__foot{ margin-top:auto; display:flex; flex-direction:column; gap:14px; padding-top:30px; }
.ncard__sub{ font-style:italic; color:var(--ink); font-size:14.5px; }
.ncard__pills{ display:flex; flex-wrap:wrap; gap:9px; }
.pill{
  border:1px solid rgba(255,255,255,.28); border-radius:100px; padding:6px 14px;
  font-size:12.5px; font-style:italic; color:var(--ink); white-space:nowrap;
}
.ncard__desc{ font-size:13.5px; line-height:1.55; color:rgba(244,243,239,.82); max-width:36ch; }
.ncard__link{
  display:inline-flex; align-items:center; gap:.5em;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink);
}
.ncard__link span{ color:var(--c1); transition:transform .3s var(--ease); }
.ncard:hover .ncard__link span{ transform:translateX(4px); }
.ncard:hover{ border-color:color-mix(in srgb, var(--c1) 45%, transparent); }
.ncard__link::after{ content:""; position:absolute; inset:0; }/* carte entièrement cliquable */

@media (max-width:860px){
  .nexus-intro{ grid-template-columns:1fr; }
}

/* ---------- item "réalisation" (lien vers page dédiée) ---------- */
.detail__item--link{
  cursor:pointer; align-items:center; text-decoration:none;
  transition:color .25s var(--ease), padding-left .3s var(--ease);
}
.detail__item--link:hover{ color:var(--peach); padding-left:6px; }
.detail__item--link .rlabel{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--peach-dim); }
.detail__item--link::after{
  content:"→"; margin-left:auto; color:var(--peach); flex:0 0 auto;
  transition:transform .3s var(--ease);
}
.detail__item--link:hover::after{ transform:translateX(5px); }

/* =========================================================
   RÉALISATIONS (use cases)
   ========================================================= */
.uc-block{ margin-bottom:clamp(52px,7vw,92px); }
.uc-block__title{
  font-family:"Fraunces", serif; font-style:italic; font-weight:400;
  font-size:clamp(30px,4.4vw,50px); line-height:1;
}
.uc-sub{
  margin:clamp(26px,3vw,36px) 0 16px;
  font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--peach-dim);
}
.usecases{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; }
.usecase{
  padding:16px 18px; border-radius:13px; display:flex; flex-direction:column;
  background:rgba(255,255,255,.028); border:1px solid var(--glass-brd);
  scroll-margin-top:110px; transition:border-color .4s var(--ease), transform .4s var(--ease);
}
.usecase:hover{ transform:translateY(-3px); border-color:rgba(255,210,194,.35); }
.usecase:target{ border-color:var(--peach); box-shadow:0 0 0 3px rgba(255,210,194,.12); }
.usecase__sector{ font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--peach); line-height:1.3; }
.usecase__mission{
  font-family:"Fraunces", serif; font-weight:400; font-size:clamp(15px,1.4vw,17px);
  line-height:1.22; margin:7px 0 3px;
}
.usecase__field{ font-size:12px; line-height:1.45; color:var(--ink-dim); margin-top:8px; }
.usecase__field b{
  display:block; font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-faint); font-weight:600; margin-bottom:2px;
}
.usecase__impact{ color:var(--ink); margin-top:10px; padding-top:10px; border-top:1px solid var(--glass-brd); }
.usecase__impact b{ color:var(--peach); }

/* =========================================================
   MÉTHODE — vague interactive
   ========================================================= */
.methodo{ margin:clamp(26px,4vw,44px) 0 clamp(48px,7vw,78px); }
.methodo__intro{ color:var(--ink-dim); max-width:80ch; font-size:clamp(15px,1.6vw,18px); line-height:1.6; }
.methodo__intro strong{ color:var(--ink); font-weight:500; }
.methodo__hint{ color:var(--peach-dim); font-style:italic; }
.methodo__wave{ margin-top:clamp(18px,3vw,30px); overflow-x:auto; }
.methodo__wave svg{ display:block; width:100%; min-width:640px; height:auto; }
.wv-axis{ fill:var(--ink-faint); font-family:"Inter",sans-serif; font-size:12px; letter-spacing:.03em; }
.wv-pillar{ fill:var(--peach-dim); font-family:"Fraunces",serif; font-style:italic; font-size:20px; text-anchor:middle; }
.wv-div{ stroke:var(--line); stroke-width:1; stroke-dasharray:4 7; }
.wv-path{ fill:none; stroke:rgba(255,210,194,.5); stroke-width:2.5; }
.mv{ cursor:pointer; }
.mv__dot{ fill:var(--bg-soft); stroke:var(--peach); stroke-width:2; transition:fill .25s var(--ease); }
.mv__num{ fill:var(--ink); font-family:"Fraunces",serif; font-size:20px; text-anchor:middle; dominant-baseline:central; }
.mv__label{ fill:var(--ink-dim); font-family:"Inter",sans-serif; font-size:14px; text-anchor:middle; transition:fill .25s var(--ease); }
.mv:hover .mv__dot, .mv.active .mv__dot{ fill:var(--peach); }
.mv:hover .mv__num, .mv.active .mv__num{ fill:#1a0f0a; }
.mv:hover .mv__label, .mv.active .mv__label{ fill:var(--ink); }
.mv:focus{ outline:none; }
.mv:focus .mv__dot{ stroke-width:3.5; }
.methodo__caption{
  margin-top:clamp(18px,2.5vw,26px); padding:22px 24px; border-radius:16px;
  background:rgba(255,255,255,.03); border:1px solid var(--glass-brd);
}
.methodo__cap-tag{ display:block; color:var(--peach); font-size:12px; letter-spacing:.16em; text-transform:uppercase; }
.methodo__cap-title{ font-family:"Fraunces",serif; font-style:italic; font-weight:400; font-size:clamp(20px,2.4vw,26px); margin:6px 0 8px; }
.methodo__cap-desc{ color:var(--ink-dim); font-size:clamp(15px,1.6vw,17px); line-height:1.55; max-width:78ch; }

.pillars-title{
  font-family:"Fraunces",serif; font-style:italic; font-weight:400;
  font-size:clamp(24px,3.2vw,40px); line-height:1.1;
  margin:clamp(38px,6vw,68px) 0 clamp(20px,3vw,32px);
}

/* ---------- QUI SOMMES-NOUS / bios ---------- */
.experts__more{ margin-top:clamp(28px,4vw,44px); }
.bio{ margin-top:clamp(40px,6vw,66px); max-width:76ch; }
.bio__head{ display:flex; align-items:center; gap:20px; margin-bottom:18px; }
.bio__photo{
  width:78px; height:78px; border-radius:50%; overflow:hidden; flex:0 0 auto;
  border:1px solid var(--glass-brd); background:var(--bg-soft); display:block;
}
.bio__photo img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.02); }
.bio__name{ font-family:"Fraunces",serif; font-weight:400; font-size:clamp(22px,2.6vw,30px); line-height:1.05; }
.bio__role{ color:var(--peach); font-size:12px; letter-spacing:.16em; text-transform:uppercase; margin-top:5px; }
.assoc{ margin-top:clamp(48px,7vw,80px); }
.assoc__list{ list-style:none; margin:18px 0; padding:0; display:grid; gap:14px; max-width:76ch; }
.assoc__list li{ position:relative; padding-left:26px; color:var(--ink-dim); line-height:1.6; }
.assoc__list li::before{ content:""; position:absolute; left:0; top:.62em; width:8px; height:8px; border-radius:2px; background:var(--peach); }
.assoc__list strong{ color:var(--ink); font-weight:500; }

/* =========================================================
   SERVICES — 3 volets
   ========================================================= */
.accroche{
  margin:clamp(28px,4vw,40px) 0 0; max-width:none;
  font-size:clamp(15px,1.7vw,18px); color:var(--ink-dim); line-height:1.6;
}
.accroche strong{ color:var(--ink); font-weight:500; }
.accroche a{ color:var(--peach); white-space:nowrap; margin-left:4px; border-bottom:1px solid var(--glass-brd); }
.accroche a:hover{ border-color:var(--peach); }
.volets__lead{
  margin:clamp(40px,6vw,64px) 0 clamp(18px,2.5vw,26px);
  color:var(--ink); font-size:clamp(16px,1.8vw,20px);
}
.volets__lead strong{ color:var(--peach); font-weight:500; }
.volets{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,22px); align-items:stretch; }
.volet__note{ display:block; margin-top:5px; font-size:12px; letter-spacing:.02em; color:var(--peach-dim); font-style:italic; }
.volet{
  padding:clamp(24px,2.6vw,32px); border-radius:18px; display:flex; flex-direction:column;
  background:rgba(255,255,255,.028); border:1px solid var(--glass-brd);
}
.volet--combo{ background:rgba(255,210,194,.06); border-color:rgba(255,210,194,.34); }
.volet__tag{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--peach-dim); }
.volet__name{ font-family:"Fraunces",serif; font-weight:400; font-size:clamp(21px,2.3vw,27px); line-height:1.1; margin:0 0 18px; }
.volet__who{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--peach); margin-bottom:16px; }
.volet__q{
  font-style:italic; color:var(--ink); font-size:clamp(14.5px,1.5vw,16px); line-height:1.5;
  min-height:4.4em; margin-bottom:18px; padding-left:14px; border-left:2px solid var(--peach);
  transition:opacity .4s var(--ease), transform .4s var(--ease);
}
.volet__q.is-swap{ opacity:0; transform:translateY(6px); }
.volet__list{ list-style:none; margin:0 0 clamp(20px,2.4vw,26px); padding:0; display:grid; gap:11px; }
.volet__cta{ margin-top:auto; }
.volet__list li{ position:relative; padding-left:20px; color:var(--ink-dim); font-size:14.5px; line-height:1.5; }
.volet__list li::before{ content:""; position:absolute; left:0; top:.58em; width:6px; height:6px; border-radius:2px; background:var(--peach); }
.volet__list b{ color:var(--ink); font-weight:500; }
@media (max-width:900px){ .volets{ grid-template-columns:1fr; } .volet__q{ min-height:0; } }

/* ---------- REVEAL ON SCROLL ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:600px){
  .hero__title{ flex-direction:column; align-items:center; font-size:clamp(30px,10vw,52px); }
  .hero__static{ padding-right:0; }
  .hero__rotator{ width:auto !important; text-align:center; }
}

@media (max-width:860px){
  .nav__links{ gap:16px; }
  .nav__links a:not(.nav__cta){ display:none; }
  .experts__grid{ grid-template-columns:1fr; gap:16px; }
  .vision__item{ grid-template-columns:auto 1fr; row-gap:18px; }
  .vision__body{ grid-column:1 / -1; }
  .detail{ grid-template-columns:1fr; gap:20px; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none!important; transition-duration:.001s!important; }
}

/* ============================================================
   PROFONDEUR "LOGO" — extrusion dure (ombre nette, non floutée)
   reprise de l'épaisseur 3D des lettres du logo, au survol
   ============================================================ */
.rcard, .ncard, .vbrief, .pillar-card, .volet{
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
/* cartes colorées : extrusion teintée par la couleur de la carte */
.rcard:hover, .ncard:hover{
  box-shadow:8px 10px 0 color-mix(in srgb, var(--c1) 26%, transparent);
}
/* cartes pêche (accueil, approche) */
.vbrief:hover, .pillar-card:hover{
  box-shadow:8px 10px 0 rgba(255,210,194,.16);
}
/* cartes services (pas de lift auparavant) */
.volet:hover{
  transform:translateY(-4px); border-color:rgba(255,210,194,.34);
  box-shadow:8px 10px 0 rgba(255,210,194,.14);
}

/* boutons : léger enfoncement + ombre dure */
.btn-detail, .hero__cta, .contact__cta, .etsi__btn{
  transition:background .3s var(--ease), border-color .3s var(--ease), gap .3s var(--ease),
             box-shadow .3s var(--ease), transform .3s var(--ease);
}
.btn-detail:hover, .hero__cta:hover, .contact__cta:hover{
  box-shadow:4px 5px 0 rgba(255,210,194,.22); transform:translate(-1px,-2px);
}
.etsi__btn:hover{
  box-shadow:4px 5px 0 #7a5647; transform:translate(-1px,-2px);
}

/* ---------- intro pleine largeur (accueil) ---------- */
.section__intro--wide{ max-width:none; }

/* ---------- Notre approche · cartes piliers mises en valeur ---------- */
.pillars{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(18px,2.2vw,26px); margin-top:clamp(18px,2.6vw,30px); align-items:stretch;
}
.pillar-card{
  display:flex; flex-direction:column;
  padding:clamp(30px,3.4vw,44px) clamp(26px,3vw,38px);
  border-radius:20px; transition:transform .4s var(--ease), border-color .4s var(--ease);
}
.pillar-card:hover{ transform:translateY(-5px); border-color:rgba(255,210,194,.4); }
.pillar-card__step{
  font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:var(--peach);
}
.pillar-card__name{
  font-family:"Fraunces",serif; font-weight:400; font-style:italic;
  font-size:clamp(30px,4vw,46px); line-height:1; margin:16px 0 14px;
}
.pillar-card__desc{ color:var(--ink-dim); font-size:clamp(15px,1.5vw,18px); line-height:1.6; }
@media (max-width:900px){ .pillars{ grid-template-columns:1fr; } }

/* ---------- Services · vitrine réalisations (disclosure) ---------- */
.showcase{ margin-top:clamp(34px,5vw,56px); }
.showcase__summary{
  list-style:none; cursor:pointer; display:inline-flex; align-items:baseline; gap:14px;
  flex-wrap:wrap;
  padding:13px 22px; border-radius:100px;
  border:1px solid var(--glass-brd); background:rgba(255,210,194,.05);
  transition:background .3s var(--ease), border-color .3s var(--ease);
}
.showcase__summary::-webkit-details-marker{ display:none; }
.showcase__summary:hover{ background:rgba(255,210,194,.12); border-color:var(--peach); }
.showcase__label{
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink);
}
.showcase__hint{ font-size:12px; letter-spacing:.06em; color:var(--peach); }
.showcase[open] .showcase__hint span{ display:inline-block; transform:rotate(180deg); }
.showcase__note{
  margin:22px 0 20px; max-width:70ch;
  font-size:12.5px; line-height:1.55; color:var(--ink-faint);
}
.showcase .usecases{ margin-top:0; }

/* ---------- profils : paragraphes empilés + badges ---------- */
.expert__desc + .expert__desc{ margin-top:.85em; }
.expert .badge{ margin:2px 0 14px; }
.badges{ display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 14px; }
.badges .badge{ margin:0; }

/* ---------- Réalisations · cartes glassmorph par catégorie ---------- */
.real-group{ --c1:#ffb07a; --c2:#ff6a3d; }
.rea-ecosysteme{ --c1:#45c3e6; --c2:#2b8fce; } /* cyan institutionnel */
.rea-anticip  { --c1:#ffb07a; --c2:#ff6a3d; }   /* corail (marque) */
.rea-strat    { --c1:#7d95f2; --c2:#4c63d8; }   /* indigo */
.rea-produit  { --c1:#37c89a; --c2:#1c9f78; }   /* émeraude */
.rea-structu  { --c1:#ab8cee; --c2:#7a55d6; }   /* violet */
.rea-formation{ --c1:#f7b84e; --c2:#ef8322; }   /* ambre */

.real-group__title{ display:flex; align-items:center; gap:12px; }
.real-group__title::before{
  content:""; flex:0 0 auto; width:16px; height:16px; border-radius:5px;
  background:linear-gradient(150deg,var(--c1),var(--c2));
  box-shadow:0 4px 14px -4px var(--c2);
}

/* filtres "Votre besoin ?" */
.rea-filter{ margin:clamp(14px,2.5vw,26px) 0 clamp(24px,3.4vw,40px); }
.rea-filter__q{ font-family:"Fraunces", serif; font-weight:400; font-size:clamp(19px,2.2vw,26px); color:var(--ink); margin-bottom:16px; }
.rea-filter__btns{ display:flex; flex-wrap:wrap; gap:10px; }
.rea-all{ --c1:#ffd2c2; --c2:#e9b7a6; }
.rea-chip{
  cursor:pointer; display:inline-flex; align-items:center; gap:9px;
  padding:10px 16px; border-radius:100px;
  border:1px solid var(--glass-brd); background:rgba(255,255,255,.03);
  color:var(--ink-dim); font-family:inherit; font-size:13px; line-height:1;
  transition:color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);
}
.rea-chip::before{ content:""; flex:0 0 auto; width:9px; height:9px; border-radius:3px; background:linear-gradient(150deg,var(--c1),var(--c2)); }
.rea-chip:hover{ color:var(--ink); border-color:color-mix(in srgb, var(--c1) 55%, transparent); }
.rea-chip.is-active{ color:#0d0d0f; font-weight:500; border-color:transparent; background:linear-gradient(150deg,var(--c1),var(--c2)); }
.rea-chip.is-active::before{ background:rgba(13,13,15,.5); }
.rea-empty{ color:var(--ink-dim); font-size:15px; margin-top:6px; }

.rcards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:clamp(16px,2vw,22px); margin-top:0; }
.rcard{
  position:relative; border-radius:22px; overflow:hidden; isolation:isolate;
  background:#0f0f12; border:1px solid var(--line);
  transition:transform .4s var(--ease), border-color .4s var(--ease);
}
.rcard:hover{ transform:translateY(-5px); border-color:color-mix(in srgb, var(--c1) 45%, transparent); }
.rcard__shapes{ position:absolute; inset:0; z-index:0; }
.rcard .blob{ width:190px; height:190px; opacity:.82; }
.rcard .blob--a{ top:-46px; right:-40px; }
.rcard .blob--b{ bottom:-58px; left:-50px; width:160px; height:160px; opacity:.6; }
.rcard__panel{
  position:relative; z-index:1; margin:12px; border-radius:16px;
  min-height:calc(100% - 24px); padding:22px 22px 20px;
  display:flex; flex-direction:column;
  background:rgba(14,14,18,.46);
  backdrop-filter:blur(26px) saturate(1.15); -webkit-backdrop-filter:blur(26px) saturate(1.15);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 30px 60px -30px rgba(0,0,0,.7);
}
.rcard__icon{
  position:absolute; top:20px; right:20px; width:24px; height:24px; color:var(--c1);
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.45));
}
.rcard__sector{
  display:block; padding-right:36px;
  font-size:10.5px; letter-spacing:.11em; text-transform:uppercase; color:var(--c1); line-height:1.3;
}
.rcard__mission{
  font-family:"Fraunces", serif; font-weight:400; font-size:clamp(17px,1.7vw,20px);
  line-height:1.2; margin:10px 0 0; color:#fff;
}
.rcard__methods{ font-size:12.5px; line-height:1.55; color:rgba(244,243,239,.82); margin-top:13px; }
.rcard__methods b, .rcard__impact b{
  display:block; font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-faint); font-weight:600; margin-bottom:3px;
}
.rcard__impact{
  margin-top:auto; padding-top:13px; font-size:12.5px; line-height:1.5; color:#fff;
  border-top:1px solid rgba(255,255,255,.14);
}
.rcard__impact b{ color:var(--c1); }

/* ---------- association pleine largeur ---------- */
.assoc .prose{ max-width:none; }
.assoc .assoc__list{ max-width:none; }

/* ---------- badge certification ---------- */
.badge{
  display:inline-flex; align-items:center; gap:7px; margin-top:12px;
  padding:6px 14px; border-radius:100px;
  border:1px solid rgba(255,210,194,.34); background:rgba(255,210,194,.08);
  font-size:12px; letter-spacing:.04em; color:var(--peach); line-height:1.2;
}
.badge__check{
  display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; border-radius:50%;
  background:var(--peach); color:#1a0f0a; font-size:10px; font-weight:700;
}

/* ---------- CTA centré ---------- */
.cta-center{ margin-top:clamp(34px,5vw,56px); text-align:center; }
.cta-center .btn-detail{ align-self:center; margin-top:0; }

/* ---------- Accueil · aperçu des 3 volets ---------- */
.vbriefs{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(16px,2vw,22px); margin-top:clamp(30px,4.5vw,52px); align-items:stretch;
}
.vbrief{
  display:flex; flex-direction:column;
  padding:clamp(26px,2.8vw,36px) clamp(24px,2.6vw,32px); border-radius:18px;
  transition:transform .4s var(--ease), border-color .4s var(--ease);
}
.vbrief:hover{ transform:translateY(-4px); border-color:rgba(255,210,194,.4); }
.vbrief--combo{ background:rgba(255,210,194,.06); border-color:rgba(255,210,194,.34); }
.vbrief__name{
  font-family:"Fraunces",serif; font-weight:400; font-size:clamp(20px,2.1vw,26px);
  line-height:1.12;
}
.vbrief__desc{ margin-top:12px; color:var(--ink-dim); font-size:clamp(14.5px,1.5vw,16.5px); line-height:1.55; }
.vbrief__cta{ margin-top:auto; }
@media (max-width:860px){ .vbriefs{ grid-template-columns:1fr; } }
