/* Omexis SA — composition responsive finale, commune aux quatre langues */

.form-note a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.form-note a:hover,
.form-note a:focus-visible {
  color: #f3d982;
}

.form-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* Turnstile reste invisible sauf lorsqu'une interaction est nécessaire. */
.contact-turnstile {
  display: flex;
  justify-content: center;
  min-height: 0;
  max-width: 100%;
  margin: 8px auto 0;
}

.contact-turnstile:empty {
  display: none;
  margin: 0;
}

@media (min-width: 761px) and (max-width: 980px) {
  .contact-turnstile {
    justify-content: flex-end;
  }
}

@media (max-width: 760px) {
  .contact-turnstile {
    width: 100%;
    justify-content: center;
    overflow: visible;
  }

  .contact-turnstile > div,
  .contact-turnstile iframe {
    max-width: 100% !important;
  }
}

/* Le bloc de marque est réellement centré sur toute la largeur du pied de page. */
@media (min-width: 981px) {
  footer#site-footer {
    padding-top: 76px !important;
  }

  footer#site-footer .footer-inner {
    grid-template-columns: minmax(220px, 310px) minmax(260px, 320px) !important;
    justify-content: center !important;
    column-gap: clamp(96px, 11vw, 180px) !important;
    row-gap: 52px !important;
    margin-bottom: 64px !important;
  }

  footer#site-footer .footer-brand {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: min(100%, 440px) !important;
    max-width: 440px !important;
    justify-self: center !important;
    margin-inline: auto !important;
  }

  footer#site-footer .footer-brand .omx-logo--footer {
    width: min(100%, 360px) !important;
    max-width: 360px !important;
    margin-inline: auto !important;
  }

  footer#site-footer .footer-brand .omx-logo--footer::before {
    width: min(360px, 100%) !important;
  }

  footer#site-footer .footer-brand-copy {
    margin-inline: auto !important;
  }

  footer#site-footer .footer-links {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }

  footer#site-footer .footer-contact {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
}

