.navbar-logo {
  width: 230px !important;
  height: 70px !important;
  display: flex !important;
  align-items: center !important;
}

.navbar-logo-link {
  width: 230px !important;
  height: 70px !important;
  display: flex !important;
  align-items: center !important;
  transform: translateY(4px);
}

.navbar-logo-default.phcom-logo,
.navbar-logo-inverse.phcom-logo {
  width: 230px !important;
  height: auto !important;
  max-height: 60px !important;
  object-fit: contain !important;
}

/* Tablette / petit écran desktop */
@media (max-width: 1199px) {
  .navbar-logo,
  .navbar-logo-link {
    width: 175px !important;
    height: 54px !important;
  }

  .navbar-logo-link {
    transform: translateY(-15px) !important;
    align-items: center !important;
  }

  .navbar-logo-default.phcom-logo,
  .navbar-logo-inverse.phcom-logo {
    width: 175px !important;
    max-height: 46px !important;
  }
}

/* Smartphone */
@media (max-width: 767px) {
  .navbar-logo,
  .navbar-logo-link {
    width: 170px !important;
    height: 42px !important;
  }

  .navbar-logo-link {
    transform: translateY(-7px) !important;
    align-items: center !important;
  }

  .navbar-logo-default.phcom-logo,
  .navbar-logo-inverse.phcom-logo {
    width: 170px !important;
    max-height: 40px !important;
  }
}

/* PHCOM - logo réduit quand le menu est sticky / stuck */
@media (min-width: 1200px) {
  html.rd-navbar-stuck .navbar-logo,
  html.rd-navbar-stuck .navbar-logo-link {
    width: 175px !important;
    height: 46px !important;
  }

  html.rd-navbar-stuck .navbar-logo-link {
    transform: translateY(2px) !important;
    align-items: center !important;
  }

  html.rd-navbar-stuck .navbar-logo-default.phcom-logo,
  html.rd-navbar-stuck .navbar-logo-inverse.phcom-logo {
    width: 175px !important;
    height: auto !important;
    max-height: 40px !important;
    object-fit: contain !important;
  }
}



/* Boutons PHCOM uniquement */

.btn-primary {
  background-color: #1B8CBF !important;
  border-color: #1B8CBF !important;
  color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: #126B94 !important;
  border-color: #126B94 !important;
  color: #fff !important;
}

.btn-secondary {
  background-color: #A8C63A !important;
  border-color: #A8C63A !important;
  color: #162633 !important;
}

.btn-secondary:hover,
.btn-secondary:focus {
  background-color: #8FB331 !important;
  border-color: #8FB331 !important;
  color: #162633 !important;
}

.btn-dark {
  background-color: #162633 !important;
  border-color: #162633 !important;
  color: #fff !important;
}

.btn-dark:hover,
.btn-dark:focus {
  background-color: #243647 !important;
  border-color: #243647 !important;
  color: #fff !important;
}

/* PHCOM - corrections couleurs restantes */
h1 a:hover,
h2 a:hover,
h3 a:hover,
h4 a:hover,
h5 a:hover,
h6 a:hover,
.link-inherit:hover,
.context-dark a:not([class]) {
  color: #1B8CBF !important;
}

.context-dark a:not([class]):hover {
  color: #126B94 !important;
}

.page-loader-circle {
  stroke: #1B8CBF !important;
}

.bg-accent,
.bg-primary {
  background-color: #1B8CBF !important;
}

.bg-secondary,
.bg-accent-secondary {
  background-color: #A8C63A !important;
}

[class*='overlay-primary']::before {
  background-color: #1B8CBF !important;
}

[class*='overlay-secondary']::before {
  background-color: #A8C63A !important;
}

/* PHCOM - hover menu : seulement le border/trait */
.rd-navbar .navbar-navigation-root-link:hover,
.rd-navbar .navbar-navigation-root-link:focus,
.rd-navbar .navbar-navigation-root-item:hover > .navbar-navigation-root-link,
.rd-navbar .navbar-navigation-root-item.active > .navbar-navigation-root-link {
  color: inherit !important;
}

/* Trait / border hover en vert PHCOM */
.rd-navbar .navbar-navigation-root-link::before,
.rd-navbar .navbar-navigation-root-link::after {
  background-color: #A8C63A !important;
  border-color: #A8C63A !important;
}


.page-loader-inner-side-1 {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.page-loader-logo {
  display: block !important;
  width: 160px !important;
  max-width: 160px !important;
  height: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 10 !important;
}

/* CTA vidéo au-dessus du footer */
.phcom-footer-cta {
  padding: 10% 0;
}

.phcom-footer-logo img {
  max-width: 150px;
  height: auto;
}

/* Footer compact */
.phcom-footer-compact {
  padding-top: 38px;
  padding-bottom: 24px;
}

.phcom-footer-compact h6 {
  margin-bottom: 12px;
}

.phcom-footer-compact .small {
  line-height: 1.5;
}

/* Newsletter */
.phcom-newsletter-form {
  display: flex;
  gap: 10px;
  max-width: 560px;
}

.phcom-newsletter-form .form-inline-group {
  flex: 1;
}

.phcom-newsletter-form .form-control {
  width: 100%;
  min-width: 0;
}

.phcom-newsletter-form .btn {
  white-space: nowrap;
}

/* Logos + réseaux */
.phcom-footer-links-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.12);
}

.phcom-partners-inline {
  display: flex;
  gap: 10px;
  align-items: center;
}

.phcom-partner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 105px;
  height: 55px;
  padding: 7px;
  background: #fff;
  border-radius: 7px;
}

.phcom-partner img {
  max-width: 100%;
  max-height: 40px;
}

.phcom-social-block {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  font-size: 14px;
}

.phcom-social-block span {
  opacity: .75;
  white-space: nowrap;
}

/* Bas du footer */
.phcom-footer-compact .footer-divider {
  margin: 20px 0 14px;
}

.phcom-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.phcom-footer-bottom .rights {
  font-size: 13px;
  color: rgba(255,255,255,.62);
  white-space: nowrap;
}

.phcom-legal-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 13px;
}

.phcom-legal-links li:not(:last-child)::after {
  content: "|";
  margin: 0 10px;
  color: rgba(255,255,255,.28);
}

.phcom-legal-links a {
  color: rgba(255,255,255,.68);
}

.phcom-legal-links a:hover {
  color: #fff;
}

/* Responsive */
@media (max-width: 991px) {
  .phcom-footer-links-row,
  .phcom-footer-bottom {
    flex-direction: column;
    text-align: center;
  }

  .phcom-legal-links {
    justify-content: center;
  }

  .phcom-footer-bottom .rights {
    white-space: normal;
  }
}

@media (max-width: 575px) {
  .phcom-footer-cta {
    padding: 80px 0;
  }

  .phcom-newsletter-form {
    display: block;
  }

  .phcom-newsletter-form .btn {
    width: 100%;
    margin-top: 10px;
  }

  .phcom-partners-inline {
    flex-wrap: wrap;
    justify-content: center;
  }

  .phcom-partner {
    width: 95px;
    height: 50px;
  }
}

.section.footer.phcom-footer-compact {
  padding-top: 35px !important;
  padding-bottom: 22px !important;
}

.phcom-footer-compact .row-30 {
  row-gap: 20px;
}

.phcom-footer-links-row {
  margin-top: 18px;
  padding-top: 16px;
}

.phcom-footer-compact .footer-divider {
  margin: 16px 0 12px;
}

/* Bloc PHCom Team - effet forme organique sans zoom image */
.phcom-team-bleed {
  overflow: hidden;
}

.phcom-team-mask {
  display: block;
  width: 108%;
  max-width: none;
  aspect-ratio: 1 / 1;
  margin-left: -14%;
  overflow: hidden;
  border-radius: 42% 58% 63% 37% / 48% 38% 62% 52%;
  animation: phcomTeamLava 9s ease-in-out infinite;
  will-change: border-radius;
}

.phcom-team-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: none !important;
}

@keyframes phcomTeamLava {
  0% {
    border-radius: 42% 58% 63% 37% / 48% 38% 62% 52%;
  }

  20% {
    border-radius: 58% 42% 48% 52% / 36% 64% 42% 58%;
  }

  40% {
    border-radius: 35% 65% 57% 43% / 60% 40% 55% 45%;
  }

  60% {
    border-radius: 62% 38% 35% 65% / 45% 65% 35% 55%;
  }

  80% {
    border-radius: 48% 52% 68% 32% / 56% 36% 64% 44%;
  }

  100% {
    border-radius: 42% 58% 63% 37% / 48% 38% 62% 52%;
  }
}

