:root {
  --b: #31050D;
  --i: #FFFAF6;
  --line: rgba(49, 5, 13, 0.24);
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

html, body { overflow-x: clip; }

.related-services { background: var(--i); color: var(--b); padding: 110px 5vw 120px; overflow: hidden; }
.related-services-head { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:42px; }
.related-services-head h2 { margin:0; font-size:clamp(42px,6vw,88px); font-weight:400; letter-spacing:-.045em; line-height:.95; }
.related-services-head .section-label { margin:0 0 14px; }
.related-services-controls { display:flex; gap:10px; }
.related-control { width:48px; height:48px; border:1px solid currentColor; background:transparent; color:inherit; font-size:24px; cursor:pointer; }
.related-control:hover,.related-control:focus-visible { background:var(--b); color:var(--i); }
.related-services-track { display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:8px; }
.related-services-track::-webkit-scrollbar { display:none; }
.related-service { position:relative; flex:0 0 clamp(245px,25vw,360px); aspect-ratio:.72; overflow:hidden; color:var(--i); scroll-snap-align:start; text-decoration:none; background:var(--b); }
.related-service img { width:100%; height:100%; object-fit:cover; filter:grayscale(1); opacity:.78; transition:filter .5s ease, transform .7s ease, opacity .5s ease; }
.related-service::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(49,5,13,.9)); }
.related-service span,.related-service i { position:absolute; left:22px; right:18px; z-index:1; }
.related-service span { bottom:48px; font-size:22px; line-height:1.05; }
.related-service i { bottom:20px; font-size:12px; font-style:normal; letter-spacing:.14em; text-transform:uppercase; opacity:.8; }
.related-service:hover img,.related-service:focus-visible img { filter:grayscale(0); transform:scale(1.04); opacity:1; }
@media (max-width:760px){ .related-services{padding:76px 17px 84px}.related-services-head{display:block}.related-services-head h2{margin-bottom:28px}.related-services-controls{justify-content:flex-end}.related-service{flex-basis:78vw} }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 118px; }
body {
  margin: 0;
  background: var(--i);
  color: var(--b);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.45;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }

.service-page { background: var(--i); }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 10px;
  left: 10px;
  padding: 12px 16px;
  background: var(--b);
  color: var(--i);
  transform: translateY(-150%);
  transition: transform .2s;
}
.skip-link:focus { transform: none; }

.site-head {
  position: sticky;
  top: 0;
  z-index: 30;
  height: 102px;
  padding: 0 3vw;
  display: grid;
  grid-template-columns: 102px repeat(4, max-content) 1fr max-content max-content;
  gap: clamp(18px, 2.4vw, 48px);
  align-items: center;
  border-bottom: 1px solid var(--line);
  background: rgba(255,250,246,.94);
  backdrop-filter: blur(18px);
}

.head-logo { width: 52px; height: 78px; padding-top: 8px; display: flex; align-items: flex-start; }
.head-logo img { width: 52px; height: auto; }
.site-head nav { display: contents; }
.site-head nav a,
.site-head .lang,
.site-head .action {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .12em;
  white-space: nowrap;
}
.site-head .action {
  justify-self: end;
  border: 1px solid var(--b);
  padding: 13px 17px;
}
.site-head .lang { opacity: .93; }

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--b);
  background: transparent;
  font-size: 0;
}
.menu-toggle::before,
.menu-toggle::after {
  content: "";
  display: block;
  width: 17px;
  height: 1px;
  margin: 5px auto;
  background: var(--b);
  transition: .25s;
}
.menu-toggle[aria-expanded="true"]::before { transform: translateY(3px) rotate(45deg); }
.menu-toggle[aria-expanded="true"]::after { transform: translateY(-3px) rotate(-45deg); }

.mobile-menu {
  display: none;
  position: fixed;
  z-index: 25;
  inset: 102px 0 0;
  background: var(--b);
  color: var(--i);
  padding: 45px 18px 35px;
  flex-direction: column;
  overflow: auto;
}
.mobile-menu.open { display: flex; }
.mobile-menu nav { display: flex; flex-direction: column; }
.mobile-menu nav a {
  padding: 17px 0;
  border-bottom: 1px solid rgba(255,250,246,.25);
  font-size: clamp(28px, 9vw, 43px);
  line-height: .95;
  letter-spacing: -.04em;
}
.mobile-menu-foot {
  margin-top: auto;
  padding-top: 40px;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .14em;
}

