/* Page GEO retenue : les compositions des maquettes restent dans geo-studio.css.
   Proportions de la frise calées sur la capture approuvée, à toute largeur PC. */
.gs--service { overflow-anchor: none; }
.gs--service .gs-swap { padding-bottom: 0; }
.gs--service .gs-swap .gs-portal-points { padding-top: 0; }
.gs--service .gs-zoom { background: var(--hb-color-paper); }
.gs--service .gs-zoom .gs-portal-points { background: var(--hb-color-paper); }
.gs-track-slides { display: contents; }
.gs-track-controls { display: none; }
.gs-track-title-row, .gs-track-title-row > span { display: block; }
.gs--service .gs-title-accent { color: var(--hb-color-lime); font-style: normal; }
.gs--service .gs-talk .gs-title .gs-line > span { white-space: nowrap; }

/* Une question immobile pendant la frappe, puis une réponse et ses sources.
   Les variables sont pilotées par le scroll, sans transitions concurrentes. */
.gs--service .gs-talk-ask > span[aria-hidden] { display: grid; }
.gs--service .gs-talk-ask-measure, .gs--service .gs-talk-ask-ink { grid-area: 1 / 1; }
.gs--service .gs-talk-ask-measure { visibility: hidden; padding-right: .3em; }
.gs--service .gs-talk .gs-talk-wait { display: none; }
.gs--service .gs-talk-text .gs-cite { display: inline-flex; align-items: center; justify-content: center; width: 1.7em; min-width: 1.7em; height: 1.7em; padding: 0; font-size: .35em; line-height: 1; letter-spacing: 0; font-variant-numeric: tabular-nums; vertical-align: 1.43em; }
.gs--service .gs-talk.is-pinned { height: 280svh; }
.gs--service .gs-talk.is-pinned .gs-talk-chat { --reading-size: clamp(22px, 2.15vw, 34px); }
.gs--service .gs-talk-bg::after { background: linear-gradient(90deg, rgba(8,15,11,.94) 0%, rgba(8,15,11,.8) 40%, rgba(8,15,11,.22) 70%, rgba(8,15,11,.08) 100%), linear-gradient(0deg, rgba(8,15,11,.45), transparent 45%); }
.gs--service .gs-talk.is-pinned .gs-talk-answer {
  position: relative;
  margin-top: 24px;
  padding: clamp(24px, 2.5vw, 38px);
  border: 1px solid rgba(233, 237, 226, .17);
  border-radius: 24px;
  background: rgba(16, 33, 25, .76);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  opacity: var(--answer-open, 0);
  translate: 0 calc((1 - var(--answer-open, 0)) * 18px);
  clip-path: inset(0 0 var(--answer-crop, 100%) round 24px);
}
.gs--service .gs-talk.is-pinned .gs-talk-answer::before {
  content: ''; position: absolute; left: 30px; right: 30px; top: -1px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--hb-color-orange), transparent);
  transform: scaleX(var(--answer-open, 0));
}
.gs--service .gs-talk.is-pinned .gs-talk-from { margin-top: 0; margin-bottom: 18px; }
.gs--service .gs-talk.is-pinned .gs-talk-text { font-size: var(--reading-size); line-height: 1.24; }
.gs--service .gs-talk.is-pinned .gs-talk-text .gs-w {
  opacity: var(--ink, 0);
  translate: 0 var(--ink-y, 7px);
  transition: none;
}
.gs--service .gs-talk.is-pinned .gs-talk-text .gs-w:not(.gs-cite) { display: inline-block; }
.gs--service .gs-talk.is-pinned .gs-brand::after { scale: var(--sources-on, 0) 1; transition: none; }
.gs--service .gs-talk-sources { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.gs--service .gs-talk-sources li { gap: 8px; font-size: 11.5px; }
.gs--service .gs-talk-sources b { flex: none; width: 19px; height: 19px; font-size: 10px; }
.gs--service .gs-talk.is-pinned .gs-talk-sources li { transition: none; opacity: 0; }

/* Premier plan végétal, repris des feuilles détourées de l’accueil. */
.gs-talk-foliage { position: absolute; z-index: 4; inset: 0; overflow: hidden; pointer-events: none; }
.gs-foliage { position: absolute; display: block; translate: 0 var(--foliage-shift, 0px); }
.gs-foliage--base { left: 50%; bottom: -265px; width: clamp(640px, 66vw, 1050px); transform: translateX(-50%); mask-image: linear-gradient(90deg, transparent, #000 18%, #000 68%, transparent); }
.gs-foliage--left { left: -75px; bottom: -190px; width: clamp(480px, 52vw, 800px); scale: -1 1; }
.gs-foliage--right { right: -65px; bottom: -220px; width: clamp(560px, 62vw, 980px); }
.gs-foliage img { display: block; width: 100%; height: auto; transform-origin: 85% 100%; filter: brightness(.82) saturate(.85); }
.gs-foliage--base img { filter: brightness(.7) saturate(.78) blur(.65px); }
@media (prefers-reduced-motion: no-preference) {
  .gs-foliage img { animation: gs-foliage-breathe 14s ease-in-out -3s infinite alternate; animation-play-state: paused; will-change: transform; }
  .gs-foliage--left img { animation-duration: 16s; animation-delay: -8s; }
  .gs-foliage--base img { animation-duration: 19s; animation-delay: -11s; }
  .is-hero-visible .gs-foliage img { animation-play-state: running; }
  @keyframes gs-foliage-breathe { from { transform: rotate(-.65deg) translate3d(0, 3px, 0); } to { transform: rotate(.65deg) translate3d(0, -3px, 0); } }
}

@media (min-width: 1024px) {
  .gs--service .gs-talk.is-pinned .gs-talk-copy { width: min(760px, 46vw); }
  .gs--service .gs-track.is-pinned .gs-track-intro { width: 36.4vw; }
  .gs--service .gs-track.is-pinned .gs-track-panel { width: 75.1vw; }
}

/* Sans JavaScript, les six réponses restent lisibles sous la phrase. */
.gs--service:not(.is-ready) .gs-notes-side { gap: 36px; }
.gs--service:not(.is-ready) .gs-note { grid-area: auto; }

@media (max-width: 760px) {
  .gs--service [data-gs-zoom-static-mobile] .gs-zoom-pin { min-height: 0; height: auto; padding: 50px var(--hb-gutter-mobile); gap: 28px; }
  .gs--service [data-gs-mobile-slider] .gs-track-title { font-size: clamp(36px, 11.75vw, 44px); }
  .gs--service [data-gs-mobile-slider] .gs-track-title-row { white-space: nowrap; }
  .gs--service [data-gs-mobile-slider] .gs-track-title-row > span { display: inline; }
  /* Les quatre qualités se parcourent au doigt, sans bloquer le scroll vertical. */
  .gs--service [data-gs-mobile-slider] .gs-track-pin { position: relative; height: auto; overflow: hidden; }
  .gs--service [data-gs-mobile-slider] .gs-track-rail { display: block; width: 100%; height: auto; }
  .gs--service [data-gs-mobile-slider] .gs-track-intro { width: auto; max-width: none; padding: 50px var(--hb-gutter-mobile) 36px; gap: 24px; }
  .gs--service [data-gs-mobile-slider] .gs-track-slides { position: relative; display: flex; gap: 16px; padding: 0 var(--hb-gutter-mobile); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--hb-gutter-mobile); scrollbar-width: none; }
  .gs--service [data-gs-mobile-slider] .gs-track-slides::-webkit-scrollbar { display: none; }
  .gs--service [data-gs-mobile-slider] .gs-track-panel { flex: 0 0 100%; min-width: 0; width: 100%; height: auto; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto 1fr; gap: 20px; padding: 0; border: 0; scroll-snap-align: start; scroll-snap-stop: always; }
  .gs--service [data-gs-mobile-slider] .gs-track-word { grid-column: 1; grid-row: 1; margin: 0; font-size: clamp(48px, 14vw, 64px); line-height: 1; }
  .gs--service [data-gs-mobile-slider] .gs-track-pic { grid-column: 1; grid-row: 2; width: 100%; min-height: 0; aspect-ratio: 4 / 3; border-radius: 24px; }
  .gs--service [data-gs-mobile-slider] .gs-track-pic img { inset: 0; width: 100%; translate: none; }
  .gs--service [data-gs-mobile-slider] .gs-track-body { grid-column: 1; grid-row: 3; align-self: start; max-width: none; gap: 16px; }
  .gs--service [data-gs-mobile-slider] .gs-track-controls { display: none; align-items: center; justify-content: space-between; gap: 20px; padding: 26px var(--hb-gutter-mobile) 50px; }
  .gs--service [data-gs-mobile-slider].is-slider-ready .gs-track-controls { display: flex; }
  .gs-track-count { font: 500 13px/1 var(--hb-font-body); letter-spacing: .08em; color: var(--gs-paper-soft); }
  .gs-track-count > span:first-child { color: var(--hb-color-paper); }
  .gs-track-arrows { display: flex; gap: 10px; }
  .gs-track-arrows button { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1px solid rgba(233,237,226,.4); border-radius: 50%; color: var(--hb-color-paper); background: transparent; cursor: pointer; }
  .gs-track-arrows button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; }
  .gs-track-arrows .gs-track-prev svg { rotate: 180deg; }
  .gs-track-arrows button:disabled { opacity: .25; cursor: default; }
  .gs-track-arrows button:focus-visible, .gs-track-slides:focus-visible { outline: 2px solid var(--hb-color-lime); outline-offset: 4px; }
  .gs--service [data-gs-mobile-slider] .gs-track-meter { display: none; }
  .gs--service .gs-swap { padding: 0; }
  .gs--service .gs-track-word { font-size: clamp(50px, 16vw, 72px); }
  .gs--service .gs-talk-bg::after { background: linear-gradient(180deg, rgba(8,15,11,.82) 0%, rgba(8,15,11,.82) 52%, rgba(8,15,11,.48) 78%, rgba(8,15,11,.2) 100%); }
  .gs--service .gs-talk.is-pinned .gs-talk-chat { --reading-size: 20px; }
  .gs--service .gs-talk.is-pinned .gs-talk-answer { margin-top: 18px; padding: 20px; border-radius: 20px; }
  .gs--service .gs-talk.is-pinned .gs-talk-from { gap: 8px; margin-bottom: 14px; font-size: 8px; letter-spacing: .1em; }
  .gs--service .gs-talk.is-pinned .gs-talk-text { line-height: 1.25; }
  .gs--service .gs-talk-sources { gap: 10px; margin-top: 20px; }
  .gs--service .gs-talk-sources li { font-size: 10.5px; }
  .gs-foliage--left { width: 290px; left: -60px; bottom: -65px; }
  .gs-foliage--right { width: 340px; right: -75px; bottom: -75px; }
  .gs-foliage--base { width: 380px; bottom: -115px; }
}

@media (prefers-reduced-motion: reduce) {
  .gs--service .gs-talk .gs-caret { animation: none; display: none; }
}

@media (max-width: 760px) and (max-height: 700px) {
  .gs--service .gs-talk.is-pinned .gs-talk-copy { top: 94px; }
  .gs--service .gs-talk .hb-breadcrumb { margin-bottom: 18px; }
  .gs--service .gs-talk .gs-title { margin-top: 16px; }
  .gs--service .gs-talk .gs-lead { margin-top: 18px; font-size: 14px; line-height: 1.45; }
  .gs--service .gs-talk.is-pinned .gs-talk-chat { --reading-size: 18px; }
}