@media (max-width: 767px) {
  .phcom-team-mask {
    width: 88%;
    max-width: 420px;
    margin: 0 auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .phcom-team-mask {
    animation: none;
  }
}


/* Bloc podcast PHCom */
.phcom-podcast-section {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.phcom-podcast-section::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 4%;
  left: 50%;
  width: 92%;
  height: 88%;
  background: linear-gradient(
    135deg,
    rgba(27, 140, 191, .34),
    rgba(27, 140, 191, .24) 60%,
    rgba(168, 198, 58, .10)
  );
  border-radius: 46% 54% 58% 42% / 45% 50% 50% 55%;
  transform: translateX(-50%) scale(1.02) rotate(-1deg);
  animation: phcomBlob 16s ease-in-out infinite;
  will-change: border-radius, transform;
}

.phcom-podcast-section .container {
  position: relative;
  z-index: 1;
}

.phcom-podcast-left {
  width: 100%;
  max-width: 340px;
}

.phcom-podcast-wave {
  display: block;
  width: 100%;
  max-width: 330px;
  margin-top: 24px;
  margin-bottom: 24px;
}

@keyframes phcomBlob {
  0% {
    border-radius: 46% 54% 58% 42% / 45% 50% 50% 55%;
    transform: translateX(-50%) translateY(0) scale(1.02) rotate(-1deg);
  }

  25% {
    border-radius: 55% 45% 48% 52% / 40% 58% 42% 60%;
    transform: translateX(-50%) translateY(2%) scale(1.06) rotate(1deg);
  }

  50% {
    border-radius: 40% 60% 56% 44% / 58% 42% 60% 40%;
    transform: translateX(-50%) translateY(-1%) scale(1.09) rotate(-1deg);
  }

  75% {
    border-radius: 60% 40% 42% 58% / 47% 62% 38% 53%;
    transform: translateX(-50%) translateY(2%) scale(1.05) rotate(1deg);
  }

  100% {
    border-radius: 48% 52% 62% 38% / 55% 40% 60% 45%;
    transform: translateX(-50%) translateY(0) scale(1.03) rotate(-1deg);
  }
}

@media (max-width: 767px) {
  .phcom-podcast-section::before {
    top: 3%;
    left: 50%;
    right: auto;
    bottom: auto;
    width: 135%;
    height: 94%;
    transform: translateX(-50%) scale(1.02) rotate(-1deg);
  }

  .phcom-podcast-left {
    max-width: 260px;
  }

  .phcom-podcast-wave {
    max-width: 240px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .phcom-podcast-section::before {
    animation: none;
  }
}

/* Bloc téléphone PHCom */
.phcom-phone-visual {
  position: relative;
  display: block;
  width: 100%;
  height: 520px;
  overflow: visible;
}

.phcom-phone-bg,
.phcom-phone-img {
  display: block;
  margin: 0 !important;
}

.phcom-phone-bg {
  position: absolute;
  z-index: 0;
  top: 48%;
  left: 50%;
  width: 105%;
  max-width: 760px;
  height: auto;
  transform: translate(-50%, -50%) rotate(0deg);
  animation: phcomPhoneBgRotate 55s linear infinite;
  transform-origin: center center;
  pointer-events: none;
}

.phcom-phone-img {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  width: 80%;
  max-width: 460px;
  height: auto;
  transform: translate(-50%, -50%);
}

@keyframes phcomPhoneBgRotate {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

@media (max-width: 991px) {
  .phcom-phone-visual {
    height: 430px;
  }

  .phcom-phone-bg {
    top: 48%;
    width: 110%;
  }

  .phcom-phone-img {
    width: 70%;
    max-width: 400px;
  }
}

@media (max-width: 767px) {
  .phcom-phone-visual {
    height: 360px;
    margin-top: 10px;
  }

  .phcom-phone-bg {
    top: 48%;
    width: 120%;
    max-width: 440px;
  }

  .phcom-phone-img {
    width: 70%;
    max-width: 330px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .phcom-phone-bg {
    animation: none;
  }
}


/* Flèche retour en haut - vert PHCom */
.to-top {
  background-color: #A8C63A !important;
  border-color: #A8C63A !important;
  color: #162633 !important;
}

.to-top:hover,
.to-top:focus {
  background-color: #8FB331 !important;
  border-color: #8FB331 !important;
  color: #162633 !important;
}

/* Icônes des 4 services - vert PHCom */
.blurb-icon,
.blurb-icon::before {
  color: #A8C63A !important;
}

.blurb:hover .blurb-icon,
.blurb:hover .blurb-icon::before {
  color: #8FB331 !important;
}

/* Étoiles avis clients - vert PHCom */
.quote-rating .rating-fill .int-star,
.quote-rating .rating-fill .int-star::before {
  color: #A8C63A !important;
}

.quote-rating .rating-empty .int-star,
.quote-rating .rating-empty .int-star::before {
  color: rgba(168, 198, 58, 0.25) !important;
}

/* Numéro de téléphone en haut à droite - PHCom */
.navbar-info-link {
  color: #162633 !important;
}

.navbar-info-link .navbar-info-icon,
.navbar-info-link .navbar-info-icon::before {
  color: #A8C63A !important;
}

/* Hover téléphone */
.navbar-info-link:hover,
.navbar-info-link:focus {
  color: #8FB331 !important;
}

.navbar-info-link:hover .navbar-info-icon,
.navbar-info-link:focus .navbar-info-icon,
.navbar-info-link:hover .navbar-info-icon::before,
.navbar-info-link:focus .navbar-info-icon::before {
  color: #8FB331 !important;
}


/* Si l’icône est générée via un pseudo-élément */
.ui-to-top::before,
.ui-to-top::after {
  color: #162633 !important;
}

/* PHCOM - cacher uniquement le téléphone sur petit desktop */
@media (min-width: 1200px) and (max-width: 1450px) {
  .rd-navbar .navbar-info-link {
    display: none !important;
  }
}




/* Diagnostic hero */
.phcom-diagnostic-hero {
  position: relative;
  overflow: hidden;
  padding: 80px 0 65px;
  min-height: 450px;
}

.phcom-diagnostic-hero .container {
  position: relative;
  z-index: 2;
}

.phcom-diagnostic-layout {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.phcom-diagnostic-content {
  position: relative;
  z-index: 2;
  flex: 1 1 auto;
  max-width: none;
}

.phcom-diagnostic-visual {
  flex: 0 0 36%;
  padding-left: 50px;
  text-align: right;
}

.phcom-diagnostic-tablet {
  display: block;
  width: 100%;
  max-width: 430px;
  height: auto;
  margin-left: auto;
}

.phcom-diagnostic-hero .phcom-diagnostic-content h1 {
  margin-bottom: 0 !important;
  font-size: calc(1.4125rem + 1.95vw) !important;
  line-height: 1.2 !important;
  font-weight: 400 !important;
  color: #171724 !important;
}

@media (min-width: 1200px) {
  .phcom-diagnostic-hero .phcom-diagnostic-content h1 {
    font-size: 2.875rem !important;
  }
}

.phcom-diagnostic-hero .phcom-diagnostic-content h1 strong {
  font-weight: 500 !important;
  color: #1B8CBF;
}

.phcom-diagnostic-content .lead {
  font-size: clamp(1.05rem, 1.35vw, 1.35rem);
  line-height: 1.45;
  color: #171724;
}

.phcom-diagnostic-arrow {
  position: absolute;
  left: 0;
  bottom: 0;
  top: auto !important;
  width: 170px;
  max-width: 18vw;
  z-index: 10;
  pointer-events: none;
}

@media (max-width: 991px) {
  .phcom-diagnostic-hero {
    padding: 65px 0 45px;
  }

  .phcom-diagnostic-layout {
    display: block;
  }

  .phcom-diagnostic-visual {
    padding-left: 0;
    margin-top: 35px;
    text-align: center;
  }

  .phcom-diagnostic-tablet {
    width: 82%;
    max-width: 430px;
    margin: 0 auto;
  }

  .phcom-diagnostic-arrow {
    width: 115px;
    max-width: none;
    left: 0;
    bottom: 0;
  }
}

@media (max-width: 575px) {
  .phcom-diagnostic-hero {
    padding: 50px 0 35px;
  }

  .phcom-diagnostic-visual {
    margin-top: 30px;
  }

  .phcom-diagnostic-tablet {
    width: 92%;
    max-width: 360px;
    margin: 0 auto;
  }

  .phcom-diagnostic-arrow {
    width: 90px;
    left: 0;
    bottom: 0;
  }
}


/* Diagnostic result */
.phcom-diagnostic-result-box {
  position: relative;
  overflow: hidden;
  padding: 70px 60px 75px;
  text-align: center;
  isolation: isolate;
}

.phcom-diagnostic-result-box::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 35px;
  left: 35px;
  right: 35px;
  bottom: 35px;
  background: rgba(27, 140, 191, .10);
  border-radius: 55px;
}

.phcom-diagnostic-result-content {
  position: relative;
  z-index: 2;
  max-width: 900px;
  margin: 0 auto;
}

.phcom-diagnostic-result-content h2 {
  font-weight: 700;
  color: #000;
}

.phcom-diagnostic-result-title {
  font-size: calc(1.35rem + 1.2vw);
  line-height: 1.2;
  font-weight: 400;
  color: #000;
}

@media (min-width: 1200px) {
  .phcom-diagnostic-result-title {
    font-size: 2.25rem;
  }
}

.phcom-diagnostic-result-comment {
  max-width: 760px;
  margin: 0 auto;
  font-size: calc(1.275rem + .3vw);
  line-height: 1.28;
  color: #000;
}

@media (min-width: 1200px) {
  .phcom-diagnostic-result-comment {
    font-size: 1.5rem;
  }
}

.phcom-diagnostic-result-btn {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-width: 520px;
  padding: 22px 48px;
  background: #1B8CBF;
  border-radius: 28px;
  color: #fff !important;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none !important;
  box-shadow: 0 18px 35px rgba(27, 140, 191, .20);
}

.phcom-diagnostic-result-btn:hover,
.phcom-diagnostic-result-btn:focus {
  background: #126B94;
  color: #fff !important;
}

.phcom-diagnostic-result-btn i {
  font-size: 1.3rem;
  flex: 0 0 auto;
}

.phcom-diagnostic-result-man {
  position: absolute;
  left: 45px;
  bottom: 28px;
  z-index: 1;
  width: 190px;
  max-width: 22%;
  height: auto;
  pointer-events: none;
}

@media (max-width: 991px) {
  .phcom-diagnostic-result-box {
    padding: 55px 35px 210px;
  }

.phcom-diagnostic-result-box::before {
    top: 10px;
    left: 0;
    right: 0;
    bottom: 25px;
    border-radius: 42px;
  }

  .phcom-diagnostic-result-btn {
    min-width: 0;
    width: auto;
    max-width: 100%;
    padding: 20px 34px;
    font-size: 1.15rem;
  }

  .phcom-diagnostic-result-man {
    left: 50%;
    bottom: 18px;
    width: 170px;
    max-width: 55%;
    transform: translateX(-50%);
  }
}

@media (max-width: 575px) {
  .phcom-diagnostic-result-box {
    padding: 45px 20px 190px;
  }

  .phcom-diagnostic-result-box::before {
    top: 0;
    left: -5px;
    right: -5px;
    bottom: 20px;
    border-radius: 32px;
  }

  .phcom-diagnostic-result-btn {
    display: flex;
    width: 100%;
    padding: 18px 22px;
    gap: 10px;
    font-size: 1rem;
  }

  .phcom-diagnostic-result-man {
    width: 150px;
  }
}


.phcom-news-section {
  padding-top: 80px !important;
}

      /* News PHCom - léger complément au template */
      .phcom-news-post .post-img-link {
        flex: 0 0 40%;
      }
.phcom-news-post .post-img-link img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.phcom-news-post .post-text {
  display: -webkit-box;
  -webkit-line-clamp: 3; /* nombre de lignes affichées */
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.45;
  max-height: none;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

      .phcom-news-private {
        display: inline-flex;
        align-items: center;
        padding: 4px 10px;
        border-radius: 50rem;
        background: rgba(168, 198, 58, .18);
        color: #162633;
        font-size: 12px;
        font-weight: 600;
        line-height: 1.2;
      }



      .phcom-news-meta {
        align-items: center;
        row-gap: 8px;
      }

      .phcom-news-author-mini {
        display: inline-flex;
        align-items: center;
      }

      .phcom-news-author-mini-img {
        flex: 0 0 28px;
        width: 28px;
        height: 28px;
        margin-right: 7px;
        border-radius: 50%;
        object-fit: cover;
      }

      @media (max-width: 575px) {
        .phcom-news-author-mini-img {
          width: 26px;
          height: 26px;
          flex-basis: 26px;
        }
      }

      @media (max-width: 767px) {
        .phcom-news-post.post-side {
          display: block;
        }

        .phcom-news-post .post-img-link {
          display: block;
          margin-bottom: 22px;
        }

        .phcom-news-post .post-img-link img {
          height: auto;
        }
      }


      /* News podcast highlight */
.phcom-news-podcast-section {
  padding: 25px 0 80px;
}

.phcom-news-podcast-box {
  position: relative;
  overflow: hidden;
  padding: 75px 9%;
  background: linear-gradient(135deg, rgba(168,198,58,.42), rgba(168,198,58,.18));
  border-radius: 90px 180px 120px 160px;
}

.phcom-news-podcast-content {
  max-width: 980px;
  margin: 0 auto;
}

.phcom-news-podcast-kicker {
  margin-bottom: 12px;
  color: #fff;
  font-weight: 700;
  font-size: 1.15rem;
  text-align: center;
}

.phcom-news-podcast-box h2 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-bottom: 22px;
  color: #000;
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 700;
  line-height: 1.1;
}

.phcom-news-podcast-box h2 i {
  font-size: .9em;
  flex: 0 0 auto;
}

.phcom-news-podcast-box h3 {
  margin-bottom: 16px;
  color: #000;
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: clamp(1.8rem, 3vw, 3rem);
  font-weight: 400;
  line-height: 1.15;
}

.phcom-news-podcast-box p {
  max-width: 950px;
  margin-bottom: 8px;
  color: #000;
  font-size: 1.05rem;
  line-height: 1.45;
}

.phcom-news-podcast-player {
  margin-top: 24px;
  max-width: 620px;
}

.phcom-news-podcast-player iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 180px;
  border: 0;
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
}

@media (max-width: 991px) {
  .phcom-news-podcast-box {
    padding: 60px 45px;
    border-radius: 60px;
  }

  .phcom-news-podcast-box h2 {
    align-items: flex-start;
  }
}

@media (max-width: 575px) {
  .phcom-news-podcast-section {
    padding: 15px 0 55px;
  }

  .phcom-news-podcast-box {
    padding: 42px 22px;
    border-radius: 36px;
  }

  .phcom-news-podcast-kicker {
    font-size: .95rem;
    text-align: left;
  }

  .phcom-news-podcast-box h2 {
    justify-content: flex-start;
    gap: 12px;
    font-size: 2rem;
  }

  .phcom-news-podcast-box h3 {
    font-size: 1.75rem;
  }

  .phcom-news-podcast-box p {
    font-size: .98rem;
  }

  .phcom-news-podcast-player iframe {
    height: 180px;
  }
}

/* ============================================================
   PAGES SERVICES (service.php) - prefixe phcom-service-
   ============================================================ */
.phcom-service-hero {
  position: relative;
  overflow: hidden;
}

.phcom-service-hero-img {
  display: block;
  width: 100%;
  height: 520px;
  object-fit: cover;
}

.phcom-service-hero-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  background: linear-gradient(90deg, rgba(22, 38, 51, .88) 0%, rgba(22, 38, 51, .6) 45%, rgba(22, 38, 51, 0) 78%);
}

.phcom-service-hero-label {
  font-size: .8rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: #A8C63A;
}

.phcom-service-hero-title {
  margin-top: .5rem;
  max-width: 640px;
  color: #fff;
}

.phcom-service-hero-intro {
  margin-top: 1rem;
  max-width: 560px;
  font-size: 1.15rem;
  color: #fff;
}

.phcom-service-question h2,
.phcom-service-question p {
  color: #fff;
}

.phcom-service-step + .phcom-service-step {
  margin-top: 3.5rem;
}

.phcom-service-step-img {
  width: 260px;
  max-width: 100%;
  height: auto;
}

.phcom-service-number {
  font-size: 72px;
  font-weight: 700;
  line-height: 1;
  color: #A8C63A;
}

.phcom-service-step-text ul {
  padding-left: 1.2rem;
  list-style: disc;
}

.phcom-service-step-text li + li {
  margin-top: .35rem;
}

.phcom-service-others {
  background-color: #F4F8FB;
}

@media (max-width: 767px) {
  .phcom-service-hero-img {
    height: 560px;
  }

  .phcom-service-hero-overlay {
    background: rgba(22, 38, 51, .72);
  }

  .phcom-service-number {
    font-size: 56px;
  }

  .phcom-service-step .col-md-5 {
    order: -1 !important;
  }
}


/* ============================================================
   PAGE NOS SERVICES (services.php) - prefixe phcom-services-
   ============================================================ */
.phcom-services-heading {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.2;
}

.phcom-services-green {
  color: #A8C63A;
}

.phcom-services-block {
  padding: 90px 0;
}

.phcom-services-alt {
  background-color: #F5F8FA;
}

.phcom-services-photo {
  position: relative;
  max-width: 440px;
  margin: 0 auto;
}

.phcom-services-ring {
  position: absolute;
  top: -18px;
  right: -18px;
  width: 78%;
  aspect-ratio: 1 / 1;
  border: 10px solid #A8C63A;
  border-radius: 50%;
}

.phcom-services-mask {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 42% 58% 63% 37% / 48% 38% 62% 52%;
  box-shadow: 0 20px 50px rgba(22, 38, 51, .18);
  animation: phcomTeamLava 9s ease-in-out infinite;
}

.phcom-services-mask img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: none !important;
}

.phcom-services-badge {
  position: absolute;
  right: 4%;
  bottom: 6%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 8px 24px rgba(22, 38, 51, .18);
}

.phcom-services-alt .phcom-services-ring {
  top: auto;
  right: auto;
  bottom: -18px;
  left: -18px;
  border-color: #1B8CBF;
}

.phcom-services-alt .phcom-services-badge {
  right: auto;
  left: 4%;
}

.phcom-services-label {
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #A8C63A;
}

.phcom-services-question {
  margin-top: 1rem;
  font-size: 1.25rem;
  font-weight: 600;
  color: #1B8CBF;
}

.phcom-services-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 1.5rem;
}