.service-hero {
  min-height: calc(100svh - 102px);
  padding: 9vh 3vw 4vw;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto 1fr;
}
.service-hero small {
  position: relative;
  z-index: 2;
  margin: 0;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .21em;
}
.service-hero h1 {
  align-self: center;
  margin: 0;
  position: relative;
  z-index: 2;
  max-width: 1080px;
  font-size: clamp(76px, 10.6vw, 168px);
  line-height: .72;
  letter-spacing: -0.08em;
  font-weight: 500;
}
.service-hero h1 span { display: block; }

/* Pages de services — composition éditoriale commune */
.editorial-service-page .service-hero {
  height: calc(100svh - 102px);
  min-height: calc(100svh - 102px);
  max-height: none;
  padding: 5vh 3vw 3vw;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  isolation: isolate;
}
.editorial-service-page .service-hero .service-kicker {
  position: relative;
  z-index: 2;
  margin: 0;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .2em;
}
.editorial-service-page .service-hero h1 {
  max-width: 1240px;
  font-size: clamp(64px, 8.7vw, 132px);
  line-height: .79;
  letter-spacing: -.072em;
}
.editorial-service-page .service-ghost {
  position: absolute;
  z-index: -1;
  top: 6%;
  right: -7vw;
  width: min(52vw, 760px);
  height: auto;
  margin: 0;
  opacity: .055;
  background: transparent;
  pointer-events: none;
  transform: translateY(var(--parallax-y, 0));
}
.editorial-service-page .service-meta {
  padding-top: 22px;
  border-top: 1px solid var(--line);
  grid-template-columns: minmax(260px, 520px) minmax(260px, 520px);
  gap: 5vw;
}
.editorial-service-page .service-meta p {
  font-size: clamp(16px, 1.2vw, 20px);
  line-height: 1.45;
}
.editorial-service-page .service-hero > .service-link {
  justify-self: end;
  margin-top: 18px;
}

.service-opening-visual {
  position: relative;
  width: calc(100% - 6vw);
  height: clamp(360px, 48vw, 680px);
  margin: clamp(54px, 7vw, 110px) 3vw clamp(80px, 9vw, 140px);
  overflow: hidden;
  background: var(--b);
}
.service-opening-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) sepia(.08);
  opacity: .9;
  transition: transform .8s ease, filter .65s ease, opacity .65s ease;
}
.service-opening-visual::after {
  content: "";
  position: absolute;
  inset: 50% 0 0;
  background: linear-gradient(transparent, rgba(49,5,13,.76));
  pointer-events: none;
}
.service-opening-visual figcaption {
  position: absolute;
  z-index: 1;
  right: 28px;
  bottom: 24px;
  left: 28px;
  color: var(--i);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .17em;
}
.service-opening-visual:hover img { transform: scale(1.025); filter: grayscale(.15); opacity: 1; }

.editorial-service-page .service-section { padding: clamp(88px, 10vw, 150px) 5vw; }
.editorial-service-page .service-section-dark { background: var(--b); color: var(--i); }
.editorial-service-page .service-section-dark .service-grid { border-top: 1px solid rgba(255,250,246,.42); padding-top: 36px; }
.editorial-service-page .service-section-dark .service-copy + .service-copy { border-left: 1px solid rgba(255,250,246,.42); padding-left: 5vw; }

.service-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: end;
  gap: 32px;
}
.service-meta p {
  max-width: 620px;
  margin: 0;
  font-size: clamp(18px, 1.4vw, 28px);
  line-height: 1.35;
}

.service-hero-media {
  margin-top: 4vw;
  position: relative;
  width: min(100%, 1120px);
  height: min(46vw, 620px);
  overflow: hidden;
  background: var(--b);
}
.service-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
  opacity: .82;
  transition: transform .75s ease, filter .75s ease, opacity .75s ease;
}
.service-hero-media:hover img { transform: scale(1.03); filter: grayscale(.25); opacity: 1; }