@media (min-width: 761px) and (max-width: 980px) {
  .nav,
  .nav.is-scrolled {
    height: 76px !important;
  }

  .nav-inner {
    min-height: 76px !important;
  }

  .nav-links {
    inset: 76px 0 0 !important;
    max-height: calc(100svh - 76px) !important;
    padding: 38px 42px 48px !important;
  }

  #accueil {
    min-height: 0 !important;
    padding: 96px 0 60px !important;
    background-image:
      linear-gradient(90deg, rgba(7, 20, 38, .99) 0%, rgba(7, 20, 38, .92) 52%, rgba(7, 20, 38, .36) 100%),
      linear-gradient(rgba(7, 20, 38, .05), rgba(7, 20, 38, .72)),
      url("omexis-hero-ceo-lavaux-photo-clean.jpg") !important;
    background-position: 0 0, 0 0, 68% center !important;
    background-size: auto, auto, auto 100% !important;
  }

  #accueil > .container {
    width: min(100% - 64px, 760px) !important;
    min-height: 0 !important;
  }

  #accueil .hero-brand-lockup {
    width: min(100%, 380px) !important;
    margin: 0 0 26px !important;
  }

  #accueil .hero-brand-baseline::before {
    margin-bottom: 16px !important;
  }

  #accueil .hero-brand-method {
    margin-top: 10px !important;
    font-size: .86rem !important;
    line-height: 1.5 !important;
  }

  #accueil .hero-title {
    max-width: 14ch !important;
    margin-bottom: 18px !important;
    font-size: clamp(3rem, 6.4vw, 3.4rem) !important;
    line-height: 1.01 !important;
  }

  #accueil .hero-subtitle {
    max-width: 49ch !important;
    margin-bottom: 22px !important;
    font-size: 1.01rem !important;
    line-height: 1.55 !important;
  }

  #accueil .btn-primary {
    min-height: 54px !important;
  }

  #qui-sommes-nous,
  #pourquoi-maintenant,
  #notre-role,
  #resultats,
  #contact {
    padding-top: 76px !important;
    padding-bottom: 76px !important;
  }

  section:not(#accueil) h2 {
    font-size: clamp(2.75rem, 6.25vw, 3.45rem) !important;
    line-height: 1.02 !important;
  }

  section:not(#accueil) .section-intro {
    font-size: 1.04rem !important;
    line-height: 1.65 !important;
  }

  .about-home-grid {
    gap: 34px !important;
    margin-top: 38px !important;
  }

  .about-home-visual {
    aspect-ratio: 16 / 9 !important;
    overflow: hidden !important;
  }

  .about-home-visual img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 36% !important;
  }

  .about-home-principles {
    margin-top: 42px !important;
  }

  .about-home-principles article {
    min-height: 0 !important;
    padding: 26px !important;
  }

  .omexis-method {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 24px !important;
  }

  .omexis-method > span {
    grid-column: 1 / -1 !important;
  }

  .audit-scope-grid {
    gap: 16px !important;
    margin-top: 40px !important;
  }

  .audit-scope-card {
    min-height: 220px !important;
    padding: 27px !important;
  }

  .prevention-grid,
  #resultats .it-lens-grid,
  #contact .contact-layout {
    gap: 38px !important;
  }

  @media (min-width: 821px) {
    .prevention-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
  }

  #resultats .outcomes-panel,
  .contact-form {
    padding: 32px !important;
  }

  footer#site-footer {
    padding-top: 66px !important;
  }

  footer#site-footer .footer-inner {
    grid-template-columns: minmax(220px, 280px) minmax(240px, 300px) !important;
    justify-content: center !important;
    column-gap: 92px !important;
    row-gap: 44px !important;
  }

  footer#site-footer .footer-brand {
    grid-column: 1 / -1 !important;
    justify-self: center !important;
  }

  footer#site-footer .footer-links { grid-column: 1 !important; }
  footer#site-footer .footer-contact { grid-column: 2 !important; }
}