.phcom-services-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid #DCE7EE;
  border-radius: 999px;
  background: #F5F8FA;
  font-size: .9rem;
  color: #162633;
}

.phcom-services-alt .phcom-services-chip {
  background: #fff;
}

.phcom-services-chip::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #A8C63A;
}

.phcom-services-link {
  color: #1B8CBF;
}

@media (max-width: 991px) {
  .phcom-services-photo {
    max-width: 340px;
  }
}

@media (max-width: 767px) {
  .phcom-services-heading {
    font-size: 1.8rem;
  }

  .phcom-services-block {
    padding: 60px 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .phcom-services-mask {
    animation: none;
  }
}


/* ============================================================
   GROUPES DE BOUTONS (.d-flex .gap-3) : annule la marge du template
   (* + .btn { margin-top }) qui decalait le 2e bouton
   ============================================================ */
.d-flex.gap-3 > * + .btn,
.d-flex.gap-3 > .btn + * {
  margin-top: 0;
}


/* ============================================================
   PODCASTS (blog.php) - prefixe phcom-podcast-
   ============================================================ */
.phcom-podcast-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
}

.phcom-podcast-tab {
  padding: 9px 22px;
  border: 1px solid #DCE7EE;
  border-radius: 999px;
  font-size: .95rem;
  color: #162633;
}

.phcom-podcast-tab:hover {
  border-color: #1B8CBF;
  color: #1B8CBF;
}

.phcom-podcast-tab.active {
  background: #162633;
  border-color: #162633;
  color: #fff;
}

.phcom-podcast-series {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 28px;
}

.phcom-podcast-series a {
  padding: 6px 14px;
  border-radius: 999px;
  background: #F5F8FA;
  font-size: .85rem;
  color: #162633;
}

.phcom-podcast-series a.active {
  background: #1B8CBF;
  color: #fff;
}

.phcom-podcast-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 999px;
  background: #A8C63A;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #162633;
}

.phcom-podcast-number {
  font-size: 64px;
  font-weight: 700;
  line-height: 1;
  color: #A8C63A;
}

.phcom-podcast-serie {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #A8C63A;
}

.phcom-podcast-iframe {
  display: block;
  width: 100%;
  height: 180px;
  margin-top: 18px;
  border: 0;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
}

/* dernier episode */
.phcom-podcast-featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  margin-bottom: 36px;
  border-radius: 18px;
  background: #162633;
  color: #fff;
}

.phcom-podcast-featured-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.phcom-podcast-featured-body {
  padding: 34px;
}

.phcom-podcast-featured-head {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  margin-top: 20px;
}

.phcom-podcast-featured-meta {
  padding-bottom: 6px;
  font-size: .85rem;
  opacity: .75;
}

.phcom-podcast-featured-title {
  margin-top: 14px;
  font-size: 1.6rem;
  line-height: 1.3;
}

.phcom-podcast-featured-title a {
  color: #fff;
}

/* liste des episodes */
.phcom-podcast-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px;
  padding: 16px;
  border: 1px solid #E6EDF2;
  border-radius: 16px;
  background: #fff;
}

.phcom-podcast-row + .phcom-podcast-row {
  margin-top: 14px;
}

.phcom-podcast-row-nb {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #E6F3F9;
  font-size: 1.1rem;
  font-weight: 700;
  color: #1B8CBF;
}

.phcom-podcast-row-img img {
  display: block;
  width: 140px;
  height: 80px;
  border-radius: 10px;
  object-fit: cover;
}

.phcom-podcast-row-body {
  flex: 1;
  min-width: 0;
}