.service-section {
  padding: 0 3vw 7vw;
}
.service-section .section-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .2em;
}
.service-section h2 {
  max-width: 1180px;
  margin: 12px 0 36px;
  font-size: clamp(48px, 7vw, 102px);
  line-height: .82;
  letter-spacing: -0.078em;
  font-weight: 500;
}

.service-grid {
  margin-top: 48px;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 5vw;
}

.service-copy h3 {
  margin: 0 0 14px;
  font-size: clamp(33px, 3.4vw, 57px);
  line-height: .95;
  letter-spacing: -.056em;
  font-weight: 500;
}
.service-copy p {
  margin: 0;
  font-size: 17px;
  line-height: 1.55;
}

.service-card {
  margin-top: 38px;
  padding: 34px 34px 34px 0;
  border-top: 1px solid rgba(49, 5, 13, 0.24);
}

.service-offers {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
}
.service-offers article {
  padding: 28px;
  background: var(--i);
}
.service-offers h3 {
  margin: 0 0 12px;
  font-size: 22px;
  letter-spacing: -.05em;
}
.service-offers p {
  margin: 0;
  font-size: 14px;
}

.service-link {
  align-self: start;
  margin-top: 8px;
  display: inline-block;
  padding-bottom: 8px;
  border-bottom: 1px solid;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .14em;
}

.sig-contact {
  padding: 9vw 4vw 10vw;
  background: var(--b);
  color: var(--i);
  border-top: 1px solid rgba(255,250,246,.3);
  scroll-margin-top: 102px;
}
.sig-contact-head {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 4vw;
  margin-bottom: 7vw;
}
.sig-contact-head small {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .17em;
}
.sig-contact-head h2 {
  margin: 0;
  font-size: clamp(64px, 8.6vw, 132px);
  line-height: .78;
  letter-spacing: -0.08em;
  font-weight: 500;
}
.sig-contact-layout {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 4vw;
}
.sig-contact-intro { max-width: 390px; font-size: 16px; line-height: 1.45; }
.sig-contact-intro strong { display: block; margin-top: 35px; font-size: 9px; text-transform: uppercase; letter-spacing: .14em; }
.sig-contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px 18px;
}
.sig-field { display: flex; flex-direction: column; gap: 9px; }
.sig-field.wide { grid-column: 1 / 3; }
.sig-field label { font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }
.sig-field input,
.sig-field select,
.sig-field textarea {
  width: 100%;
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid rgba(255,250,246,.48);
  border-radius: 0;
  background: transparent;
  color: var(--i);
  font-size: 16px;
  outline: none;
}
.sig-field select option { background: var(--i); color: var(--b); }
.sig-form-submit {
  grid-column: 2;
  justify-self: end;
  min-height: 48px;
  padding: 0 24px;
  border: 1px solid var(--i);
  background: var(--i);
  color: var(--b);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .13em;
}
.sig-form-status {
  grid-column: 1 / 3;
  min-height: 18px;
  margin: 0;
  font-size: 11px;
  opacity: .75;
}
.sig-honeypot { position: absolute!important; width: 1px!important; height: 1px!important; overflow: hidden!important; clip: rect(0 0 0 0)!important; white-space: nowrap!important; }

.sig-privacy { grid-column: 1 / 3; margin: 0; max-width: 690px; font-size: 12px; line-height: 1.5; opacity: .76; }
.sig-privacy a { text-decoration: underline; text-underline-offset: 3px; }