@media (max-width: 760px) {
  body {
    font-size: 16px !important;
  }

  .container,
  .nav-inner,
  #notre-role .container,
  #contact .container,
  #pourquoi-maintenant .container {
    width: min(100% - 28px, 680px) !important;
  }

  .nav,
  .nav.is-scrolled {
    height: 64px !important;
  }

  .nav-inner {
    min-height: 64px !important;
  }

  .omx-logo::before,
  .nav.is-scrolled .omx-logo::before {
    width: min(174px, calc(100vw - 104px)) !important;
    height: 38px !important;
  }

  .menu-toggle,
  .menu-toggle[hidden],
  body.menu-open .menu-toggle,
  body.menu-open .menu-toggle[hidden] {
    flex-basis: 50px !important;
    width: 50px !important;
    height: 46px !important;
  }

  .nav-links {
    inset: 64px 0 0 !important;
    max-height: calc(100svh - 64px) !important;
    gap: 15px !important;
    padding: 28px 24px 38px !important;
  }

  .nav-links a:not(.lang-link) {
    font-size: clamp(1.45rem, 7vw, 1.95rem) !important;
  }

  #accueil {
    min-height: 0 !important;
    padding: 82px 0 42px !important;
    background-image:
      linear-gradient(90deg, rgba(7, 20, 38, .995) 0%, rgba(7, 20, 38, .93) 58%, rgba(7, 20, 38, .50) 100%),
      linear-gradient(rgba(7, 20, 38, .08), rgba(7, 20, 38, .82)),
      url("omexis-hero-ceo-lavaux-photo-clean.jpg") !important;
    background-position: 0 0, 0 0, 66% center !important;
    background-size: auto, auto, auto 100% !important;
  }

  #accueil > .container {
    width: min(100% - 28px, 680px) !important;
    min-height: 0 !important;
  }

  #accueil .hero-brand-lockup {
    width: min(100%, 298px) !important;
    margin: 0 auto 20px !important;
  }

  #accueil .hero-brand-baseline {
    max-width: 30ch !important;
    margin-top: 4px !important;
    font-size: .62rem !important;
    line-height: 1.42 !important;
    letter-spacing: .11em !important;
  }

  #accueil .hero-brand-baseline::before {
    margin: 0 auto 13px !important;
  }

  #accueil .hero-brand-method {
    max-width: 34ch !important;
    margin-top: 9px !important;
    font-size: .8rem !important;
    line-height: 1.48 !important;
  }

  #accueil .hero-title {
    max-width: 14ch !important;
    margin: 0 0 17px !important;
    font-size: clamp(2.08rem, 9.7vw, 2.52rem) !important;
    line-height: 1.01 !important;
    letter-spacing: -.038em !important;
  }

  #accueil .hero-subtitle {
    max-width: 40ch !important;
    margin: 0 0 21px !important;
    font-size: .93rem !important;
    line-height: 1.52 !important;
  }

  #accueil .hero-cta-group .btn-primary,
  .form-submit {
    min-height: 52px !important;
    padding: 13px 18px !important;
    font-size: .76rem !important;
    line-height: 1.25 !important;
  }

  #qui-sommes-nous,
  #pourquoi-maintenant,
  #notre-role,
  #resultats,
  #contact {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
  }

  #accueil .hero-tag,
  #qui-sommes-nous .section-tag,
  #pourquoi-maintenant .prevention-kicker,
  #notre-role .section-tag,
  #resultats .section-tag,
  #contact .section-tag {
    margin-bottom: 20px !important;
    gap: 10px !important;
    font-size: .7rem !important;
    letter-spacing: .09em !important;
  }

  #accueil .hero-tag::before,
  #qui-sommes-nous .section-tag::before,
  #pourquoi-maintenant .prevention-kicker::before,
  #notre-role .section-tag::before,
  #resultats .section-tag::before,
  #contact .section-tag::before {
    width: 30px !important;
  }

  section:not(#accueil) h2,
  #contact h2 {
    max-width: 18ch !important;
    font-size: clamp(2.05rem, 9.2vw, 2.5rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -.035em !important;
  }

  section:not(#accueil) .section-intro {
    font-size: .98rem !important;
    line-height: 1.62 !important;
  }

  .about-home-grid {
    gap: 24px !important;
    margin-top: 30px !important;
  }

  .about-home-visual {
    aspect-ratio: 4 / 3 !important;
    overflow: hidden !important;
  }

  .about-home-visual img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 35% !important;
  }

  .about-home-copy p {
    font-size: .96rem !important;
    line-height: 1.62 !important;
  }

  .about-home-copy strong {
    font-size: 1.2rem !important;
    line-height: 1.3 !important;
  }

  .about-home-principles {
    margin-top: 34px !important;
  }

  .about-home-principles article,
  .audit-scope-card {
    min-height: 0 !important;
    padding: 23px 21px !important;
  }

  .about-home-principles h3,
  .audit-scope-card h3 {
    margin-bottom: 9px !important;
    font-size: 1.12rem !important;
  }

  .about-home-principles p,
  .audit-scope-card p {
    font-size: .92rem !important;
    line-height: 1.56 !important;
  }

  .omexis-method {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-top: 30px !important;
    padding: 20px !important;
  }

  .omexis-method > span {
    grid-column: 1 / -1 !important;
    margin-bottom: 4px !important;
  }

  .method-step {
    min-height: 62px !important;
    padding: 12px 10px !important;
    display: grid !important;
    place-items: center !important;
    text-align: center !important;
    font-size: .75rem !important;
  }

  #pourquoi-maintenant h2 {
    max-width: 15ch !important;
    margin-bottom: 34px !important;
  }

  .prevention-grid {
    gap: 32px !important;
  }

  .prevention-story > p,
  .prevention-consequence > p {
    margin-bottom: 19px !important;
    font-size: .96rem !important;
    line-height: 1.62 !important;
  }

  .prevention-objections {
    margin-top: 24px !important;
    padding: 21px 19px !important;
  }

  .prevention-objections p {
    padding: 9px 0 !important;
    font-size: 1.08rem !important;
  }

  .prevention-intervention {
    margin: 24px 0 18px !important;
    padding-left: 16px !important;
    font-size: 1.42rem !important;
  }

  .prevention-conclusion {
    margin-top: 26px !important;
    padding-top: 22px !important;
    font-size: 1.08rem !important;
  }

  .audit-scope-grid {
    gap: 12px !important;
    margin-top: 32px !important;
  }

  .audit-scope-card::before {
    margin-bottom: 16px !important;
  }

  #resultats .it-lens-grid {
    gap: 32px !important;
  }

  #resultats .results-conclusion {
    margin-top: 27px !important;
    padding-left: 15px !important;
    font-size: 1.3rem !important;
  }

  #resultats .outcomes-panel,
  .contact-form {
    padding: 23px 20px !important;
  }

  #resultats .outcomes-panel li,
  #contact .contact-checks li {
    font-size: .94rem !important;
    line-height: 1.5 !important;
  }

  #contact .contact-layout {
    gap: 34px !important;
    margin-top: 32px !important;
  }

  #contact .contact-outcome {
    padding: 18px !important;
  }

  .form-group input,
  .form-group textarea {
    min-height: 48px !important;
    font-size: 16px !important;
  }

  .form-group textarea {
    min-height: 118px !important;
  }

  footer#site-footer {
    padding-top: 56px !important;
  }

  footer#site-footer > .container {
    width: min(100% - 32px, 680px) !important;
  }

  footer#site-footer .footer-inner {
    gap: 34px !important;
    margin-bottom: 48px !important;
  }

  footer#site-footer .footer-brand .omx-logo--footer {
    max-width: 300px !important;
  }

  footer#site-footer .footer-brand .omx-logo--footer::before {
    width: min(300px, 100%) !important;
  }

  footer#site-footer .footer-brand-copy {
    width: min(100%, 320px) !important;
    margin-top: -18px !important;
  }

  footer#site-footer .footer-links,
  footer#site-footer .footer-contact {
    justify-self: center !important;
    text-align: center !important;
  }

  footer#site-footer .footer-links ul,
  footer#site-footer .footer-contact-card,
  footer#site-footer .footer-contact-address,
  footer#site-footer .footer-contact-actions,
  footer#site-footer .footer-contact-link {
    justify-items: center !important;
  }
}

