/* ----------------------
Scrollbar : largeur constante + barre visible pendant la page transition
---------------------- */
html {
  scrollbar-gutter: stable;
}

/* Lenis force overflow:hidden via .lenis-stopped pendant lenis.stop(),
   ce qui masque la scrollbar. On garde la vraie barre visible. */
html.lenis.lenis-stopped {
  overflow-y: scroll;
}

/* Sélection de texte aux couleurs du site */
::selection {
  background-color: var(--_primitives---couleurs--accent);
  color: var(--_primitives---couleurs--noir-encre);
}

/* ===== Déclencheur Expertises (navbar) ===== */

.navbar_link.is-menu {
  cursor: pointer;
  user-select: none;
}

.navbar_link.is-menu .icon-1x1-xsmall {
  transition: transform 300ms ease;
}

/* Overlay ouvert : « Expertises » passe en état actif (doré) + icône retournée */
.navbar_link.is-menu.is-expertises-open {
  color: var(--color-scheme-2--accent);
}

.navbar_link.is-menu.is-expertises-open .icon-1x1-xsmall {
  transform: rotate(180deg);
}

/* ---- .button.is-contact — hover : le fond or se résorbe vers le centre, le texte vire à l'or au passage du front ---- */
.button.is-contact {
  background-color: transparent;
  color: var(--_primitives---couleurs--accent, #eec789);
  /* couleur révélée sous la nappe */
}

.button.is-contact:hover {
  background-color: transparent;
  /* neutralise le hover-bg hérité de Webflow */
}

/* contenu réel (texte en or), sous la nappe */
.button.is-contact>* {
  position: relative;
  z-index: 1;
}

/* nappe or + copie du libellé en encre, clippée, au-dessus du texte réel */
.button.is-contact::before {
  content: "Contacter le cabinet" / "";
  /* "/ ''" : ignoré par les lecteurs d'écran */
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--_primitives---couleurs--accent, #eec789);
  color: var(--_primitives---couleurs--noir-encre, #060d14);
  clip-path: inset(0 round var(--_ui-styles---radius--medium, .5rem));
  transition: clip-path .45s cubic-bezier(.66, 0, .34, 1);
  will-change: clip-path;
  /* ← pré-alloue le calque compositeur, évite le saut au 1er hover */
  pointer-events: none;
}

.button.is-contact:hover::before {
  clip-path: inset(50% round 50%);
}

/* libellé dynamique : les boutons de formulaire n'affichent pas "Contacter le cabinet" */
.button.is-contact[data-label]::before {
  content: attr(data-label) / "";
}

/* pendant la navigation : le bouton reste figé dans son état "résorbé" */
html .button.is-contact.is-navigating::before {
  transition: none;
  clip-path: inset(50% round 50%);
}

/* ===== Variante fond clair : .is-alternate → remplissage bleu profond ===== */
.button.is-contact.is-alternate {
  color: var(--color-scheme-1--accent, #142d43);
  outline: 1px solid var(--color-scheme-1--accent, #142d43);
  outline-offset: 1px;
  /* texte révélé : bleu */
}

.button.is-contact.is-alternate::before {
  background-color: var(--color-scheme-1--accent, #142d43);
  /* nappe : bleu */
  color: var(--_primitives---couleurs--blanc-cassé, #f5f3ed);
  /* copie du texte, lisible sur le bleu */
}

/* Contraste de l'icône : sombre sur page claire, claire sur le bg bleu */
[data-nav-toggle] {
  color: inherit;
}

[data-nav-toggle].nav-is-open {
  color: #F5F0E8;
}

/* -------------------------------------------------------------------
Back to top : slide depuis le bas dans #core-container + swap au survol 
-------------------------------------------------------------------- */
.btt_icon {
  transition: transform 400ms ease;
}

.btt_icon.is-2 {
  position: absolute;
  top: 1rem;
  left: 1rem;
  transform: translateY(300%);
}

.button_btt-icon-container:hover .btt_icon:not(.is-2) {
  transform: translateY(-300%);
}

.button_btt-icon-container:hover .btt_icon.is-2 {
  transform: translateY(0);
}

@media (max-width: 667px) {
  .btt_icon.is-2 {
    top: 0.5rem;
    left: 0.5rem;
    transform: translateY(300%);
  }
}

/* Neutralise l'état Current (w--current) posé par Webflow sur le lien #top */
.button_btt-icon-container.w--current {
  display: block;
  background-color: var(--color-scheme-1--foreground);
  /* #f5f3ed */
  transition: background-color 200ms ease;
}

.button_btt-icon-container.w--current:hover {
  background-color: #e9e7e2;
}

/* ---------------------------------
Expertises-marquee : masque gradient 
--------------------------------- */
.expertises_row-marquee-section {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right,
      transparent 0%,
      black 8%,
      black 92%,
      transparent 100%);
  mask-image: linear-gradient(to right,
      transparent 0%,
      black 8%,
      black 92%,
      transparent 100%);
}

/* ---------------------------------
Études de cas — overlay (déplacé depuis injectCasesCSSOnce en JS)
--------------------------------- */
.cases_overlay-wrapper {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: block !important;
  pointer-events: none;
}

.cases_overlay-wrapper:not(.is-open) .cases_overlay-backdrop {
  pointer-events: none !important;
}

.cases_overlay-wrapper.is-open {
  pointer-events: auto;
}

.cases_overlay-backdrop {
  opacity: 0;
}

.cases_overlay-panel {
  position: fixed;
  top: 2rem;
  right: 2rem;
  bottom: 2rem;
  width: min(480px, calc(100vw - 4rem));
  overflow-y: auto;
  overflow-x: hidden;
}

.cases_overlay-panel::-webkit-scrollbar {
  width: 4px;
}

.cases_overlay-panel::-webkit-scrollbar-track {
  background: transparent;
}

.cases_overlay-panel::-webkit-scrollbar-thumb {
  background: rgba(28, 43, 58, 0.25);
  border-radius: 2px;
}

.cases_overlay-panel {
  position: fixed;
  top: 2rem;
  right: 2rem;
  bottom: 2rem;
  width: min(480px, calc(100vw - 4rem));
  overflow-y: auto;
  overflow-x: hidden;
  opacity: 0;
}

/* ---------------------------------
Bannière cookies (Silktide Consent Manager)
--------------------------------- */
#stcm-wrapper {
  --boxShadow: -5px 5px 10px 0px #00000012, 0px 0px 50px 0px #0000001a;
  --fontFamily: "Source Serif 4", Georgia, serif;
  --primaryColor: #142d43;
  --backgroundColor: #f5f3ed;
  --textColor: #060D14;
  --backdropBackgroundColor: #142D4333;
  --backdropBackgroundBlur: 0px;
  --iconColor: #F5F3ED;
  --iconBackgroundColor: #142D43;
}

#stcm-wrapper #stcm-icon {
  right: 2.5% !important;
  bottom: 2.5% !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0.5rem !important;
  box-sizing: border-box !important;
  border: 1px solid #060D1426 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  z-index: 90 !important;
  transition: background-color 0.2s !important;
}

/* Même survol que le bouton retour en haut, uniquement avec une souris */
@media (hover: hover) and (pointer: fine) {
  #stcm-wrapper #stcm-icon:hover {
    background-color: #e9e7e2 !important;
  }
}

#stcm-wrapper #stcm-icon svg {
  display: block !important;
  width: 1.5rem !important;
  height: 1.5rem !important;
}

/* Lien "Get this consent manager for free" (anglais, non traduisible via la config) */
#stcm-wrapper .stcm-credit-link {
  display: none !important;
}

/* Libellés "Oui" / "Non" des interrupteurs, plus larges que "On" / "Off" */
#stcm-wrapper .stcm-toggle-off,
#stcm-wrapper .stcm-toggle-on {
  font-size: 12px !important;
  top: 10px !important;
}