.site-footer {
  padding: 0 4vw 28px;
  background: var(--b);
  color: var(--i);
}
.site-footer a { text-decoration: none; }
.site-footer-partner {
  padding: 26px 0;
  border-top: 1px solid rgba(255,250,246,.28);
  border-bottom: 1px solid rgba(255,250,246,.28);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .14em;
}
.site-footer-intro {
  padding: 7vw 0 6vw;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  align-items: end;
  gap: 7vw;
}
.site-footer-logo {
  width: 155px;
  height: auto;
  aspect-ratio: 320 / 414;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.site-footer-intro p { margin: 0; font-size: clamp(46px, 6vw, 91px); line-height: .86; letter-spacing: -0.065em; }

.site-footer-grid {
  padding: 34px 0 44px;
  border-top: 1px solid rgba(255,250,246,.28);
  border-bottom: 1px solid rgba(255,250,246,.28);
  display: grid;
  grid-template-columns: .8fr 1.65fr .9fr 1fr;
  gap: 4vw;
}
.sig-footer-group h3 { margin: 0 0 25px; font-size: 8px; font-weight: 500; text-transform: uppercase; letter-spacing: .17em; opacity: .55; }
.sig-footer-group nav { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.sig-footer-group a { font-size: 13px; line-height: 1.25; transition: opacity .2s, transform .2s; }
.sig-footer-group a:hover { opacity: .58; transform: translateX(3px); }
.sig-footer-services { display: grid !important; grid-template-columns: 1fr 1fr; column-gap: 28px; }
.sig-footer-contact a:first-child { font-size: 16px; }

.site-footer-bottom {
  padding-top: 22px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 25px;
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: .13em;
}
.site-footer-legal { display: flex; gap: 22px; flex-wrap: wrap; }
.site-footer-bottom small { opacity: .55; }

.floating-tools {
  position: fixed;
  z-index: 40;
  right: 24px;
  bottom: 24px;
  display: grid;
  gap: 7px;
}

.floating-tool {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid var(--b);
  background: var(--i);
  color: var(--b);
}
.floating-tool svg { width: 23px; height: 23px; }
.floating-tool.whatsapp { background: var(--b); color: var(--i); border-color: var(--i); }

.back-to-top { opacity: 0; visibility: hidden; transform: translateY(8px); transition: .25s; }
.back-to-top.show { opacity: 1; visibility: visible; transform: none; }

.footer-toggle { width: 100%; padding: 0; border: 0; background: none; color: inherit; text-align: left; font: inherit; }

.footer-toggle:after { content: ""; }

.site-shell a:focus-visible,
.site-shell button:focus-visible,
.site-shell input:focus-visible,
.site-shell select:focus-visible,
.site-shell textarea:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .85s ease, transform .85s cubic-bezier(.2,.8,.2,1); }
.reveal.reveal-delay { transition-delay: .12s; }
.reveal.is-visible { opacity: 1; transform: none; }

.service-crumbs {
  margin-top: 5vw;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .16em;
  opacity: .75;
}

@media(max-width: 980px) {
  .site-head { grid-template-columns: 82px 1fr max-content max-content; }
  .site-head nav { display: none; }
  .site-head .action { grid-column: 3; min-height: 44px; display: flex; align-items: center; }
  .menu-toggle { display: block; grid-column: 4; }
  .service-meta { grid-template-columns: 1fr; gap: 26px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-offers { grid-template-columns: 1fr 1fr; }
  .sig-contact { padding-top: 82px; padding-bottom: 82px; }
  .sig-contact-head,
  .sig-contact-layout { grid-template-columns: 1fr; gap: 35px; }
  .sig-contact-head h2 { font-size: 58px; }
  .sig-field.wide,
  .sig-form-submit,
  .sig-form-status,
  .sig-privacy { grid-column: 1; }
  .sig-form-submit { justify-self: start; }
  .editorial-service-page .service-hero { height: calc(100svh - 102px); min-height: calc(100svh - 102px); }
  .editorial-service-page .service-meta { grid-template-columns: 1fr 1fr; gap: 34px; }
  .editorial-service-page .service-section-dark .service-copy + .service-copy { border-left: 0; border-top: 1px solid rgba(255,250,246,.42); padding: 35px 0 0; }
}

@media(max-width: 760px) {
  html { scroll-padding-top: 90px; }
  .site-head { height: 78px; padding: 0 16px; grid-template-columns: 58px 1fr max-content max-content; gap: 12px; }
  .head-logo, .head-logo img { width: 42px; }
  .site-head .lang { display: none; }
  .service-hero { min-height: calc(100svh - 78px); padding: 36px 17px 28px; }
  .service-hero h1 { width: 100%; font-size: clamp(56px, 18vw, 78px); }
  .service-meta p { font-size: 18px; }
  .service-section { padding: 90px 17px 70px; }
  .service-grid { grid-template-columns: 1fr; gap: 35px; }
  .service-offers { grid-template-columns: 1fr; }
  .service-hero-media { height: min(62vw, 430px); }
  .sig-contact { padding: 76px 17px; scroll-margin-top: 78px; }
  .sig-contact-head, .sig-contact-layout { grid-template-columns: 1fr; gap: 35px; }
  .sig-contact-form { grid-template-columns: 1fr; }
  .sig-field.wide,
  .sig-form-submit,
  .sig-form-status,
  .sig-privacy { grid-column: 1; }
  .editorial-service-page .service-hero {
    height: calc(100svh - 78px);
    min-height: calc(100svh - 78px);
    max-height: none;
    padding: 36px 17px 26px;
  }
  .editorial-service-page .service-hero h1 { font-size: clamp(45px, 13.5vw, 66px); line-height: .84; }
  .editorial-service-page .service-ghost { width: 82vw; right: -28vw; top: 18%; }
  .editorial-service-page .service-meta { grid-template-columns: 1fr; gap: 11px; padding: 17px 54px 0 0; }
  .editorial-service-page .service-meta p { font-size: 14px; }
  .editorial-service-page .service-meta p:last-child { display: none; }
  .editorial-service-page .service-hero > .service-link { justify-self: start; margin-top: 13px; }
  .service-opening-visual { width: calc(100% - 34px); height: 68vw; min-height: 290px; margin: 58px 17px 78px; }
  .service-opening-visual figcaption { right: 18px; bottom: 17px; left: 18px; line-height: 1.5; }
  .editorial-service-page .service-section { padding: 82px 17px; }
  .site-footer {
    padding: 0 17px 24px;
  }
  .site-footer-partner { gap: 25px; }
  .site-footer-intro {
    padding: 80px 0 70px;
    grid-template-columns: 1fr;
    gap: 45px;
  }
  .site-footer-logo { width: 120px; }
  .site-footer-grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .sig-footer-group { border-bottom: 1px solid rgba(255,250,246,.24); }
  .sig-footer-group nav { display: none; padding: 0 0 26px; }
  .sig-footer-group.open nav { display: flex; }
  .sig-footer-group h3 {
    margin: 0;
  }
  .sig-footer-services { grid-template-columns: 1fr; }
  .site-footer-bottom { display: block; }
  .site-footer-legal { margin-bottom: 22px; }
  .floating-tools { right: 10px; bottom: 10px; }
  .floating-tool { width: 47px; height: 47px; }
}

/* Gestion du quotidien — narration éditoriale */
.gestion-page .service-hero { min-height:calc(100svh - 102px); padding:5vh 3vw 3vw; display:grid; grid-template-rows:auto 1fr auto; isolation:isolate; }
.gestion-page .service-hero-kicker { position:relative; z-index:2; margin:0; font-size:10px; letter-spacing:.2em; text-transform:uppercase; }
.gestion-page .service-hero h1 { align-self:center; max-width:1280px; font-size:clamp(72px,8.8vw,132px); line-height:.79; letter-spacing:-.072em; }
.gestion-page .service-ghost { position:absolute; z-index:-1; top:7%; right:-7vw; width:min(52vw,760px); height:auto; opacity:.055; background:transparent; pointer-events:none; }
.gestion-page .service-hero-bottom { position:relative; z-index:2; display:grid; grid-template-columns:1fr auto; gap:5vw; align-items:end; border-top:0; padding-top:24px; }
.gestion-page .service-hero-bottom::before { content:""; position:absolute; top:0; left:0; width:52%; height:1px; background:var(--line); }
.gestion-page .service-meta { display:grid; grid-template-columns:minmax(260px,520px) minmax(260px,520px); gap:5vw; }
.gestion-page .service-meta p { font-size:clamp(16px,1.2vw,20px); line-height:1.45; }
.gestion-page .service-hero-bottom>.service-link { white-space:nowrap; align-self:end; }
.gestion-intro,.gestion-domains,.gestion-method,.gestion-trust { padding:clamp(88px,10vw,150px) 5vw; }
.gestion-intro { background:var(--b); color:var(--i); }
.gestion-intro-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); gap:8vw; align-items:end; }
.gestion-intro h2,.gestion-domains h2,.gestion-method h2,.gestion-trust h2 { margin:0; font-size:clamp(48px,6.6vw,104px); font-weight:400; letter-spacing:-.055em; line-height:.92; }
.gestion-intro-copy { max-width:620px; }
.gestion-intro-copy p { margin:0 0 24px; font-size:clamp(18px,1.45vw,23px); line-height:1.55; }
.gestion-intro .service-link { color:inherit; }
.gestion-domains { background:var(--i); color:var(--b); }
.gestion-domains-head { display:grid; grid-template-columns:.45fr 1.55fr; gap:5vw; margin-bottom:72px; }
.gestion-domain { display:grid; grid-template-columns:70px minmax(0,1fr); padding:34px 0; border-top:1px solid currentColor; }
.gestion-domain:last-child { border-bottom:1px solid currentColor; }
.gestion-domain>span { font-size:12px; letter-spacing:.18em; }
.gestion-domain>div { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr) minmax(190px,.55fr); gap:4vw; align-items:start; }
.gestion-domain h3 { margin:0; font-size:clamp(26px,2.4vw,40px); font-weight:400; letter-spacing:-.035em; line-height:1.05; }
.gestion-domain p { margin:0; font-size:17px; line-height:1.6; }
.gestion-domain small { font-size:10px; line-height:1.7; letter-spacing:.14em; text-transform:uppercase; }
.gestion-method { background:var(--b); color:var(--i); }
.gestion-method-title { max-width:1100px; margin-bottom:80px; }
.gestion-method-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,250,246,.42); border-bottom:1px solid rgba(255,250,246,.42); }
.gestion-method-grid article { min-height:340px; padding:32px 34px 38px; border-right:1px solid rgba(255,250,246,.42); display:flex; flex-direction:column; }
.gestion-method-grid article:last-child { border-right:0; }
.gestion-method-grid span { font-size:10px; letter-spacing:.18em; text-transform:uppercase; }
.gestion-method-grid h3 { margin:auto 0 20px; font-size:clamp(28px,2.5vw,42px); font-weight:400; line-height:1; letter-spacing:-.04em; }
.gestion-method-grid p { margin:0; max-width:360px; font-size:16px; line-height:1.6; }
.gestion-trust { background:var(--i); color:var(--b); }
.gestion-trust h2 { max-width:1180px; margin-bottom:76px; }
.gestion-trust-list { margin-left:25%; }
.gestion-trust-list>div { display:grid; grid-template-columns:.45fr 1fr; gap:4vw; padding:25px 0; border-top:1px solid currentColor; }
.gestion-trust-list>div:last-child { border-bottom:1px solid currentColor; }
.gestion-trust-list span { font-size:13px; letter-spacing:.14em; text-transform:uppercase; }
.gestion-trust-list p { margin:0; max-width:620px; font-size:17px; line-height:1.55; }

