:root {
  --accent: rgb(255, 156, 0);
  --ink: rgb(16, 54, 84);
  --line: #e5e7eb;
  --brandblue: rgb(16, 54, 84);
  --bg: #fff;
  --stroke: 2px;
  --easeExpo: cubic-bezier(0.16, 1, 0.3, 1);

  /* easeOutExpo-like */
}

/* angle animé pour l’arc */
@property --sweep {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

#tarteaucitronAlertBig #tarteaucitronPersonalize,
#tarteaucitronAlertBig #tarteaucitronPersonalize2,
.tarteaucitronCTAButton,
#tarteaucitron
  #tarteaucitronServices
  .tarteaucitronLine
  .tarteaucitronAsk
  .tarteaucitronAllow,
#tarteaucitron
  #tarteaucitronServices
  .tarteaucitronLine
  .tarteaucitronAsk
  .tarteaucitronDeny,
.tac_activate .tarteaucitronAllow,
#tarteaucitronRoot
  .tarteaucitronIsDenied
  .tarteaucitronAllow
  .tarteaucitronCheck::before,
#tarteaucitron
  #tarteaucitronServices
  .tarteaucitronLine
  .tarteaucitronAsk
  .tarteaucitronAllow
  span {
  background-color: var(--brandblue) !important;
  color: white !important;
}

html {
  overflow-x: hidden !important;
}

/* Full-viewport hero for the first section on inner pages. */
.middle > .heading:first-child {
  min-height: 103vh;
  min-height: 103svh;
  min-height: 103dvh;
}

@media (max-width: 600px) {
  .front-page-heading-title {
    font-size: 2.2rem !important;
    font-weight: 400 !important;
  }
  .front-page-heading-subtitle {
    font-size: 1rem !important;
  }

  .expert-quote-text {
    font-size: 1.2rem !important;
  }
  .expert-quote-head__name span {
    font-size: 1rem !important;
  }
}

/* Viewport du slider */
.text-with-image__slider .twis-viewport {
  position: relative;
  overflow: hidden;
  width: 100%; /* On détecte les swipes horizontaux sans bloquer le scroll vertical */
  touch-action: pan-y;
}

/* Piste + slides */
.text-with-image__slider .text-with-image__list {
  display: flex;
  flex-wrap: nowrap;
  position: relative;
  align-items: flex-start; /* évite le stretch => height dynamique fiable */

  left: 0; /* animé en jQuery */
  will-change: left;
  max-width: none !important; /* neutralise les max-width “container” du thème */
}
.text-with-image__slider .text-with-image__item {
  flex: 0 0 auto; /* la largeur est pilotée par JS (flex-basis en px) */
  width: 100%;
  max-width: none !important; /* idem */
  margin: 0;
  box-sizing: border-box;
}

/* Contrôles */
.text-with-image__slider .twis-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  cursor: pointer;
  line-height: 44px;
  text-align: center;
  user-select: none;
}
.text-with-image__slider .twis-prev {
  left: 8px;
}
.text-with-image__slider .twis-next {
  right: 8px;
}
.text-with-image__slider .twis-arrow:focus {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
@media (hover: hover) {
  .text-with-image__slider .twis-arrow:hover {
    background: rgba(0, 0, 0, 0.65);
  }
}

.text-with-image__slider .twis-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 8px;
  display: flex;
  justify-content: center;
  gap: 8px;
  z-index: 2;
}
.text-with-image__slider .twis-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.5);
  text-indent: -9999px;
  cursor: pointer;
}
.text-with-image__slider .twis-dot.is-active {
  background: rgba(255, 255, 255, 1);
}
/* Empêche le débordement horizontal en alignant la piste avec le viewport */
.text-with-image__slider {
  padding: 0 30px;
  box-sizing: border-box;
  --twis-slider-max: 960px;
  --twis-nav-out: clamp(
    0px,
    calc((100vw - var(--twis-slider-max)) / 2 - 32px),
    64px
  );
}
.page-type-cv .text-with-image__slider {
  --twis-slider-max: 1060px;
}
.text-with-image__slider .text-with-image__list.section-text-image {
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
  max-width: none !important; /* neutralise les contraintes de layout existantes */
}
@media (max-width: 1023px) {
  .text-with-image__slider {
    padding: 0 20px;
  }
}

/* Owl Carousel overrides for text-with-image slider */
.text-with-image__slider .text-with-image__list.owl-carousel {
  display: block;
  flex-wrap: nowrap;
  position: relative;
  left: auto;
  will-change: auto;
}
.text-with-image__slider .owl-nav {
  position: absolute;
  top: 50%;
  left: calc(-1 * var(--twis-nav-out));
  right: calc(-1 * var(--twis-nav-out));
  margin: 0;
  pointer-events: none;
}
.text-with-image__slider .owl-nav button.owl-prev,
.text-with-image__slider .owl-nav button.owl-next {
  pointer-events: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  cursor: pointer;
  line-height: 44px;
  text-align: center;
  user-select: none;
}
.text-with-image__slider .owl-nav button.owl-prev {
  left: 8px;
}
.text-with-image__slider .owl-nav button.owl-next {
  right: 8px;
}
.text-with-image__slider .owl-nav button.owl-prev:focus,
.text-with-image__slider .owl-nav button.owl-next:focus {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
@media (hover: hover) {
  .text-with-image__slider .owl-nav button.owl-prev:hover,
  .text-with-image__slider .owl-nav button.owl-next:hover {
    background: rgba(0, 0, 0, 0.65);
  }
}
.text-with-image__slider .owl-dots {
  margin-top: 12px;
}

/* Marquee: unified dark style for all pages except home */
body:not(.home) .marquee-section {
}
body:not(.home) .marquee-section .head-block-center {
  color: rgb(20, 20, 20);
  font-size: 24px;
}
body:not(.home) .marquee-section .marquee-wrapper {
  padding: 16px 0;
}
body:not(.home) .marquee-section .marquee-wrapper:before,
body:not(.home) .marquee-section .marquee-wrapper:after {
  content: none;
  background: none;
}

/* WPCF7: keep error tips from shifting layout */
.wpcf7-form-control-wrap {
  position: relative;
}

.wpcf7-not-valid-tip {
  position: absolute !important;
  top: -18px;
  left: 0;
  margin: 0;
  padding: 0;
  background: transparent !important;
  font-size: 12px;
  line-height: 1.2;
  width: auto;
  pointer-events: none;
}

/* jQuery validate labels: keep them from shifting inputs */
form label.error,
label.error {
  position: absolute !important;
  top: -18px !important;
  left: 17px !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  font-weight: 400 !important;
  height: 0 !important;
  overflow: visible !important;
  pointer-events: none !important;
  white-space: nowrap !important;
}

.form-group label.is-invalid,
.form-group .is-invalid label {
  position: absolute !important;
  top: -18px !important;
  left: 17px !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  font-weight: 400 !important;
  height: 0 !important;
  overflow: visible !important;
  pointer-events: none !important;
  white-space: nowrap !important;
  color: #c80000 !important;
}

.form-group,
.form-group > p,
.wpcf7-form .form-group,
.wpcf7-form p {
  position: relative;
}

/* Override legacy level-scale background image and sizing to show inline SVG */
.level-scale__block {
  height: auto !important;
  min-height: 0;
  text-align: center;
}
.level-scale__block::before {
  display: none !important;
  background-image: none !important;
  width: 0;
  height: 0;
}
.level-scale__block svg {
  display: inline-block;
  max-width: 100%;
  height: auto;
}