.phcom-podcast-row-title {
  margin-top: 4px;
  font-size: 1.1rem;
  line-height: 1.35;
}

.phcom-podcast-row-title a {
  color: #162633;
}

.phcom-podcast-row-player {
  display: none;
}

.phcom-podcast-row.is-open .phcom-podcast-row-player {
  display: block;
}

.phcom-podcast-row.is-open .phcom-podcast-play {
  display: none;
}

.phcom-podcast-play {
  position: relative;
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  border: 2px solid #1B8CBF;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}

.phcom-podcast-play::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 54%;
  transform: translate(-50%, -50%);
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 12px solid #1B8CBF;
}

.phcom-podcast-play:hover {
  background: #1B8CBF;
}

.phcom-podcast-play:hover::after {
  border-left-color: #fff;
}

/* carte du fil "Tout" : bouton lecture sur la vignette */
.post-img-link {
  position: relative;
}

.phcom-podcast-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(168, 198, 58, .95);
  transform: translate(-50%, -50%);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
}

.phcom-podcast-overlay::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 55%;
  transform: translate(-50%, -50%);
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 15px solid #162633;
}

/* page d'un episode */
.phcom-podcast-detail {
  margin: 24px 0;
  padding: 28px;
  border-radius: 18px;
  background: #162633;
  color: #fff;
}

.phcom-podcast-detail-top {
  display: flex;
  align-items: center;
  gap: 18px;
}

.phcom-podcast-platforms {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.phcom-podcast-platforms a {
  padding: 6px 14px;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 999px;
  font-size: .85rem;
  color: #fff;
}

.phcom-podcast-platforms a:hover {
  background: #A8C63A;
  border-color: #A8C63A;
  color: #162633;
}

.phcom-podcast-video {
  margin-bottom: 28px;
  overflow: hidden;
  border-radius: 14px;
}

.phcom-podcast-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 36px;
}

.phcom-podcast-nav a {
  display: block;
  padding: 16px 18px;
  border: 1px solid #E6EDF2;
  border-radius: 14px;
  color: #162633;
}

.phcom-podcast-nav a span {
  display: block;
  margin-bottom: 4px;
  font-size: .8rem;
  color: #1B8CBF;
}

.phcom-podcast-nav a strong {
  font-weight: 500;
}

.phcom-podcast-nav-next {
  text-align: right;
}

/* mobile */
@media (max-width: 991px) {
  .phcom-podcast-featured {
    grid-template-columns: 1fr;
  }

  .phcom-podcast-featured-img img {
    height: auto;
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 575px) {
  .phcom-podcast-featured-body,
  .phcom-podcast-detail {
    padding: 22px;
  }

  .phcom-podcast-number {
    font-size: 48px;
  }

  .phcom-podcast-row-img {
    display: none;
  }

  .phcom-podcast-row-nb {
    width: 46px;
    height: 46px;
    font-size: .95rem;
  }

  .phcom-podcast-nav {
    grid-template-columns: 1fr;
  }

  .phcom-podcast-nav-next {
    text-align: left;
  }
}

/* PHCom - hero podcast */
.phcom-podcast-hero {
  position: relative;
  overflow: hidden;
  padding: 70px 0;
  background: #162633;
  color: #fff;
}

.phcom-podcast-hero::before {
  content: "";
  position: absolute;
  top: -180px;
  right: -140px;
  width: 520px;
  height: 520px;
  border: 2px solid rgba(168, 198, 58, .35);
  border-radius: 50%;
}

.phcom-podcast-hero::after {
  content: "";
  position: absolute;
  bottom: -220px;
  right: 80px;
  width: 420px;
  height: 420px;
  border: 2px solid rgba(27, 140, 191, .45);
  border-radius: 50%;
}

.phcom-podcast-hero .container {
  position: relative;
  z-index: 1;
}

.phcom-podcast-hero-label {
  color: #A8C63A;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.phcom-podcast-hero .phcom-podcast-hero-title {
  margin-top: 18px;
  color: #fff;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.15;
}

.phcom-podcast-hero-intro {
  max-width: 640px;
  margin-top: 16px;
  color: rgba(255, 255, 255, .8);
  font-size: 1.05rem;
}

.phcom-podcast-hero .phcom-podcast-platforms {
  margin-top: 26px;
}

.phcom-podcast-hero-stats {
  display: flex;
  gap: 18px;
}

.phcom-podcast-hero-stats > div {
  flex: 1;
  padding: 22px 18px;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 16px;
  background: rgba(255, 255, 255, .05);
  text-align: center;
}

.phcom-podcast-hero-stats strong {
  display: block;
  color: #A8C63A;
  font-size: 2.8rem;
  font-weight: 600;
  line-height: 1;
}

.phcom-podcast-hero-stats span {
  display: block;
  margin-top: 8px;
  color: rgba(255, 255, 255, .75);
  font-size: .85rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

@media (max-width: 991px) {
  .phcom-podcast-hero {
    padding: 45px 0;
  }

  .phcom-podcast-hero::before,
  .phcom-podcast-hero::after {
    display: none;
  }

  .phcom-podcast-hero-stats strong {
    font-size: 2.2rem;
  }
}

/* PHCom - home : dernier episode du podcast */
.phcom-home-episode {
  margin-top: 26px;
  padding: 24px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(22, 38, 51, .12);
  text-align: left;
}

.phcom-home-episode-head {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 14px;
}

.phcom-home-episode .phcom-podcast-number {
  font-size: 52px;
}

.phcom-home-episode .phcom-podcast-serie {
  color: #1B8CBF;
}

.phcom-home-episode .phcom-home-episode-title {
  margin-top: 4px;
  font-size: 1.15rem;
  line-height: 1.35;
}

.phcom-home-episode-title a {
  color: #162633;
}

.phcom-home-episode-title a:hover {
  color: #1B8CBF;
}

.phcom-home-service-picto {
  width: 80px;
  height: 80px;
}

@media (max-width: 767px) {
  .phcom-home-episode {
    padding: 18px;
  }

  .phcom-home-episode .phcom-podcast-number {
    font-size: 40px;
  }
}

/* PHCom - home : le fond tournant du telephone ne doit pas deborder sur mobile */
@media (max-width: 767px) {
  .phcom-phone-visual {
    overflow: hidden;
  }
}

/* PHCom - home : arcs bleu et vert autour de la photo du haut */
.phcom-home-hero-mask {
  overflow: visible;
}

.phcom-home-hero-arc {
  fill: none;
  stroke-width: 5;
  stroke-linecap: round;
}

@media (max-width: 767px) {
  .phcom-home-hero-arc {
    stroke-width: 8;
  }
}

/* PHCom - acces equipe (cadenas du menu) */
.phcom-member-icon {
  font-size: 1.05rem;
}

.phcom-member.active .phcom-member-icon {
  color: #A8C63A;
}

/* PHCom - page de connexion equipe */
.phcom-login-section {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

/* PHCom - sous-menu du cadenas : s'ouvre vers la gauche (dernier element du menu) */
@media (min-width: 1200px) {
  .rd-navbar .phcom-member > .rd-navbar-dropdown {
    left: auto;
    right: 0;
  }
}

/* PHCom - page equipe : intro */
.phcom-team-label {
  color: #A8C63A;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.phcom-team-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin-top: 28px;
}

.phcom-team-stats strong {
  display: block;
  color: #1B8CBF;
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1;
}

.phcom-team-stats span {
  font-size: .85rem;
  color: #6b7781;
}

.phcom-team-intro-photo {
  overflow: hidden;
  border-radius: 28px;
  box-shadow: 0 18px 40px rgba(22, 38, 51, .15);
}

.phcom-team-intro-photo img {
  display: block;
  width: 100%;
  height: auto;
}

/* PHCom - page equipe : cartes */
.phcom-person {
  height: 100%;
  text-align: center;
}

.phcom-person-photo {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  border-radius: 24px;
  background: #E6F3F9;
}

.phcom-person-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
  transition: transform .5s, filter .5s;
}

.phcom-person:hover .phcom-person-photo img {
  filter: grayscale(0);
  transform: scale(1.05);
}

.phcom-person-quote {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(22, 38, 51, .88);
  color: #fff;
  font-size: .9rem;
  font-style: italic;
  line-height: 1.5;
  opacity: 0;
  transition: opacity .3s;
}

.phcom-person-quote p {
  margin: 0;
  color: #fff;
}

.phcom-person:hover .phcom-person-quote {
  opacity: 1;
}

.phcom-person-bar {
  width: 46px;
  height: 4px;
  margin: 18px auto 0;
  border-radius: 4px;
  background: #1B8CBF;
}

.phcom-person-alt .phcom-person-bar {
  background: #A8C63A;
}

.phcom-person .phcom-person-name {
  margin-top: 12px;
}

.phcom-person-title {
  margin-top: 4px;
  font-size: .85rem;
  color: #1B8CBF;
}

.phcom-person-links {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 14px;
}

.phcom-person-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #E6F3F9;
  color: #1B8CBF;
  transition: background .2s, color .2s;
}

.phcom-person-links a:hover {
  background: #A8C63A;
  color: #162633;
}

.phcom-person-mobile-quote {
  display: none;
}

@media (hover: none), (max-width: 767px) {
  .phcom-person-quote {
    display: none;
  }

  .phcom-person-photo img {
    filter: grayscale(0);
  }

  .phcom-person-mobile-quote {
    display: block;
    margin-top: 8px;
    font-size: .82rem;
    font-style: italic;
    color: #6b7781;
  }
}

/* PHCom - page equipe : recrutement */
.phcom-team-hiring {
  padding: 44px;
  border-radius: 24px;
  background: #162633;
  color: #fff;
}

.phcom-team-hiring h2 {
  color: #fff;
}

@media (max-width: 767px) {
  .phcom-team-hiring {
    padding: 30px 24px;
  }
}

/* PHCom - diagnostic : progression */
.phcom-dg-progress {
  position: sticky;
  top: 0;
  z-index: 5;
  padding: 14px 0;
  border-bottom: 1px solid #eef2f5;
  background: #fff;
}

.phcom-dg-progress-bar {
  overflow: hidden;
  height: 8px;
  border-radius: 8px;
  background: #E6F3F9;
}

.phcom-dg-progress-bar span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, #1B8CBF, #A8C63A);
  transition: width .3s;
}