@media(max-width:980px){
  .gestion-page .service-hero-bottom::before { width:43%; }
  .gestion-page .service-hero { min-height:calc(100svh - 102px); }
  .gestion-page .service-hero-bottom { grid-template-columns:1fr; }
  .gestion-page .service-hero-bottom>.service-link { justify-self:start; }
  .gestion-intro-grid,.gestion-domains-head { grid-template-columns:1fr; gap:48px; }
  .gestion-domain>div { grid-template-columns:1fr 1fr; }
  .gestion-domain small { grid-column:2; }
  .gestion-method-grid { grid-template-columns:1fr; }
  .gestion-method-grid article { min-height:auto; border-right:0; border-bottom:1px solid rgba(255,250,246,.42); }
  .gestion-method-grid article:last-child { border-bottom:0; }
  .gestion-method-grid h3 { margin:70px 0 18px; }
  .gestion-trust-list { margin-left:0; }
}
@media(max-width:760px){
  .gestion-page .service-hero-bottom::before { width:38%; }
  .gestion-page .service-hero { min-height:calc(100svh - 78px); padding:36px 17px 26px; }
  .gestion-page .service-hero h1 { font-size:clamp(44px,13.4vw,62px); line-height:.84; }
  .gestion-page .service-ghost { width:82vw; right:-28vw; top:20%; }
  .gestion-page .service-meta { grid-template-columns:1fr; gap:12px; }
  .gestion-page .service-meta p:last-child { display:block; font-size:14px; line-height:1.45; max-width:280px; }
  .gestion-intro,.gestion-domains,.gestion-method,.gestion-trust { padding:82px 17px; }
  .gestion-intro h2,.gestion-domains h2,.gestion-method h2,.gestion-trust h2 { font-size:clamp(46px,14vw,66px); }
  .gestion-domains-head,.gestion-method-title,.gestion-trust h2 { margin-bottom:52px; }
  .gestion-domain { grid-template-columns:38px 1fr; padding:28px 0; }
  .gestion-domain>div { display:block; }
  .gestion-domain h3 { margin-bottom:18px; }
  .gestion-domain p { margin-bottom:22px; }
  .gestion-method-grid article { padding:28px 22px 32px; }
  .gestion-trust-list>div { grid-template-columns:1fr; gap:14px; }
}