@media (max-width: 390px) {
  .container,
  .nav-inner,
  #notre-role .container,
  #contact .container,
  #pourquoi-maintenant .container,
  #accueil > .container {
    width: min(100% - 24px, 680px) !important;
  }

  #accueil .hero-brand-lockup {
    width: min(100%, 276px) !important;
  }

  #accueil .hero-title {
    font-size: clamp(2rem, 10.1vw, 2.35rem) !important;
  }

  section:not(#accueil) h2,
  #contact h2 {
    font-size: clamp(1.95rem, 9.5vw, 2.3rem) !important;
  }
}

/* Les séparateurs textuels restent strictement réservés au header mobile. */
.lang-separator {
  display: none;
}

/* Sélecteur de langue permanent dans le header mobile.
   Le bloc existant est conservé : aucun second routage de langue n'est créé. */
@media (max-width: 760px),
       (orientation: landscape) and (max-width: 950px) and (max-height: 500px) {
  .nav,
  .nav.is-scrolled {
    height: 64px !important;
  }

  .nav-inner {
    display: grid !important;
    width: min(100% - 28px, 922px) !important;
    grid-template-columns: minmax(0, 1fr) auto 50px !important;
    grid-template-rows: 64px !important;
    min-height: 64px !important;
    align-items: center !important;
    column-gap: clamp(5px, 1.8vw, 9px) !important;
  }

  .nav .omx-logo {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
  }

  .nav .omx-logo::before,
  .nav.is-scrolled .omx-logo::before {
    width: min(174px, calc(100vw - 280px)) !important;
    min-width: 118px !important;
    height: 38px !important;
  }

  .nav .nav-links {
    display: contents !important;
  }

  .nav .nav-links > li:not(.lang-switch) {
    display: none !important;
  }

  .nav .nav-links .lang-switch {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: center !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    white-space: nowrap !important;
  }

  .nav .nav-links .lang-link,
  .nav .nav-links .lang-link:link,
  .nav .nav-links .lang-link:visited {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 clamp(2px, .65vw, 4px) !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(248, 246, 239, .78) !important;
    font-family: inherit !important;
    font-size: clamp(.56rem, 2.7vw, .69rem) !important;
    font-weight: 760 !important;
    line-height: 1 !important;
    letter-spacing: .04em !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    -webkit-appearance: none !important;
    appearance: none !important;
  }

  .nav .nav-links .lang-separator {
    display: inline-block !important;
    margin: 0 clamp(2px, .55vw, 3px) !important;
    color: rgba(248, 246, 239, .34) !important;
    font-size: clamp(.56rem, 2.7vw, .69rem) !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    pointer-events: none !important;
  }

  .nav .nav-links .lang-link.is-current,
  .nav .nav-links .lang-link[aria-current="page"] {
    background: transparent !important;
    color: #F3D982 !important;
  }

  .nav .nav-links .lang-link:hover,
  .nav .nav-links .lang-link:active {
    background: transparent !important;
    color: #F3D982 !important;
  }

  .nav .nav-links .lang-link:focus-visible {
    outline: 1px solid #D6001C !important;
    outline-offset: 2px !important;
  }

  .nav .menu-toggle,
  .nav .menu-toggle[hidden] {
    grid-column: 3 !important;
    grid-row: 1 !important;
    position: relative !important;
    flex: 0 0 50px !important;
    width: 50px !important;
    height: 46px !important;
    margin: 0 !important;
  }

  body.menu-open .nav .menu-toggle,
  body.menu-open .nav .menu-toggle[hidden] {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    flex: 0 0 50px !important;
    width: 50px !important;
    height: 46px !important;
  }

  body.menu-open .nav {
    inset: 0 0 auto 0 !important;
    width: 100% !important;
    height: 64px !important;
    min-height: 64px !important;
    overflow: visible !important;
    transform: none !important;
    filter: none !important;
    backdrop-filter: none !important;
    contain: none !important;
  }

  body.menu-open .nav-inner {
    height: 64px !important;
    min-height: 64px !important;
    align-self: start !important;
  }

  body.menu-open .nav .nav-links {
    display: flex !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: calc(12px + env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    transform: none !important;
  }

  body.menu-open .nav .nav-links > li:not(.lang-switch) {
    display: block !important;
  }

  body.menu-open .nav .nav-links .lang-switch {
    position: sticky !important;
    top: 0 !important;
    right: auto !important;
    order: -1 !important;
    align-self: flex-end !important;
    z-index: 9998 !important;
    margin: 0 56px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  body.menu-open .nav .omx-logo,
  body.menu-open .nav .menu-toggle,
  body.menu-open .nav .nav-links .lang-switch {
    z-index: 9999 !important;
  }

  body.menu-open .nav .menu-toggle::after {
    content: "CLOSE" !important;
  }
}

/* Photo « Une expertise » : conserver l'image complète sur téléphone portrait. */
@media (max-width: 760px) and (orientation: portrait) {
  #qui-sommes-nous .about-home-visual {
    aspect-ratio: auto !important;
    overflow: visible !important;
  }

  #qui-sommes-nous .about-home-visual img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center top !important;
  }
}