.phcom-dg-progress-txt {
  margin-top: 6px;
  font-size: .85rem;
  color: #6b7781;
}

/* PHCom - diagnostic : questions en cartes */
.phcom-dg-question {
  padding: 34px 0;
  border-bottom: 1px solid #eef2f5;
}

.phcom-dg-question .phcom-dg-question-title {
  display: flex;
  align-items: center;
  font-size: 1.25rem;
}

.phcom-dg-num {
  display: inline-flex;
  flex: 0 0 38px;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-right: 12px;
  border-radius: 50%;
  background: #E6F3F9;
  color: #1B8CBF;
  font-size: 1rem;
  font-weight: 600;
}

.phcom-dg-answers {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-top: 20px;
}

.phcom-dg-answers-3 {
  grid-template-columns: repeat(3, 1fr);
}

.phcom-dg-answers-4 {
  grid-template-columns: repeat(4, 1fr);
}

.phcom-dg-answer {
  position: relative;
  margin: 0;
}

.phcom-dg-answer input {
  position: absolute;
  opacity: 0;
}

.phcom-dg-answer span {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
  height: 100%;
  padding: 16px;
  border: 2px solid #e3eaef;
  border-radius: 16px;
  background: #fff;
  font-size: .92rem;
  cursor: pointer;
  transition: border-color .2s, background .2s, box-shadow .2s;
}

.phcom-dg-answer:hover span {
  border-color: #1B8CBF;
}

.phcom-dg-answer input:focus-visible + span {
  outline: 3px solid rgba(27, 140, 191, .35);
}

.phcom-dg-answer input:checked + span {
  border-color: #1B8CBF;
  background: #E6F3F9;
  box-shadow: 0 8px 20px rgba(27, 140, 191, .15);
}

.phcom-dg-gauge {
  display: block;
  height: 6px;
  border-radius: 6px;
  background: #e3eaef;
}

.phcom-dg-gauge b {
  display: block;
  height: 100%;
  border-radius: 6px;
  background: #1B8CBF;
}

.phcom-dg-gauge-green b {
  background: #A8C63A;
}

@media (max-width: 767px) {
  .phcom-dg-answers,
  .phcom-dg-answers-3,
  .phcom-dg-answers-4 {
    grid-template-columns: 1fr;
  }

  .phcom-dg-question .phcom-dg-question-title {
    font-size: 1.05rem;
  }
}

/* PHCom - diagnostic : resultat */
.phcom-dg-result {
  padding: 50px;
  border-radius: 28px;
  background: #162633;
  color: #fff;
}

.phcom-dg-result h2 {
  color: #fff;
}

.phcom-dg-result-text,
.phcom-dg-result-text p {
  color: rgba(255, 255, 255, .8);
  text-align: left !important;
}

.phcom-dg-label {
  color: #A8C63A;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.phcom-dg-levels {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-top: 24px;
}

.phcom-dg-level i {
  display: block;
  height: 8px;
  border-radius: 8px;
  background: rgba(255, 255, 255, .15);
}

.phcom-dg-level.on i {
  background: #A8C63A;
}

.phcom-dg-level span {
  display: block;
  margin-top: 6px;
  font-size: .72rem;
  line-height: 1.3;
  color: rgba(255, 255, 255, .6);
}

.phcom-dg-card {
  height: 100%;
  padding: 28px;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(22, 38, 51, .10);
}

.phcom-dg-radar {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 10px;
}

.phcom-dg-radar text {
  font-size: 11px;
  fill: #515d68;
}

.phcom-dg-lever {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid #eef2f5;
}

.phcom-dg-lever-score {
  display: flex;
  flex: 0 0 54px;
  align-items: center;
  justify-content: center;
  height: 54px;
  border-radius: 50%;
  background: #fdecea;
  color: #c0392b;
  font-weight: 600;
}

.phcom-dg-lever h4 {
  margin: 0;
  font-size: 1.05rem;
}

.phcom-dg-lever a {
  font-size: .85rem;
}

.phcom-dg-contact {
  padding: 36px;
  border-radius: 22px;
  background: #E6F3F9;
}

.phcom-dg-contact-form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.phcom-dg-contact-form .form-control {
  flex: 1 1 180px;
  margin: 0;
}

.phcom-dg-contact-form * + .btn {
  margin-top: 0;
}