/* Solutions entreprises — titre et surtitre sur le même axe gauche. */
.corporate-page .gestion-domains-head { display:block; }
.corporate-page .gestion-domains-head h2 { max-width:1500px; margin-top:clamp(42px,4vw,68px); }
@media(max-width:760px){
  .corporate-page .gestion-domains-head h2 { margin-top:34px; }
}

/* Gestion du quotidien — version simplifiée */
.gestion-page .service-meta { display:block; max-width:680px; }
.gestion-domain-showcase { display:grid; grid-template-columns:minmax(360px,.85fr) minmax(520px,1.15fr); gap:5vw; align-items:stretch; }
.gestion-domain-visual { position:relative; min-height:660px; margin:0; overflow:hidden; background:var(--b); }
.gestion-domain-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) sepia(.12); opacity:0; visibility:hidden; transform:scale(1.015); transition:opacity .4s ease, transform .8s ease, filter .6s ease, visibility 0s linear .4s; }
.gestion-domain-visual img.is-active { opacity:1; visibility:visible; transform:scale(1); transition-delay:0s; }
.gestion-domain-visual::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(49,5,13,.82)); }
.gestion-domain-visual figcaption { position:absolute; z-index:1; left:28px; right:28px; bottom:26px; color:var(--i); font-size:12px; letter-spacing:.16em; text-transform:uppercase; }
.gestion-domain-list { border-top:1px solid currentColor; }
.gestion-domain { display:grid; grid-template-columns:42px 1fr; gap:14px; padding:31px 0; border-bottom:1px solid currentColor; opacity:.68; cursor:pointer; transition:opacity .35s ease,padding-left .35s ease; }
.gestion-domain:last-child { border-bottom:1px solid currentColor; }
.gestion-domain:is(:hover,:focus-visible,.is-active) { opacity:1; padding-left:12px; outline:0; }
.gestion-domain>span { padding-top:6px; }
.gestion-domain>div { display:block; }
.gestion-domain h3 { margin:0 0 15px; font-size:clamp(28px,2.45vw,42px); }
.gestion-domain p { margin:0; max-width:620px; font-size:16px; line-height:1.55; }

@media(max-width:980px){
  .gestion-domain-showcase { grid-template-columns:1fr; }
  .gestion-domain-visual { min-height:520px; }
}
@media(max-width:760px){
  .gestion-domain-visual { min-height:430px; }
  .gestion-domain { grid-template-columns:32px 1fr; padding:24px 0; opacity:1; }
  .gestion-domain:is(:hover,:focus-visible,.is-active) { padding-left:0; }
  .sig-contact-head > * { min-width:0; }
  .sig-contact-head h2 { max-width:100%; font-size:clamp(42px,11.8vw,50px); line-height:.88; letter-spacing:-.065em; }
}

/* FAQ — accordéon éditorial */
.faq-section { padding:clamp(90px,10vw,150px) 5vw; background:var(--i); color:var(--b); scroll-margin-top:102px; }
.faq-head { display:grid; grid-template-columns:.45fr 1.55fr; gap:5vw; margin-bottom:clamp(62px,8vw,112px); }
.faq-head h2 { margin:0; max-width:1050px; font-size:clamp(54px,7.2vw,112px); font-weight:400; letter-spacing:-.06em; line-height:.88; }
.faq-list { margin-left:22%; border-bottom:1px solid currentColor; }
.faq-category { margin:0; padding:0 0 22px; font-size:10px; text-transform:uppercase; letter-spacing:.18em; }
.faq-category-secondary { margin-top:62px; padding-top:62px; border-top:1px solid currentColor; }
.faq-list details { border-top:1px solid currentColor; }
.faq-list summary { display:grid; grid-template-columns:58px minmax(0,1fr) 30px; gap:20px; align-items:start; padding:29px 0; cursor:pointer; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { padding-top:6px; font-size:10px; letter-spacing:.18em; }
.faq-list summary strong { max-width:920px; font-size:clamp(24px,2.25vw,36px); font-weight:400; letter-spacing:-.035em; line-height:1.08; }
.faq-list summary::after { content:"+"; justify-self:end; font-size:28px; font-weight:300; line-height:1; transition:transform .35s ease; }
.faq-list details[open] summary::after { transform:rotate(45deg); }
.faq-answer { max-width:800px; margin-left:78px; padding:0 44px 34px 0; }
.faq-answer p { margin:0 0 18px; font-size:17px; line-height:1.6; }
.faq-answer a { display:inline-block; padding-bottom:5px; border-bottom:1px solid; font-size:10px; text-transform:uppercase; letter-spacing:.14em; }
.faq-list summary:focus-visible { outline:0; }
.faq-list summary:focus-visible strong { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }

@media(max-width:980px){
  .faq-head { grid-template-columns:1fr; gap:42px; }
  .faq-list { margin-left:0; }
}
@media(max-width:760px){
  .faq-section { padding:82px 17px; scroll-margin-top:78px; }
  .faq-head { margin-bottom:52px; }
  .faq-head h2 { font-size:clamp(46px,14vw,62px); }
  .faq-category-secondary { margin-top:44px; padding-top:44px; }
  .faq-list summary { grid-template-columns:31px minmax(0,1fr) 22px; gap:10px; padding:24px 0; }
  .faq-list summary strong { font-size:24px; }
  .faq-list summary::after { font-size:24px; }
  .faq-answer { margin-left:41px; padding:0 18px 28px 0; }
  .faq-answer p { font-size:16px; }
}

/* Pages réglementaires */
.legal-content { display:grid; grid-template-columns:minmax(190px,260px) minmax(0,920px); justify-content:space-between; gap:9vw; padding:clamp(90px,10vw,150px) 5vw; background:var(--i); color:var(--b); scroll-margin-top:102px; }
.legal-toc { align-self:start; position:sticky; top:140px; }
.legal-toc>p { margin:0 0 25px; font-size:10px; text-transform:uppercase; letter-spacing:.18em; }
.legal-toc nav { display:flex; flex-direction:column; border-top:1px solid currentColor; }
.legal-toc a { padding:13px 0; border-bottom:1px solid rgba(49,5,13,.25); font-size:11px; line-height:1.35; text-transform:uppercase; letter-spacing:.11em; }
.legal-document { width:100%; }
.legal-intro { max-width:720px; margin:0 0 72px; font-size:clamp(24px,2.5vw,38px); line-height:1.2; letter-spacing:-.03em; }
.legal-document>section { position:relative; padding:38px 0 54px 72px; border-top:1px solid currentColor; scroll-margin-top:128px; }
.legal-document>section:last-child { border-bottom:1px solid currentColor; }
.legal-document section>small { position:absolute; top:47px; left:0; font-size:10px; letter-spacing:.18em; }
.legal-document h2 { margin:0 0 28px; font-size:clamp(31px,3.3vw,50px); font-weight:400; line-height:1; letter-spacing:-.045em; }
.legal-document p,.legal-document li { font-size:16px; line-height:1.7; }
.legal-document p { margin:0 0 20px; }
.legal-document ul { margin:20px 0; padding-left:20px; }
.legal-document a { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }

@media(max-width:980px){
  .legal-content { grid-template-columns:1fr; gap:72px; }
  .legal-toc { position:static; }
  .legal-toc nav { display:grid; grid-template-columns:1fr 1fr; column-gap:30px; }
}
@media(max-width:760px){
  .legal-content { display:block; padding:82px 17px; scroll-margin-top:78px; }
  .legal-toc { display:none; }
  .legal-intro { margin-bottom:52px; font-size:26px; }
  .legal-document>section { padding:30px 0 42px 40px; scroll-margin-top:96px; }
  .legal-document section>small { top:37px; }
  .legal-document h2 { font-size:34px; }
  .legal-document p,.legal-document li { font-size:15px; }
}