@media (max-width: 767px) {
  .phcom-dg-result,
  .phcom-dg-contact {
    padding: 28px 22px;
  }

  .phcom-dg-levels {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* PHCom - diagnostic : leviers en potentiel positif (vert) */
.phcom-dg-lever-score {
  flex-basis: 64px;
  height: 64px;
  background: #EEF5D8;
  color: #5E7A12;
  font-size: 1.05rem;
}

.phcom-dg-lever-txt {
  font-size: .8rem;
  color: #6b7781;
}

/* PHCom - diagnostic : question oubliee */
.phcom-dg-missing .phcom-dg-answer span {
  border-color: #f0b400;
}

.phcom-dg-missing-txt {
  margin-top: 10px;
  font-size: .9rem;
  font-weight: 600;
  color: #b07d00;
}

/* PHCom - diagnostic : clics rapides (pas de zoom au double tap, pas de selection du texte) */
.phcom-dg-answer span {
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
}

/* PHCom - diagnostic : champs du formulaire de bilan plus compacts */
.phcom-dg-contact-form .form-control {
  min-height: 48px;
  height: 48px;
  padding: 10px 16px;
  font-size: .95rem;
}

.phcom-dg-contact-form .form-control::placeholder {
  font-size: .95rem;
}

.phcom-dg-contact-form .btn {
  min-height: 48px;
  padding-top: 10px;
  padding-bottom: 10px;
}

/* PHCom - home : bandeau diagnostic gratuit */
.phcom-home-diag {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 40px 44px;
  border-radius: 24px;
  background: linear-gradient(120deg, #162633 0%, #1B4A63 100%);
  color: #fff;
}

.phcom-home-diag h2 {
  color: #fff;
}

.phcom-home-diag p {
  color: rgba(255, 255, 255, .8);
}

.phcom-home-diag .btn {
  flex-shrink: 0;
  margin-top: 0;
}

@media (max-width: 767px) {
  .phcom-home-diag {
    flex-direction: column;
    align-items: flex-start;
    padding: 30px 24px;
  }
}

/* PHCom - home : jauge animee dans le bandeau diagnostic */
.phcom-home-diag-gauge {
  flex-shrink: 0;
}

.phcom-home-diag-txt {
  flex: 1 1 auto;
}

.phcom-home-diag-ring {
  stroke-dasharray: 301.6;
  stroke-dashoffset: 301.6;
  animation: phcomDiagRing 4s ease-in-out infinite;
}

@keyframes phcomDiagRing {
  0% { stroke-dashoffset: 301.6; stroke: #1B8CBF; }
  45% { stroke-dashoffset: 75; stroke: #A8C63A; }
  70% { stroke-dashoffset: 75; stroke: #A8C63A; }
  100% { stroke-dashoffset: 301.6; stroke: #1B8CBF; }
}

@media (prefers-reduced-motion: reduce) {
  .phcom-home-diag-ring {
    animation: none;
    stroke-dashoffset: 120;
  }
}

@media (max-width: 767px) {
  .phcom-home-diag-gauge svg {
    width: 84px;
    height: 84px;
  }
}

/* PHCom - footer : liens d'action a la place de la newsletter */
.phcom-footer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.phcom-footer-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
  color: #fff;
  font-size: .9rem;
  transition: background .2s, border-color .2s, color .2s;
}

.phcom-footer-action:hover {
  border-color: #1B8CBF;
  background: #1B8CBF;
  color: #fff;
}

.phcom-footer-action-main {
  border-color: #A8C63A;
  background: #A8C63A;
  color: #162633;
  font-weight: 600;
}

.phcom-footer-action-main:hover {
  border-color: #fff;
  background: #fff;
  color: #162633;
}

/* ---------- Diagnostic : tablette + jauge animee dans le hero ---------- */
@media (min-width: 992px) {
  .phcom-diagnostic-hero .phcom-diagnostic-visual {
    flex: 0 0 38%;
    padding-left: 30px;
  }
}
.phcom-diagnostic-score {
  position: relative;
  max-width: 480px;
  margin-left: auto;
}
.phcom-diagnostic-score .phcom-diagnostic-tablet {
  width: 100%;
  max-width: none;
  margin: 0;
}
/* jauge posee en badge sur le coin de la tablette */
.phcom-diagnostic-gauge {
  position: absolute;
  right: -20px;
  bottom: -25px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 14px 34px rgba(22, 38, 51, .16);
}
@media (max-width: 991.98px) {
  .phcom-diagnostic-score {
    max-width: 360px;
    margin: 0 auto;
  }
  .phcom-diagnostic-gauge {
    right: 0;
    bottom: -15px;
    width: 110px;
    height: 110px;
  }
}

/* ---------- Contact : formulaire + contact direct ---------- */
.phcom-contact-aside {
  padding: 32px;
  border-radius: 20px;
  background: #F5F8FA;
}
.phcom-contact-line {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  font-size: 1.1rem;
  color: #162633;
  text-decoration: none;
  border-bottom: 1px solid #e3eaef;
}
.phcom-contact-line:hover {
  color: #1B8CBF;
}
.phcom-contact-line span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
  color: #1B8CBF;
  font-size: 18px;
}
.phcom-contact-ok {
  padding: 40px 36px;
  border-radius: 20px;
  background: #F5F8FA;
  text-align: center;
}
.phcom-contact-ok-icon {
  font-size: 54px;
  line-height: 1;
  color: #A8C63A;
  margin-bottom: 16px;
}
.phcom-contact-form button[disabled] {
  opacity: .6;
}
.phcom-contact-aside .btn {
  white-space: nowrap;
  padding-left: 16px;
  padding-right: 16px;
}

/* ---------- Bandeaux du haut de page : voile bleu PHCom (s'applique aussi aux futures photos du CMS) ---------- */
.phcom-top-voile {
  position: relative;
}
.phcom-top-voile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #8cc6e6;
  mix-blend-mode: multiply;
  opacity: .55;
  pointer-events: none;
}

/* ---------- Bandeau final (remplace la video) : degrade PHCom + arcs ---------- */
.phcom-cta-band {
  position: relative;
  overflow: hidden;
  padding: 110px 0;
  background: linear-gradient(120deg, #162633 0%, #1B4A63 60%, #1B6F96 100%);
  color: #fff;
}
.phcom-cta-band-inner {
  position: relative;
  z-index: 2;
}
.phcom-cta-band-arcs {
  position: absolute;
  z-index: 1;
  right: -170px;
  top: 50%;
  width: 560px;
  height: 560px;
  transform: translateY(-50%);
  overflow: visible;
  opacity: .9;
  pointer-events: none;
}
.phcom-cta-band::before {
  content: "";
  position: absolute;
  z-index: 1;
  left: -120px;
  bottom: -160px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  border: 14px solid rgba(255, 255, 255, .06);
}
.phcom-cta-band .lead {
  color: rgba(255, 255, 255, .85);
}
@media (max-width: 767.98px) {
  .phcom-cta-band {
    padding: 70px 0;
  }
  .phcom-cta-band-arcs {
    width: 340px;
    height: 340px;
    right: -170px;
    opacity: .3;
  }
}
.phcom-cta-band .phcom-footer-logo img {
  box-sizing: content-box;
  padding: 14px 22px;
  border-radius: 16px;
  background: #fff;
}

/* ---------- Menu mobile : fleche des sous-menus plus visible ---------- */
@media (max-width: 1199.98px) {
  .rd-navbar .rd-navbar-submenu-toggle {
    background: radial-gradient(circle, #e9f1f6 0 16px, transparent 17px);
    border-radius: 50%;
  }
}

/* ---------- Menu equipe : nom du membre connecte ---------- */
.phcom-member-name {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0 10px;
  margin-bottom: 6px;
  border-bottom: 1px solid rgba(0, 0, 0, .08);
  font-size: .875rem;
  font-weight: 600;
  color: #1B8CBF;
  white-space: nowrap;
}
@media (max-width: 1199.98px) {
  .phcom-member-name {
    padding-left: 30px;
    padding-right: 30px;
  }
}

/* =========================================================
   CAS CLIENTS (cases.php, case.php, widget home)
   ========================================================= */
.phcom-case-chip {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  color: #1B8CBF;
  background: #e9f4fa;
  border-radius: 999px;
  padding: 5px 12px;
  line-height: 1.4;
}
.phcom-case-dept {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  border-radius: 999px;
  padding: 4px 11px;
  background: #EEF5D8;
  color: #5E7A12;
}
.phcom-case-dept-blue {
  background: #e9f4fa;
  color: #1B8CBF;
}
.phcom-case-depts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.phcom-case-more {
  font-weight: 600;
  color: #1B8CBF;
}

/* ---------- page liste ---------- */
.phcom-cases-title {
  margin: 10px 0 10px;
  font-weight: 400;
}
.phcom-cases-lead {
  max-width: 720px;
  color: #5b6b77;
}
.phcom-cases-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 30px 0 34px;
}
.phcom-cases-stat {
  background: #F5F8FA;
  border-radius: 16px;
  padding: 20px 22px;
}
.phcom-cases-stat b {
  display: block;
  font-size: 30px;
  font-weight: 600;
  color: #1B8CBF;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.phcom-cases-stat span {
  font-size: 13px;
  color: #5b6b77;
}
.phcom-cases-filters {
  display: grid;
  gap: 12px;
}
.phcom-cases-frow {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.phcom-cases-frow em {
  font-style: normal;
  font-size: 13px;
  color: #6b7781;
  width: 150px;
}
.phcom-cases-fchip {
  border: 1px solid #d7e2e9;
  border-radius: 999px;
  padding: 7px 14px;
  font-size: 13px;
  background: #fff;
  color: #162633;
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
}
.phcom-cases-fchip:hover {
  border-color: #1B8CBF;
}
.phcom-cases-fchip.on {
  background: #162633;
  border-color: #162633;
  color: #fff;
}
.phcom-cases-fchip-dept.on {
  background: #1B8CBF;
  border-color: #1B8CBF;
}
.phcom-cases-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.phcom-case-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  border: 1px solid #e3eaef;
  border-radius: 20px;
  padding: 24px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(22, 38, 51, .06);
  transition: transform .25s, box-shadow .25s;
}
.phcom-case-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(22, 38, 51, .1);
}
.phcom-case-card[hidden] {
  display: none;
}
.phcom-case-card h3 {
  font-size: 19px;
  font-weight: 600;
  line-height: 1.3;
  margin: 0;
}
.phcom-case-card h3 a {
  color: #162633;
}
.phcom-case-card p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #44535e;
}
.phcom-case-mini {
  display: flex;
  gap: 10px;
  width: 100%;
}
.phcom-case-mini div {
  flex: 1;
  background: #162633;
  color: #fff;
  border-radius: 12px;
  padding: 10px 12px;
}
.phcom-case-mini b {
  display: block;
  font-size: 20px;
  color: #A8C63A;
  font-variant-numeric: tabular-nums;
}
.phcom-case-mini span {
  font-size: 11px;
  opacity: .8;
}
.phcom-case-card .phcom-case-more {
  margin-top: auto;
}
.phcom-cases-empty {
  text-align: center;
  color: #6b7781;
  padding: 30px 0;
}

/* ---------- fiche ---------- */
.phcom-case-crumb {
  font-size: 13px;
  color: #6b7781;
}
.phcom-case-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 30px;
  align-items: end;
  padding: 14px 0 30px;
  border-bottom: 1px solid #e3eaef;
}
.phcom-case-h1 {
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 400;
  line-height: 1.2;
  margin: 12px 0 10px;
}
.phcom-case-intro {
  font-size: 18px;
  color: #44535e;
  max-width: 680px;
  margin: 0;
}
.phcom-case-meta {
  display: grid;
  grid-template-columns: auto auto;
  gap: 6px 18px;
  font-size: 13px;
  background: #F5F8FA;
  border-radius: 16px;
  padding: 18px 20px;
  min-width: 260px;
  margin: 0;
}
.phcom-case-meta dt {
  color: #6b7781;
  font-weight: 400;
}
.phcom-case-meta dd {
  margin: 0;
  font-weight: 600;
  color: #162633;
}
.phcom-case-kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  padding: 34px 0;
}
.phcom-case-kpi {
  position: relative;
  overflow: hidden;
  background: #162633;
  color: #fff;
  border-radius: 18px;
  padding: 22px 22px 18px;
}
.phcom-case-kpi::after {
  content: "";
  position: absolute;
  right: -30px;
  top: -30px;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  border: 10px solid rgba(255, 255, 255, .06);
}
.phcom-case-kpi b {
  display: block;
  font-size: 38px;
  font-weight: 600;
  color: #A8C63A;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.phcom-case-kpi span {
  font-size: 13px;
  opacity: .85;
}
.phcom-case-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 50px;
}
.phcom-case-part + .phcom-case-part {
  margin-top: 44px;
}
.phcom-case-text h2,
.phcom-case-h2 {
  font-size: 26px;
  font-weight: 400;
  margin: 6px 0 14px;
}
.phcom-case-text p {
  color: #44535e;
  max-width: 66ch;
}
.phcom-case-steps ol {
  list-style: none;
  counter-reset: etape;
  margin: 8px 0 0;
  padding: 0;
  display: grid;
  gap: 14px;
}
.phcom-case-steps ol li {
  counter-increment: etape;
  position: relative;
  padding-left: 58px;
  min-height: 44px;
  color: #44535e;
}
.phcom-case-steps ol li::before {
  content: counter(etape);
  position: absolute;
  left: 0;
  top: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #e9f4fa;
  color: #1B8CBF;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.phcom-case-steps ol li strong {
  display: block;
  color: #162633;
}
.phcom-case-figure {
  margin: 26px 0 0;
}
.phcom-case-figure img {
  display: block;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 20px;
}
.phcom-case-figure figcaption {
  font-size: 13px;
  color: #6b7781;
  margin-top: 8px;
}
.phcom-case-funnel {
  display: grid;
  gap: 10px;
}
.phcom-case-row {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr) 70px;
  gap: 12px;
  align-items: center;
  font-size: 14px;
}
.phcom-case-row b {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.phcom-case-bar {
  height: 34px;
  background: #F5F8FA;
  border-radius: 10px;
  overflow: hidden;
}
.phcom-case-bar i {
  display: block;
  height: 100%;
  border-radius: 10px;
  background: linear-gradient(90deg, #1B8CBF, #3aa6d6);
  transform-origin: left;
  transition: transform 1.1s cubic-bezier(.2, .7, .2, 1);
}
.phcom-case-row-green .phcom-case-bar i {
  background: linear-gradient(90deg, #8fb02a, #A8C63A);
}
.phcom-case-ratio {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 20px;
  background: #EEF5D8;
  border-radius: 16px;
  padding: 16px 18px;
}
.phcom-case-ratio p {
  margin: 0;
  color: #162633;
}
.phcom-case-aside {
  display: grid;
  gap: 18px;
  align-content: start;
}
.phcom-case-box {
  border: 1px solid #e3eaef;
  border-radius: 18px;
  padding: 20px;
}
.phcom-case-box h3 {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 12px;
}
.phcom-case-box ul {
  margin: 0;
  padding-left: 18px;
  font-size: 14px;
  color: #44535e;
}
.phcom-case-take {
  background: #162633;
  border: 0;
}
.phcom-case-take h3 {
  color: #A8C63A;
}
.phcom-case-take p {
  color: rgba(255, 255, 255, .88);
  font-size: 15px;
  margin: 0;
}

/* ---------- widget home ---------- */
.phcom-cw {
  position: relative;
  overflow: hidden;
  background: linear-gradient(120deg, #162633 0%, #1B4A63 100%);
  color: #fff;
  padding: 70px 0;
}
.phcom-cw::before {
  content: "";
  position: absolute;
  right: -140px;
  top: -140px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  border: 22px solid rgba(27, 140, 191, .35);
  border-left-color: transparent;
  border-bottom-color: transparent;
  transform: rotate(-20deg);
}
.phcom-cw-in {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 48px;
  align-items: center;
}
.phcom-cw h2 {
  color: #fff;
  font-size: clamp(26px, 3.4vw, 36px);
  line-height: 1.25;
  margin: 8px 0 12px;
}
.phcom-cw-txt p {
  color: rgba(255, 255, 255, .8);
}
.phcom-cw-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 26px 0 28px;
}
.phcom-cw-stats b {
  display: block;
  font-size: 30px;
  font-weight: 600;
  color: #A8C63A;
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
}
.phcom-cw-stats span {
  font-size: 12px;
  color: rgba(255, 255, 255, .75);
}
.phcom-cw-sectors {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.phcom-cw-sectors button {
  font-size: 12px;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 999px;
  padding: 6px 12px;
  color: #fff;
  background: transparent;
  cursor: pointer;
  transition: background .2s;
}
.phcom-cw-sectors button:hover,
.phcom-cw-sectors button.on {
  background: rgba(255, 255, 255, .14);
}
.phcom-cw-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 28px;
  background: #A8C63A;
  color: #162633;
  font-weight: 700;
  padding: 15px 24px;
  border-radius: 8px;
}
.phcom-cw-cta:hover {
  color: #162633;
  background: #b7d24f;
}
.phcom-cw-card {
  background: #fff;
  color: #162633;
  border-radius: 22px;
  padding: 28px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, .25);
}
.phcom-cw-slide {
  display: grid;
  gap: 14px;
  justify-items: start;
  animation: phcomCwFade .5s ease;
}
.phcom-cw-slide[hidden] {
  display: none;
}
@keyframes phcomCwFade {
  from { opacity: .2; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
.phcom-cw-slide h3 {
  font-size: 22px;
  font-weight: 500;
  line-height: 1.3;
  margin: 0;
}
.phcom-cw-slide h3 a {
  color: #162633;
}
.phcom-cw-slide p {
  margin: 0;
  color: #44535e;
  font-size: 15px;
}
.phcom-cw-k {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
}
.phcom-cw-k div {
  background: #F5F8FA;
  border-radius: 12px;
  padding: 12px;
}
.phcom-cw-k b {
  display: block;
  font-size: 20px;
  color: #1B8CBF;
  font-variant-numeric: tabular-nums;
}
.phcom-cw-k span {
  font-size: 11px;
  color: #6b7781;
}
.phcom-cw-dots {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin-top: -20px;
}
.phcom-cw-dots button {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  border: 0;
  background: #d7e2e9;
  padding: 0;
  cursor: pointer;
  transition: width .2s;
}
.phcom-cw-dots button.on {
  background: #1B8CBF;
  width: 24px;
  border-radius: 5px;
}

@media (max-width: 991.98px) {
  .phcom-cases-stats,
  .phcom-case-kpis {
    grid-template-columns: repeat(2, 1fr);
  }
  .phcom-cases-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .phcom-case-head,
  .phcom-case-body,
  .phcom-cw-in {
    grid-template-columns: 1fr;
  }
  .phcom-cw-in {
    gap: 30px;
  }
}
@media (max-width: 575.98px) {
  .phcom-cases-grid {
    grid-template-columns: 1fr;
  }
  .phcom-cases-frow em {
    width: 100%;
  }
  .phcom-case-kpi b {
    font-size: 28px;
  }
  .phcom-case-row {
    grid-template-columns: 110px minmax(0, 1fr) 54px;
    font-size: 13px;
  }
  .phcom-cw {
    padding: 50px 0;
  }
  .phcom-cw-stats b {
    font-size: 20px;
  }
  .phcom-cw-dots {
    margin-top: 14px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .phcom-case-bar i,
  .phcom-cw-slide {
    transition: none;
    animation: none;
  }
}

/* cas clients : libelles sous les chiffres + 4 colonnes sur grand ecran (page liste) */
.phcom-cases-stat span,
.phcom-case-kpi span,
.phcom-case-mini span,
.phcom-cw-stats span,
.phcom-cw-k span {
  display: block;
  line-height: 1.35;
  margin-top: 4px;
}
@media (min-width: 1200px) {
  .phcom-cases-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .phcom-cases-grid-4 .phcom-case-card {
    padding: 22px 20px;
  }
}

/* cas clients : les chiffres et le lien toujours alignes en bas de la carte */
.phcom-case-card .phcom-case-mini {
  margin-top: auto;
}
.phcom-case-card .phcom-case-more {
  margin-top: 4px;
}
.phcom-case-more {
  font-size: 15px;
  line-height: 1.4;
}

/* cas clients : panneau de filtres (2 familles bien separees) */
.phcom-cases-filters {
  display: block;
  background: #F5F8FA;
  border: 1px solid #e3eaef;
  border-radius: 20px;
  padding: 6px 24px;
}
.phcom-cases-fhead {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  padding: 14px 0;
  border-bottom: 1px solid #e3eaef;
}
.phcom-cases-fhead strong {
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #162633;
}
.phcom-cases-fcount {
  font-size: 13px;
  color: #6b7781;
}
.phcom-cases-fcount b {
  color: #1B8CBF;
  font-size: 15px;
}
.phcom-cases-reset {
  margin-left: auto;
  border: 0;
  background: none;
  padding: 0;
  font-size: 13px;
  font-weight: 600;
  color: #1B8CBF;
  text-decoration: underline;
  cursor: pointer;
}
.phcom-cases-frow {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 18px 0;
}
.phcom-cases-frow + .phcom-cases-frow {
  border-top: 1px dashed #d7e2e9;
}
.phcom-cases-flabel {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding-top: 7px;
}
.phcom-cases-flabel svg {
  flex-shrink: 0;
  margin-top: 1px;
}
.phcom-cases-flabel span {
  font-size: 14px;
  font-weight: 600;
  color: #162633;
  line-height: 1.3;
}
.phcom-cases-flabel small {
  display: block;
  font-size: 12px;
  font-weight: 400;
  color: #6b7781;
}
.phcom-cases-fchips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.phcom-cases-fchip-dept.on::before {
  content: "\2713  ";
}
@media (max-width: 767.98px) {
  .phcom-cases-filters {
    padding: 4px 16px;
  }
  .phcom-cases-frow {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

/* bloc preuve "cas clients" (_cases_proof.php) */
.phcom-proof-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px 40px;
  margin-bottom: 26px;
}
.phcom-proof-head .phcom-case-h2 {
  margin-bottom: 0;
}
.phcom-proof-stats {
  display: flex;
  gap: 28px;
}
.phcom-proof-stats b {
  display: block;
  font-size: 26px;
  font-weight: 600;
  color: #1B8CBF;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.phcom-proof-stats span {
  display: block;
  font-size: 12px;
  color: #6b7781;
  max-width: 150px;
  line-height: 1.35;
  margin-top: 4px;
}
@media (max-width: 575.98px) {
  .phcom-proof-stats {
    gap: 14px;
  }
  .phcom-proof-stats b {
    font-size: 20px;
  }
}

/* bloc preuve sur mobile : 2 cas suffisent */
@media (max-width: 575.98px) {
  .phcom-proof .phcom-case-card:nth-child(3) {
    display: none;
  }
}

/* ---------- Contact : bandeau fonce, formulaire en carte, photo en goutte ---------- */
.phcom-contact-band {
  background: linear-gradient(120deg, #162633 0%, #1B4A63 100%);
  color: #fff;
  padding: 48px 0 70px;
}
.phcom-contact-h1 {
  color: #fff;
  text-align: center;
  margin: 0 0 16px;
}
.phcom-contact-band .phcom-contact-form,
.phcom-contact-band .phcom-contact-ok {
  position: relative;
  overflow: hidden;
  background: #fff;
  color: #5b6b78;
  border-radius: 22px;
  padding: 22px 32px 20px;
  box-shadow: 0 30px 70px -20px rgba(0, 0, 0, .55);
}
.phcom-contact-band .phcom-contact-form::before,
.phcom-contact-band .phcom-contact-ok::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(90deg, #1B8CBF, #A8C63A);
}
.phcom-contact-band .phcom-contact-ok h2 {
  color: #162633;
}
.phcom-contact-head h2 {
  font-size: 1.5rem;
  color: #162633;
  margin: 0 0 6px;
}
.phcom-contact-head p {
  color: #5b6b78;
  margin: 0 0 14px;
}
.phcom-contact-form .form-control {
  background: #fff;
  border: 1px solid #cfdbe3;
  border-radius: 10px;
  font-size: 16px;
  line-height: 1.5;
  padding: 10px 14px;
  min-height: 46px;
  height: auto;
}
.phcom-contact-form textarea.form-control {
  height: 90px;
}
.phcom-contact-form label {
  font-size: 15px;
  margin-bottom: 4px;
}
/* champs plus rapproches (14px au lieu de 20px) */
.phcom-contact-form .row-20 {
  margin-bottom: -14px;
}
.phcom-contact-form .row-20 > * {
  margin-bottom: 14px;
}
.phcom-contact-head p {
  font-size: 17px;
  line-height: 1.5;
}
.phcom-contact-form .form-control:focus {
  border-color: #1B8CBF;
  box-shadow: 0 0 0 4px rgba(27, 140, 191, .12);
}
.phcom-contact-band .btn.phcom-contact-send {
  --bs-btn-bg: #A8C63A;
  --bs-btn-border-color: #A8C63A;
  --bs-btn-color: #162633;
  --bs-btn-hover-bg: #97b52f;
  --bs-btn-hover-border-color: #97b52f;
  --bs-btn-hover-color: #162633;
  --bs-btn-active-bg: #97b52f;
  --bs-btn-active-border-color: #97b52f;
  --bs-btn-active-color: #162633;
  width: 100%;
  border-radius: 12px;
  background: #A8C63A;
  border-color: #A8C63A;
  color: #162633;
}
.phcom-contact-band .btn.phcom-contact-send:hover,
.phcom-contact-band .btn.phcom-contact-send:focus,
.phcom-contact-band .btn.phcom-contact-send:active {
  background: #97b52f;
  border-color: #97b52f;
  color: #162633;
}
.phcom-contact-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  font-size: 14px;
  color: #5b6b78;
}
@media (min-width: 1200px) {
  .phcom-contact-trust {
    margin-top: 12px;
  }
}
.phcom-contact-trust span {
  color: #A8C63A;
  margin-right: 6px;
}
.phcom-contact-band .alert {
  border-radius: 12px;
}
/* contact direct sur fond fonce */
.phcom-contact-band .phcom-contact-aside {
  background: transparent;
  padding: 10px 0 0;
}
.phcom-contact-band .phcom-contact-aside h2 {
  color: #fff;
  font-size: 1.9rem;
}
.phcom-contact-band .phcom-contact-line {
  color: #fff;
  border-color: rgba(255, 255, 255, .15);
}
.phcom-contact-band .phcom-contact-line:hover {
  color: #A8C63A;
}
.phcom-contact-band .phcom-contact-line span {
  background: rgba(255, 255, 255, .1);
  color: #A8C63A;
}
/* le bloc qui suit le bandeau (diagnostic) ne doit pas coller au fond fonce */
.phcom-contact-band + .section {
  padding-top: 70px !important;
}
@media (max-width: 575.98px) {
  .phcom-contact-band + .section {
    padding-top: 40px !important;
  }
}
/* photo en goutte (meme animation que l'equipe de la home) */
.phcom-contact-photo {
  position: relative;
  max-width: 340px;
  margin: 50px 0 0;
}
.phcom-contact-blob {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 42% 58% 63% 37% / 48% 38% 62% 52%;
  animation: phcomTeamLava 9s ease-in-out infinite;
  box-shadow: 0 30px 60px -25px rgba(0, 0, 0, .6);
}
.phcom-contact-blob img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.phcom-contact-photo figcaption {
  position: absolute;
  left: -10px;
  bottom: 30px;
  padding: 10px 16px;
  border-radius: 30px;
  background: #A8C63A;
  color: #162633;
  font-size: .9rem;
  font-weight: 600;
  box-shadow: 0 10px 25px -10px rgba(0, 0, 0, .5);
}
@media (max-width: 991.98px) {
  .phcom-contact-photo {
    display: none;
  }
}
@media (max-width: 575.98px) {
  .phcom-contact-band {
    padding: 40px 0 50px;
  }
  .phcom-contact-h1 {
    margin-bottom: 28px;
  }
  .phcom-contact-band .phcom-contact-form,
  .phcom-contact-band .phcom-contact-ok {
    padding: 28px 20px 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .phcom-contact-blob {
    animation: none;
  }
}

/* ---------- Icones dans les boutons : discretes, petit mouvement au survol ---------- */
.btn i[class*="fa-"] {
  font-size: .95em;
  transition: transform .25s ease;
}
.btn:hover i.fa-arrow-right {
  transform: translateX(4px);
}
.btn:hover i.fa-arrow-left {
  transform: translateX(-4px);
}
.btn:hover i.fa-calendar,
.btn:hover i.fa-gauge-high,
.btn:hover i.fa-chart-line,
.btn:hover i.fa-headphones,
.btn:hover i.fa-briefcase,
.btn:hover i.fa-envelope,
.btn:hover i.fa-paper-plane {
  transform: rotate(-10deg) scale(1.12);
}
/* bouton pleine largeur sur 2 lignes : l'icone reste collee au texte */
.btn.w-100 {
  display: block;
}
@media (prefers-reduced-motion: reduce) {
  .btn i[class*="fa-"] {
    transition: none;
  }
}

/* ---------- Menu : "Contact" en bouton vert (ordinateur) ---------- */
@media (min-width: 1200px) {
  .phcom-nav-cta > .navbar-navigation-root-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 6px;
    padding: 9px 20px;
    border-radius: 30px;
    background: #A8C63A;
    color: #162633;
    font-weight: 600;
    box-shadow: 0 8px 20px -10px rgba(22, 38, 51, .45);
    transition: background .2s ease, transform .2s ease;
  }
  .phcom-nav-cta > .navbar-navigation-root-link::before,
  .phcom-nav-cta > .navbar-navigation-root-link::after {
    display: none;
  }
  .phcom-nav-cta > .navbar-navigation-root-link:hover,
  .phcom-nav-cta.active > .navbar-navigation-root-link {
    background: #97b52f;
    color: #162633;
  }
  .phcom-nav-cta > .navbar-navigation-root-link:hover {
    transform: translateY(-1px);
  }
  .phcom-nav-cta > .navbar-navigation-root-link i {
    font-size: .95em;
  }
}
/* espace entre l'icone et "Contact" (ordinateur et menu mobile) */
.phcom-nav-cta > .navbar-navigation-root-link i {
  margin-right: 8px;
}

/* ---------- Mobile : bouton d'appel direct a la place des 3 points ---------- */
.phcom-nav-tel {
  display: none;
}
@media (max-width: 1199.98px) {
  .rd-navbar .navbar-info-button {
    display: none;
  }
  .phcom-nav-tel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #A8C63A;
    color: #162633;
    font-size: 17px;
    box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .4);
  }
  .phcom-nav-tel:hover,
  .phcom-nav-tel:focus {
    background: #97b52f;
    color: #162633;
  }
}

/* ---------- Cas clients : nuage decideurs / secteurs / marches ---------- */
.phcom-cloud {
  background: #F5F8FA;
  padding: 60px 0;
}
.phcom-cloud-title {
  margin: 0 0 6px;
}
.phcom-cloud-lead {
  color: #5b6b78;
  margin: 0 0 26px;
}
.phcom-cloud-row {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 18px;
  padding: 16px 0;
  border-top: 1px solid #e3eaef;
}
.phcom-cloud-row h3 {
  margin: 0;
  padding-top: 6px;
  font-size: 15px;
  color: #162633;
}
.phcom-cloud-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.phcom-cloud-chip {
  padding: 6px 13px;
  border: 1px solid #d6e2ea;
  border-radius: 20px;
  background: #fff;
  color: #162633;
  font-size: 14px;
  line-height: 1.3;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.phcom-cloud-chip:hover {
  border-color: #A8C63A;
}
.phcom-cloud-chip.on {
  background: #A8C63A;
  border-color: #A8C63A;
  color: #162633;
}
@media (max-width: 767.98px) {
  .phcom-cloud {
    padding: 40px 0;
  }
  .phcom-cloud-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .phcom-cloud-chip {
    font-size: 13px;
    padding: 5px 11px;
  }
}

/* ---------- Cookies : fenetre de consentement (_cookies.php) ---------- */
.phcom-cookies {
  position: fixed;
  inset: 0;
  z-index: 2147483600;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(22, 38, 51, .62);
}
.phcom-cookies.is-visible {
  display: flex;
}
.phcom-cookies-box {
  position: relative;
  width: 100%;
  max-width: 620px;
  max-height: calc(100vh - 40px);
  overflow: auto;
  padding: 30px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 15px 45px rgba(0, 0, 0, .28);
  color: #162633;
  text-align: left;
}
.phcom-cookies-box h3 {
  margin: 0 0 12px;
  padding-right: 30px;
  font-size: 22px;
  color: #162633;
}
.phcom-cookies-box p {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: #5b6b78;
}
.phcom-cookies-box p a {
  color: #1B8CBF;
  text-decoration: underline;
}
.phcom-cookies-close {
  display: none;
  position: absolute;
  top: 12px;
  right: 16px;
  border: 0;
  background: transparent;
  color: #6b7781;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.phcom-cookies.has-choice .phcom-cookies-close {
  display: block;
}
.phcom-cookies-settings {
  display: none;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #e3eaef;
}
.phcom-cookies-settings.is-visible {
  display: block;
}
.phcom-cookies-option {
  display: block;
  margin: 0 0 10px;
  padding: 12px 14px;
  border: 1px solid #e3eaef;
  border-radius: 6px;
  background: #F5F8FA;
  font-size: 15px;
  line-height: 1.4;
  cursor: pointer;
}
.phcom-cookies-option input {
  margin-right: 8px;
  vertical-align: middle;
  accent-color: #A8C63A;
}
.phcom-cookies-option small {
  display: block;
  margin: 4px 0 0 24px;
  color: #6b7781;
  font-size: 13px;
}
.phcom-cookies-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}
.phcom-cookies-actions .phcom-cookies-btn {
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid #A8C63A;
  border-radius: 6px;
  background: #A8C63A;
  color: #162633;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}
.phcom-cookies-actions .phcom-cookies-btn.secondary {
  background: #fff;
  border-color: #d6e2ea;
}
.phcom-cookies-actions .phcom-cookies-btn:hover {
  border-color: #97b52f;
}
.phcom-cookies-actions .phcom-cookies-btn[hidden] {
  display: none;
}
@media (max-width: 600px) {
  .phcom-cookies {
    align-items: flex-end;
    padding: 10px;
  }
  .phcom-cookies-box {
    padding: 22px;
    max-height: 90vh;
  }
  .phcom-cookies-actions {
    display: block;
  }
  .phcom-cookies-actions .phcom-cookies-btn {
    display: block;
    width: 100%;
    margin-top: 8px;
  }
}

/* ---------- Page confidentialite ---------- */
.phcom-legal {
  max-width: 860px;
}
.phcom-legal-text {
  color: #3d4b56;
  line-height: 1.65;
}
.phcom-legal-text p,
.phcom-legal-text ul {
  margin: 0 0 14px;
}
.phcom-legal-text ul {
  padding-left: 22px;
}
.phcom-legal-text li {
  list-style: disc;
  margin-bottom: 4px;
}
.phcom-legal-text strong {
  color: #162633;
}
.phcom-legal-text a {
  color: #1B8CBF;
}

/* ---------- Corrections apres mise en ligne (lisibilite + responsive) ---------- */
/* news : on ignore les tailles de police collees dans le texte (12pt, 14pt...) pour garder une taille uniforme */
.phcom-news-detail-body {
  font-size: max(1.08rem, 16px);
}
.phcom-news-detail-body p[style*="font-size"],
.phcom-news-detail-body span[style*="font-size"],
.phcom-news-detail-body li[style*="font-size"],
.phcom-news-detail-body div[style*="font-size"],
.phcom-news-detail-body strong[style*="font-size"],
.phcom-news-detail-body em[style*="font-size"],
.phcom-news-detail-body a[style*="font-size"] {
  font-size: inherit !important;
}
/* colonne de droite du blog ("Egalement a lire") : titres plus petits que ceux de la liste */
.widget-area .post-title {
  font-size: 17px;
  line-height: 1.35;
}
/* menu langue : le sous-menu s'aligne a droite (evitait un petit scroll horizontal) */
.navbar-language .navbar-navigation-dropdown {
  left: auto;
  right: 0;
}
/* mobile : marges des grilles larges (g-5) reduites, plus de debordement de quelques pixels */
@media (max-width: 767.98px) {
  .row.g-5 {
    --bs-gutter-x: 1.5rem;
  }
}
