/* Public pages only — overrides Framer + desktop customizations on phone/tablet.
   Avoid transform on Motion-animated nodes (hero frame, ticker, CTA glow). */

html {
  overflow-x: clip;
  max-width: 100%;
}

body {
  max-width: 100%;
}

#main {
  max-width: 100%;
}

a[href],
button,
[role="button"],
.cb-lang-toggle button {
  touch-action: manipulation;
}

/* -------------------------------------------------------------------------- */
/* Language switcher — keep tappable, never cover hamburger or wordmark      */
/* -------------------------------------------------------------------------- */
.cb-lang-toggle {
  z-index: 50;
}

.cb-lang-toggle button {
  min-width: 36px;
  min-height: 44px;
  padding: 10px 8px;
}

header[data-framer-name="header"] [data-framer-name="wrapper"],
.framer-1pm0aak {
  position: relative;
}

/* Hero ticker — clip the mask, do not freeze margin-top animation */
.framer-JUWX9 {
  overflow: hidden;
  max-width: 100%;
}

/* -------------------------------------------------------------------------- */
/* CTA « Réserver un appel » — 26px + 64px padding overflow the scaled pill  */
/* -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  #cta .framer-1y26830,
  #ghdar1 {
    max-width: calc(100vw - 32px) !important;
  }

  #cta .framer-tTdag .framer-2v841v,
  #1y26830 .framer-tTdag .framer-2v841v,
  #ghdar1 .framer-tTdag .framer-2v841v,
  .framer-8gexmw-container .framer-tTdag .framer-2v841v,
  .framer-5pre89-container .framer-tTdag .framer-2v841v {
    padding: 0 28px !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 809.98px) {
  #cta .framer-1y26830 {
    width: min(236px, calc(100vw - 32px)) !important;
    min-width: 0 !important;
    height: 56px !important;
    min-height: 44px !important;
  }

  #ghdar1 {
    width: min(236px, calc(100vw - 32px)) !important;
    min-width: 0 !important;
    height: 56px !important;
    min-height: 44px !important;
  }

  #cta .framer-tTdag .framer-2v841v,
  #1y26830 .framer-tTdag .framer-2v841v,
  #ghdar1 .framer-tTdag .framer-2v841v,
  .framer-8gexmw-container .framer-tTdag .framer-2v841v,
  .framer-5pre89-container .framer-tTdag .framer-2v841v {
    padding: 0 24px !important;
  }
}

@media (max-width: 389.98px) {
  #cta .framer-tTdag .framer-2v841v,
  #ghdar1 .framer-tTdag .framer-2v841v {
    padding: 0 16px !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Footer ≤1024px — drop Framer absolute layout, real document stack         */
/* DOM: vo0pfi[wordmark, nav, portrait+CTA, LinkedIn] + email + copyright    */
/* display:contents on vo0pfi so email can sit between nav and portrait.     */
/* -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  footer.framer-5B25q,
  .framer-5B25q.framer-1f07vkb,
  .framer-5B25q.framer-v-95f0o3.framer-1f07vkb {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    gap: 16px !important;
    padding: 32px 16px 24px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  .framer-5B25q .framer-vo0pfi,
  .framer-5B25q.framer-v-95f0o3 .framer-vo0pfi {
    display: contents !important;
  }

  .framer-5B25q .framer-18boyvi,
  .framer-5B25q.framer-v-95f0o3 .framer-18boyvi {
    order: 1 !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    gap: 16px !important;
    margin: 0 0 24px !important;
    padding: 0 8px 8px !important;
    overflow: visible !important;
  }

  .framer-5B25q .framer-fzg97m,
  .framer-5B25q.framer-v-95f0o3 .framer-fzg97m {
    order: 1 !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  .framer-5B25q .framer-fzg97m h4,
  .framer-5B25q .framer-1wtuexu .framer-text,
  .framer-5B25q .framer-16iuruo .framer-text {
    --framer-font-size: clamp(28px, 8vw, 50px) !important;
    font-size: clamp(28px, 8vw, 50px) !important;
    line-height: 1.2 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  /* Hide duplicate shine/glow layers — they stack absolute and collide on mobile */
  .framer-5B25q .framer-1mcna4l,
  .framer-5B25q .framer-dw6r6q {
    display: none !important;
  }

  .framer-5B25q .framer-1wtuexu,
  .framer-5B25q .framer-16iuruo {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
  }

  .framer-5B25q .framer-16iuruo {
    display: none !important;
  }

  .framer-5B25q .framer-1g1y973 {
    order: 2 !important;
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
    white-space: normal !important;
    margin: 0 !important;
    padding: 0 4px !important;
  }

  .framer-5B25q .framer-3q5u2s,
  .framer-5B25q.framer-v-95f0o3 .framer-3q5u2s {
    order: 3 !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    bottom: auto !important;
    right: auto !important;
    transform: none !important;
    width: 56px !important;
    height: 56px !important;
    flex: none !important;
    margin: 4px auto 0 !important;
    z-index: 1 !important;
  }

  .framer-5B25q .framer-w34hq3,
  .framer-5B25q.framer-v-95f0o3 .framer-w34hq3 {
    order: 2 !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    bottom: auto !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 12px 20px !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    padding: 8px 4px !important;
    z-index: 4 !important;
  }

  .framer-5B25q .framer-w34hq3 .framer-1yljzdc,
  .framer-5B25q .framer-w34hq3 .framer-mcouqu,
  .framer-5B25q .framer-w34hq3 .framer-1tqshh4 {
    position: relative !important;
    transform: none !important;
    white-space: normal !important;
    width: auto !important;
    flex: 0 0 auto !important;
  }

  .framer-5B25q .framer-w34hq3 a {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    min-height: 44px !important;
    padding: 8px 4px !important;
    white-space: nowrap !important;
    z-index: 5 !important;
  }

  .framer-5B25q .framer-gi3yu2,
  .framer-5B25q.framer-v-95f0o3 .framer-gi3yu2 {
    order: 3 !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    bottom: auto !important;
    right: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 4px 8px 8px !important;
    white-space: normal !important;
    text-align: center !important;
    z-index: 3 !important;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .framer-5B25q .framer-gi3yu2 p,
  .framer-5B25q .framer-gi3yu2 a {
    white-space: normal !important;
    text-align: center !important;
    display: inline-block !important;
    max-width: 100% !important;
    min-height: 44px !important;
    line-height: 1.4 !important;
    padding: 8px 4px !important;
  }

  .framer-5B25q .framer-1c9vjwc,
  .framer-5B25q.framer-v-95f0o3 .framer-1c9vjwc {
    order: 4 !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: unset !important;
    overflow: visible !important;
    margin: 8px 0 0 !important;
  }

  .framer-5B25q .framer-16v4dia {
    order: 1 !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    bottom: auto !important;
    right: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 0 20px !important;
    padding: 0 8px !important;
    z-index: 2 !important;
    gap: 12px !important;
  }

  .framer-5B25q .framer-7o4wxl {
    white-space: normal !important;
    text-align: center !important;
    max-width: 100% !important;
  }

  .framer-5B25q .framer-2kdg3s-container {
    position: relative !important;
    margin: 0 auto 4px !important;
    max-width: 100% !important;
  }

  .framer-5B25q .framer-1c9vjwc > [data-framer-background-image-wrapper] {
    order: 2 !important;
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: min(280px, 78vw) !important;
    height: auto !important;
    aspect-ratio: 960 / 1088 !important;
    overflow: visible !important;
  }

  .framer-5B25q .framer-1c9vjwc img {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center bottom !important;
  }

  .framer-5B25q .framer-19keo7v,
  .framer-5B25q.framer-v-95f0o3 .framer-19keo7v {
    order: 5 !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    bottom: auto !important;
    right: auto !important;
    transform: none !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 12px auto 8px !important;
    z-index: 3 !important;
  }

  .framer-5B25q .framer-19keo7v .framer-1dtcl7m {
    position: absolute !important;
    inset: 0 !important;
  }

  .framer-5B25q .framer-158p9c2,
  .framer-5B25q.framer-v-95f0o3 .framer-158p9c2 {
    order: 6 !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    margin-top: 20px !important;
    padding: 12px 0 8px !important;
    isolation: isolate !important;
  }

  .framer-5B25q .framer-a9lwfo {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    margin: 8px 0 0 !important;
    padding: 0 12px !important;
    text-align: center !important;
  }

  .framer-5B25q .framer-a9lwfo .framer-text {
    --framer-font-size: clamp(28px, 10vw, 64px) !important;
    font-size: clamp(28px, 10vw, 64px) !important;
    line-height: 1.1 !important;
    white-space: normal !important;
    text-align: center !important;
    overflow-wrap: break-word !important;
  }

  .framer-5B25q .framer-1bmhf1b {
    flex-wrap: wrap !important;
    padding: 12px 8px 24px !important;
    width: 100% !important;
  }

  .framer-5B25q .framer-1mktxeb {
    order: 7 !important;
    position: relative !important;
    width: 100% !important;
    text-align: center !important;
  }
}

/* -------------------------------------------------------------------------- */
/* About — mobile column (framer-c1nsz2): full-width portrait, 3-badge stack */
/* overlaid lower-left on the jacket (not below the photo, not over the face). */
/* -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  #about .framer-c1nsz2,
  #about .framer-c1nsz2.hidden-qz0mh0,
  #about .framer-c1nsz2.hidden-b2le3j {
    display: flex !important;
    visibility: visible !important;
    position: relative !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 340px !important;
    height: auto !important;
    min-height: 0 !important;
    gap: 0 !important;
    margin: 0 auto 8px !important;
    overflow: visible !important;
  }

  #about .framer-c1nsz2 .framer-bu08ci {
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    max-width: 340px !important;
    height: auto !important;
    aspect-ratio: 3 / 4 !important;
    overflow: hidden !important;
    mask-image: none !important;
    -webkit-mask-image: none !important;
    pointer-events: none;
  }

  #about .framer-c1nsz2 .framer-bu08ci [data-framer-background-image-wrapper] {
    position: absolute !important;
    inset: 0 !important;
  }

  #about .framer-c1nsz2 .framer-bu08ci [data-framer-background-image-wrapper]::after {
    content: "";
    position: absolute;
    inset: 0;
    background: url("/about-chouaib.png") center 18% / cover no-repeat;
    z-index: 1;
    pointer-events: none;
  }

  #about .framer-c1nsz2 .framer-bu08ci img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 18% !important;
    opacity: 0 !important;
  }

  /* Framer already scales this node (~0.75). Override smaller; origin bottom-left. */
  #about .framer-c1nsz2 .framer-1duz2dh {
    position: absolute !important;
    left: 14px !important;
    right: auto !important;
    top: auto !important;
    bottom: 20px !important;
    z-index: 8 !important;
    width: 169px !important;
    max-width: 169px !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    justify-content: flex-end !important;
    align-items: flex-start !important;
    gap: 10px !important;
    transform: scale(0.48) !important;
    transform-origin: left bottom !important;
    pointer-events: auto;
  }

  #about .framer-c1nsz2 .framer-1r1vexc,
  #about .framer-c1nsz2 .framer-1bwz1g8,
  #about .framer-c1nsz2 .framer-1nigeih {
    width: 169px !important;
    max-width: 169px !important;
    flex: none !important;
    height: auto !important;
    min-height: 0 !important;
    gap: 10px !important;
    padding: 10px 10px 8px !important;
  }

  /* Compensate scale(0.48) so labels/logos stay readable (~11px / ~30px visual). */
  #about .framer-c1nsz2 .framer-1duz2dh p {
    font-size: 22px !important;
    line-height: 1.15 !important;
  }

  #about .framer-c1nsz2 .framer-59ksk8 {
    width: 64px !important;
  }

  #about .framer-c1nsz2 .framer-1ugjxem {
    width: 110px !important;
  }

  .framer-Vjywg .framer-100fhhq-container,
  .framer-Vjywg .framer-1j2467n {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 240px !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    inset: auto !important;
  }
}

@media (max-width: 809.98px) {
  .framer-Vjywg .framer-1j2467n {
    mask-image: none !important;
    -webkit-mask-image: none !important;
  }

  .framer-Vjywg .framer-100fhhq-container {
    aspect-ratio: 3 / 4;
    overflow: hidden;
  }

  .framer-Vjywg .framer-100fhhq-container img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .framer-Vjywg .framer-5u1hvt {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  .framer-Vjywg .framer-yb318k,
  .framer-Vjywg .framer-hvzjat,
  .framer-Vjywg .framer-9ql10g,
  .framer-Vjywg .framer-1uxdt0w {
    height: auto !important;
    min-height: 44px !important;
    flex: 1 1 calc(50% - 8px) !important;
    max-width: 100% !important;
    width: auto !important;
  }
}

@media (max-width: 389.98px) {
  .framer-Vjywg .framer-yb318k,
  .framer-Vjywg .framer-hvzjat,
  .framer-Vjywg .framer-9ql10g,
  .framer-Vjywg .framer-1uxdt0w {
    flex: 1 1 100% !important;
  }
}

/* -------------------------------------------------------------------------- */
/* About — desktop/tablet platform badge cards: icon left, label centered      */
/* Targets .framer-bg5a7f row (≥1200) and .framer-1bcrwwu overlay (810–1199) */
/* -------------------------------------------------------------------------- */
@media (min-width: 810px) {
  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt,
  .framer-Vjywg .framer-1bcrwwu {
    align-items: center !important;
    justify-content: space-between !important;
  }

  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt .framer-yb318k,
  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt .framer-hvzjat,
  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt .framer-9ql10g,
  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt .framer-1uxdt0w,
  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt a.framer-1s4boyn,
  .framer-Vjywg .framer-1bcrwwu .framer-yb318k,
  .framer-Vjywg .framer-1bcrwwu .framer-hvzjat,
  .framer-Vjywg .framer-1bcrwwu .framer-9ql10g,
  .framer-Vjywg .framer-1bcrwwu .framer-1uxdt0w,
  .framer-Vjywg .framer-1bcrwwu a.framer-1s4boyn {
    display: flex !important;
    flex-flow: row !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 14px !important;
    padding: 12px 14px !important;
    height: 110px !important;
    min-height: 110px !important;
    max-height: 110px !important;
    box-sizing: border-box !important;
    transform-origin: center center !important;
  }

  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt .framer-pwxmyy,
  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt .framer-1htet2h,
  .framer-Vjywg .framer-1bcrwwu .framer-pwxmyy,
  .framer-Vjywg .framer-1bcrwwu .framer-1htet2h {
    flex: none !important;
    width: 37px !important;
    max-width: 37px !important;
    height: auto !important;
    align-self: center !important;
  }

  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt .framer-ik62wx,
  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt .framer-1yr87bc,
  .framer-Vjywg .framer-1bcrwwu .framer-ik62wx,
  .framer-Vjywg .framer-1bcrwwu .framer-1yr87bc {
    flex: none !important;
    width: 40px !important;
    max-width: 40px !important;
    height: auto !important;
    align-self: center !important;
  }

  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt .framer-16jbg7p,
  .framer-Vjywg .framer-1bcrwwu .framer-16jbg7p {
    flex: none !important;
    width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    align-self: center !important;
  }

  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt [data-framer-component-type="RichTextContainer"],
  .framer-Vjywg .framer-1bcrwwu [data-framer-component-type="RichTextContainer"] {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    align-self: center !important;
    transform: none !important;
  }

  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt p,
  .framer-Vjywg .framer-1bcrwwu p {
    text-align: left !important;
    display: block !important;
    -webkit-box-orient: unset !important;
    -webkit-line-clamp: unset !important;
    overflow: visible !important;
    max-width: none !important;
    line-height: 1.3em !important;
    margin: 0 !important;
  }

  .framer-Vjywg .framer-bg5a7f .framer-5u1hvt img,
  .framer-Vjywg .framer-1bcrwwu img {
    object-fit: contain !important;
    object-position: center !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Services — sticky scroll cards: left image + text (match card 03 layout)   */
/* Desktop/tablet only — mobile keeps Framer Phone Services column layout.     */
/* -------------------------------------------------------------------------- */
@media (min-width: 810px) {
  #services .framer-4afxF.framer-9s36j {
    flex-flow: row !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: clamp(48px, 7vw, 110px) !important;
    width: 100% !important;
    max-width: 1170px !important;
    min-height: 530px !important;
    height: min-content !important;
    padding: 0 !important;
  }

  #services [data-framer-name="Left-Image"] {
    display: flex !important;
    flex: 1 0 48% !important;
    max-width: 440px !important;
    width: 1px !important;
    height: min-content !important;
    opacity: 1 !important;
    visibility: visible !important;
    border-radius: 14px !important;
    overflow: hidden !important;
  }

  #services [data-framer-name="left img"],
  #services .framer-fwyk17 {
    height: 530px !important;
    min-height: 530px !important;
    width: 100% !important;
    flex: none !important;
    order: unset !important;
    border-radius: 14px !important;
    overflow: hidden !important;
  }

  #services [data-framer-name="Left-Image"] img,
  #services [data-framer-name="left img"] img,
  #services .framer-fwyk17 img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 14px !important;
  }

  #services [data-framer-name="Service Container"] {
    flex: 1 0 0 !important;
    max-width: 424px !important;
    width: 1px !important;
    align-self: stretch !important;
    height: auto !important;
  }

  /* Neutralize Phone Services column overrides when visible on tablet/desktop */
  #services .framer-4afxF.framer-v-19gib7m.framer-9s36j {
    flex-direction: row !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 1170px !important;
    height: min-content !important;
    min-height: 530px !important;
    gap: clamp(48px, 7vw, 110px) !important;
    padding: 0 !important;
  }

  #services .framer-4afxF.framer-v-19gib7m [data-framer-name="Left-Image"] {
    flex: 1 0 48% !important;
    width: 1px !important;
    max-width: 440px !important;
    height: min-content !important;
  }

  #services .framer-4afxF.framer-v-19gib7m [data-framer-name="Service Container"] {
    width: 1px !important;
    height: auto !important;
    align-self: stretch !important;
    flex: 1 0 0 !important;
  }

  #services .framer-4afxF.framer-v-n7e3ab.framer-9s36j {
    gap: 60px !important;
    max-width: 810px !important;
  }

  #services .framer-4afxF.framer-v-n7e3ab [data-framer-name="Left-Image"] {
    flex: none !important;
    width: 440px !important;
    max-width: 440px !important;
  }

  /* Consistent card height for even sticky-scroll rhythm */
  #services .framer-6kr7gi-container,
  #services .framer-DYFAP .framer-2n9jgv {
    min-height: 530px !important;
  }

  #services [id="sticky-trigger 01"],
  #services [id^="sticky-trigger-"] {
    min-height: 530px !important;
  }

  /* Single left image per card — hide any right preview column */
  #services [data-framer-name="Right-Image"],
  #services [data-framer-name="right img"],
  #services .framer-services-right-img,
  #services .framer-services-right-image {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  #services [id="sticky-trigger 01"] .framer-4afxF.framer-9s36j,
  #services [id^="sticky-trigger-"] .framer-4afxF.framer-9s36j {
    max-width: 1170px !important;
    flex-wrap: nowrap !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Selected Work / FAQ / flower / services / marquee                         */
/* -------------------------------------------------------------------------- */

/* Flower overlay copy — wrap EN/FR. Do not touch #1hwqm1l canvas. */
#section2 .framer-10qg98q-container,
#section2 [data-framer-name="Scroll Motion Text"] {
  width: min(720px, 90vw) !important;
  max-width: min(720px, 90vw) !important;
  height: auto !important;
  min-height: 4.2em !important;
  overflow: visible !important;
}

#section2 .framer-1u2liz [aria-label],
#section2 .framer-10qg98q-container [aria-label] {
  display: block !important;
  white-space: pre-wrap !important;
  overflow: visible !important;
  height: auto !important;
  min-height: 3.8em;
  max-width: min(720px, 90vw) !important;
  width: 100% !important;
  text-align: center !important;
  flex-wrap: wrap !important;
  word-spacing: 0.12em;
  overflow-wrap: break-word;
  color: #fff !important;
}

#section2 .framer-1u2liz [aria-label] span {
  /* color set per-letter by Framer / applyFlower */
}

html[data-cb-lang="en"] #section2 .framer-1u2liz [aria-label],
html[data-cb-lang="en"] #section2 .framer-1u2liz [aria-label] span {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

#section2 [aria-label] .cb-i18n-space {
  display: inline-block !important;
  min-width: 0.32em !important;
  width: 0.32em !important;
  white-space: pre !important;
}

@media (max-width: 809.98px) {
  .framer-Vjywg .framer-r9htT,
  .framer-Vjywg .framer-105mr11-container,
  .framer-Vjywg .framer-re1f4v-container,
  .framer-Vjywg .framer-7ctcbh-container,
  .framer-Vjywg .framer-u2rz5h-container,
  .framer-Vjywg .framer-191dwy3-container {
    width: 100% !important;
    max-width: 100% !important;
  }

  .framer-Vjywg .framer-khl74z,
  .framer-Vjywg .framer-125a698,
  .framer-Vjywg .framer-158wcd1,
  .framer-Vjywg .framer-ue0qof,
  .framer-Vjywg .framer-2jilwi {
    width: 100% !important;
    max-width: 100% !important;
  }

  .framer-m6swbk .framer-text {
    --framer-font-size: clamp(28px, 9vw, 56px) !important;
    font-size: clamp(28px, 9vw, 56px) !important;
  }

  #section2 .framer-1u2liz [aria-label],
  #section2 .framer-10qg98q-container {
    max-width: min(720px, 90vw) !important;
    white-space: pre-wrap !important;
    overflow-wrap: break-word;
    overflow: visible !important;
  }

  .framer-Vjywg .framer-apqyjb {
    width: 100% !important;
    gap: 20px !important;
  }

  .framer-Vjywg .framer-1nigeih {
    width: min(100%, 183px) !important;
  }
}

[id="1.2"] {
  max-width: 100%;
  overflow: hidden;
}

[id="1.2"] .framer-cpdGy section {
  overflow: hidden !important;
  max-width: 100%;
}

/* FAQ rows: readable, wrapping EN strings */
@media (max-width: 809.98px) {
  [data-framer-name="FAQ"] span,
  .framer-Vjywg [style*="padding:23px 26px"] {
    word-break: break-word;
  }
}

/* Mobile nav overlay titles */
@media (max-width: 809.98px) {
  .framer-JxHPJ .framer-1yrjpu .framer-text {
    --framer-font-size: clamp(36px, 12vw, 60px) !important;
    font-size: clamp(36px, 12vw, 60px) !important;
  }

  .framer-26mG5.framer-1i3853m {
    min-width: 44px;
    min-height: 44px;
  }

  .cb-lang-toggle {
    right: 50px;
    top: 50%;
  }
}

/* -------------------------------------------------------------------------- */
/* Contact + privacy typography / forms                                      */
/* -------------------------------------------------------------------------- */
@media (max-width: 809.98px) {
  .framer-4HLpd,
  .framer-VZihn {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: clip;
  }

  input,
  textarea,
  select {
    max-width: 100% !important;
    font-size: 16px !important;
  }

  h1 .framer-text,
  h1 {
    overflow-wrap: break-word;
  }
}

@media (max-width: 389.98px) {
  .framer-VZihn h1,
  [style*="font-size:45px"] {
    font-size: 32px !important;
    line-height: 1.1 !important;
  }
}

/* Desktop-only customizations stay at 1440+; no extra rules needed. */

@media (prefers-reduced-motion: reduce) {
  [id="1.2"] .framer-cpdGy ul {
    animation-duration: 80s !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Selected Work / featured-cases — overlay copy left-aligned (desktop+mobile) */
/* Title, View label, category · client · year. Do not touch footer rules.   */
/* -------------------------------------------------------------------------- */
#featured-cases .framer-r9htT,
.framer-2jilwi .framer-r9htT,
.framer-r9htT.framer-6f0g5b {
  overflow: hidden !important;
}

#featured-cases .framer-r9htT .framer-ovl2bf,
.framer-2jilwi .framer-r9htT .framer-ovl2bf,
.framer-r9htT .framer-ovl2bf {
  align-items: flex-start !important;
  justify-content: flex-end !important;
  place-content: flex-end flex-start !important;
}

#featured-cases .framer-r9htT .framer-1yks5y1,
.framer-2jilwi .framer-r9htT .framer-1yks5y1,
.framer-r9htT .framer-1yks5y1,
.framer-r9htT.framer-v-6f0g5b.hover .framer-1yks5y1,
.framer-r9htT.hover .framer-1yks5y1 {
  justify-content: flex-start !important;
  align-items: flex-end !important;
  text-align: left !important;
  left: 20px !important;
  right: 20px !important;
  padding: 0 !important;
  gap: 10px !important;
  max-width: calc(100% - 40px) !important;
  box-sizing: border-box !important;
}

#featured-cases .framer-r9htT [data-framer-name="Text"],
.framer-2jilwi .framer-r9htT [data-framer-name="Text"],
.framer-r9htT .framer-1wl9exo,
.framer-r9htT.hover .framer-1wl9exo {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  text-align: left !important;
  --framer-text-alignment: left !important;
  white-space: normal !important;
  max-width: 100% !important;
  width: auto !important;
  flex: 1 1 auto !important;
}

#featured-cases .framer-r9htT h2,
#featured-cases .framer-r9htT h2.framer-text,
#featured-cases .framer-r9htT p,
#featured-cases .framer-r9htT .framer-text,
.framer-2jilwi .framer-r9htT h2,
.framer-2jilwi .framer-r9htT h2.framer-text,
.framer-2jilwi .framer-r9htT p,
.framer-2jilwi .framer-r9htT .framer-text,
.framer-r9htT .framer-1yks5y1 h2,
.framer-r9htT .framer-1yks5y1 p,
.framer-r9htT .framer-1yks5y1 .framer-text,
.framer-r9htT .cb-project-meta,
.framer-r9htT.hover .framer-1yks5y1 h2,
.framer-r9htT.hover .framer-1yks5y1 .framer-text {
  --framer-text-alignment: left !important;
  text-align: left !important;
  justify-content: flex-start !important;
  white-space: normal !important;
  overflow-wrap: break-word;
  max-width: 100%;
}

.framer-r9htT.framer-v-6f0g5b.hover.framer-6f0g5b,
.framer-r9htT.hover.framer-6f0g5b {
  align-items: flex-start !important;
  align-content: flex-end !important;
  justify-content: flex-start !important;
}

@media (max-width: 809.98px) {
  .framer-2jilwi .framer-r9htT,
  .framer-2jilwi .framer-ovl2bf {
    overflow: hidden !important;
    max-width: 100% !important;
  }

  .framer-2jilwi .framer-ovl2bf,
  .framer-2jilwi [data-framer-background-image-wrapper] {
    inset: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .framer-2jilwi .framer-r9htT img,
  .framer-2jilwi .framer-ovl2bf img {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
  }

  .framer-2jilwi .framer-r9htT .framer-1yks5y1,
  #featured-cases .framer-r9htT .framer-1yks5y1 {
    opacity: 1 !important;
    visibility: visible !important;
    top: auto !important;
    bottom: 16px !important;
    left: 16px !important;
    right: 16px !important;
    max-width: calc(100% - 32px) !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;
    z-index: 2 !important;
  }

  .framer-2jilwi .framer-r9htT::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 42%;
    pointer-events: none;
    z-index: 1;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.58), rgba(0, 0, 0, 0));
  }
}

/* Injected Projets footer link — keep the same stack as Accueil / Contact / Confidentialité */
.framer-5B25q .framer-w34hq3 [data-cb-nav-projets="footer"],
.framer-5B25q .framer-w34hq3 .cb-nav-projets-item {
  white-space: pre;
  flex: none;
  width: auto;
  height: auto;
  position: relative;
}

@media (max-width: 1024px) {
  .framer-5B25q .framer-w34hq3 [data-cb-nav-projets="footer"],
  .framer-5B25q .framer-w34hq3 .cb-nav-projets-item {
    position: relative !important;
    transform: none !important;
    white-space: normal !important;
    width: auto !important;
    flex: 0 0 auto !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Hero portrait — fade-in from bottom (desktop + mobile)                   */
/* layoutFix() sets transform:translateX(-50%) inline; the standalone CSS    */
/* `translate` property is composited separately and won't conflict.         */
/* -------------------------------------------------------------------------- */
@keyframes cb-hero-fade-up {
  from {
    opacity: 0;
    translate: 0 50px;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}

@media (min-width: 810px) {
  section.framer-1iun61e .framer-gsr78o {
    animation: cb-hero-fade-up 1.25s cubic-bezier(0.16, 1, 0.3, 1) both;
    animation-delay: 0.2s;
    animation-fill-mode: both;
  }
}

@media (max-width: 809.98px) {
  .framer-Vjywg section.framer-grwz69 .framer-1h8vx16 {
    animation: cb-hero-fade-up 1.25s cubic-bezier(0.16, 1, 0.3, 1) both;
    animation-delay: 0.2s;
    animation-fill-mode: both;
  }
}

@media (min-width: 810px) and (prefers-reduced-motion: reduce) {
  section.framer-1iun61e .framer-gsr78o {
    animation: none;
    opacity: 1;
    translate: none;
  }
}

@media (max-width: 809.98px) and (prefers-reduced-motion: reduce) {
  .framer-Vjywg section.framer-grwz69 .framer-1h8vx16 {
    animation: none;
    opacity: 1;
    translate: none;
  }
}

/* -------------------------------------------------------------------------- */
/* HERO — unified layered layout (portrait top, text/CTA bottom, z-index)    */
/* Mobile: section.framer-grwz69 + .framer-1h8vx16 + .framer-1y5pwq6         */
/* Desktop: section.framer-1iun61e + .framer-gsr78o + .framer-lqkrpy         */
/* Do NOT touch footer (.framer-5B25q). cb-hero-fade-up animation above.    */
/* -------------------------------------------------------------------------- */

/* Mobile ≤809px */
@media (max-width: 809.98px) {
  .framer-Vjywg section.framer-grwz69 {
    position: relative !important;
    display: block !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    height: 100vh !important;
    height: 100dvh !important;
    overflow: hidden !important;
    padding: 0 !important;
    isolation: isolate !important;
  }

  .framer-Vjywg section.framer-grwz69::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 48%;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.72) 0%,
      rgba(0, 0, 0, 0.35) 42%,
      rgba(0, 0, 0, 0) 100%
    );
  }

  .framer-Vjywg section.framer-grwz69 .framer-1y5pwq6 {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    padding: 0 16px max(12px, calc(env(safe-area-inset-bottom, 0px) + 8px)) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    overflow: visible !important;
    z-index: 2 !important;
    pointer-events: none !important;
  }

  .framer-Vjywg section.framer-grwz69 .framer-1h8vx16,
  .framer-Vjywg section.framer-grwz69.hidden-qz0mh0.hidden-b2le3j .framer-1h8vx16 {
    position: absolute !important;
    top: max(56px, calc(env(safe-area-inset-top, 0px) + 48px)) !important;
    bottom: auto !important;
    left: calc(50% - min(45vw, 220px)) !important;
    right: auto !important;
    width: min(90vw, 440px) !important;
    height: min(62vh, 640px) !important;
    min-height: 55vh !important;
    max-height: none !important;
    transform: none !important;
    overflow: visible !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    z-index: 0 !important;
    pointer-events: none !important;
  }

  .framer-Vjywg section.framer-grwz69 .framer-1h8vx16 [data-framer-background-image-wrapper] {
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }

  .framer-Vjywg section.framer-grwz69 .framer-1h8vx16 img,
  .framer-Vjywg section.framer-grwz69.hidden-qz0mh0.hidden-b2le3j .framer-1h8vx16 img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center top !important;
    transform: scale(1.08) !important;
    transform-origin: center top !important;
    inset: 0 !important;
  }

  .framer-Vjywg section.framer-grwz69 .framer-reifng {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
    height: auto !important;
    margin: 0 0 64px !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    pointer-events: auto !important;
  }

  .framer-Vjywg section.framer-grwz69 .framer-1mxt4e {
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
    height: auto !important;
  }

  .framer-Vjywg section.framer-grwz69 .framer-d3nmrn-container,
  .framer-Vjywg section.framer-grwz69 .framer-bpsgos,
  .framer-Vjywg section.framer-grwz69 .framer-1p5yhch {
    position: relative !important;
    z-index: 3 !important;
    pointer-events: auto !important;
  }

  /* Mobile hero CTA row — Projets + Contact side by side */
  .framer-Vjywg section.framer-grwz69 .framer-bpsgos {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }

  .framer-Vjywg section.framer-grwz69 .framer-bpsgos > a.framer-1p5yhch {
    flex: 0 1 auto !important;
    width: min(144px, 42vw) !important;
    min-width: 120px !important;
    max-width: 160px !important;
    height: 48px !important;
  }
}

@media (max-width: 389.98px) {
  .framer-Vjywg section.framer-grwz69 .framer-1h8vx16,
  .framer-Vjywg section.framer-grwz69.hidden-qz0mh0.hidden-b2le3j .framer-1h8vx16 {
    left: calc(50% - min(46vw, 200px)) !important;
    width: min(92vw, 400px) !important;
    height: min(58vh, 580px) !important;
    min-height: 52vh !important;
  }

  .framer-Vjywg section.framer-grwz69 .framer-1h8vx16 img,
  .framer-Vjywg section.framer-grwz69.hidden-qz0mh0.hidden-b2le3j .framer-1h8vx16 img {
    transform: scale(1.04) !important;
  }
}

/* Desktop + tablet ≥810px — same layering as mobile */
@media (min-width: 810px) {
  section.framer-1iun61e {
    position: relative !important;
    display: block !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    height: 100vh !important;
    height: 100dvh !important;
    overflow: hidden !important;
    padding: 0 !important;
    isolation: isolate !important;
  }

  section.framer-1iun61e::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 42%;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.62) 0%,
      rgba(0, 0, 0, 0.28) 45%,
      rgba(0, 0, 0, 0) 100%
    );
  }

  section.framer-1iun61e .framer-lqkrpy {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    padding: 0 40px max(36px, calc(env(safe-area-inset-bottom, 0px) + 24px)) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    overflow: visible !important;
    z-index: 2 !important;
    pointer-events: none !important;
  }

  section.framer-1iun61e .framer-gsr78o {
    position: absolute !important;
    top: max(0px, calc(env(safe-area-inset-top, 0px) + 0px)) !important;
    bottom: auto !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    overflow: visible !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    z-index: 0 !important;
    pointer-events: none !important;
  }

  section.framer-1iun61e .framer-gsr78o [data-framer-background-image-wrapper] {
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }

  section.framer-1iun61e .framer-gsr78o img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center top !important;
    transform: scale(1.1) !important;
    transform-origin: center top !important;
  }

  section.framer-1iun61e .framer-lqkrpy > :not(.framer-gsr78o) {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: 800px !important;
    flex: none !important;
    pointer-events: auto !important;
  }

  section.framer-1iun61e .framer-1en1oav,
  section.framer-1iun61e .framer-2zugdj {
    width: 100% !important;
    max-width: 800px !important;
    flex: none !important;
    height: auto !important;
  }

  section.framer-1iun61e .framer-gufwi7-container {
    position: absolute !important;
    bottom: 24px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 1 !important;
    pointer-events: none !important;
  }

  section.framer-1iun61e .framer-2w7e9i {
    display: flex !important;
    flex-direction: row !important;
    gap: 16px !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: wrap !important;
  }
}

/* Tablet 810–1199px */
@media (min-width: 810px) and (max-width: 1199.98px) {
  section.framer-1iun61e .framer-gsr78o {
    width: min(82%, 800px) !important;
    height: min(76vh, 820px) !important;
    top: calc(env(safe-area-inset-top, 0px) - 12px) !important;
  }

  section.framer-1iun61e .framer-gsr78o img {
    transform: scale(1.1) !important;
  }

  section.framer-1iun61e .framer-lqkrpy {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
}

/* Desktop ≥1200px */
@media (min-width: 1200px) {
  section.framer-1iun61e .framer-gsr78o {
    width: min(90%, 1100px) !important;
    height: min(88vh, 980px) !important;
    top: calc(env(safe-area-inset-top, 0px) - 64px) !important;
  }

  section.framer-1iun61e .framer-gsr78o img {
    object-position: center top !important;
    transform: translateY(-8%) scale(1.2) !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Mobile footer overlap fix — wordmark / tagline / watermark stack           */
/* Framer mobile variant keeps absolute top:266px on logo + 165px watermark.  */
/* -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  footer.framer-5B25q .framer-18boyvi > .framer-fzg97m,
  footer.framer-5B25q.framer-v-95f0o3 .framer-18boyvi > .framer-fzg97m {
    contain: layout style !important;
  }

  footer.framer-5B25q .framer-18boyvi > .framer-3q5u2s,
  footer.framer-5B25q.framer-v-95f0o3 .framer-18boyvi > .framer-3q5u2s {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
  }

  footer.framer-5B25q .framer-18boyvi > .framer-1g1y973 {
    position: relative !important;
    z-index: 3 !important;
  }

  footer.framer-5B25q .framer-158p9c2,
  footer.framer-5B25q.framer-v-95f0o3 .framer-158p9c2 {
    height: auto !important;
    min-height: 0 !important;
  }
}

@media (max-width: 809.98px) {
  footer.framer-5B25q .framer-18boyvi {
    gap: 18px !important;
    margin-bottom: 28px !important;
  }

  footer.framer-5B25q .framer-a9lwfo .framer-text {
    --framer-font-size: clamp(24px, 9vw, 52px) !important;
    font-size: clamp(24px, 9vw, 52px) !important;
  }
}

/* Hero cloned Projets CTA — Glow Edge (Contact uses Framer Motion; clone is static) */
[data-cb-hero-projets] .framer-1gp0cpo {
  transition: box-shadow 0.3s ease, opacity 0.3s ease;
}

[data-cb-hero-projets]:hover .framer-1gp0cpo,
[data-cb-hero-projets] .framer-tTdag.hover .framer-1gp0cpo,
[data-cb-hero-projets] .framer-tTdag.framer-v-p32epq .framer-1gp0cpo {
  box-shadow:
    inset 0px 0px 2px 3px rgba(0, 0, 0, 0.3),
    inset 0px 0px 4px 8px rgba(89, 138, 201, 0.75) !important;
  opacity: 1;
}

/* Hero portrait — soft bottom dissolve on img only (no opaque ::after overlay) */
section.framer-1iun61e .framer-gsr78o img,
section.framer-grwz69 .framer-1h8vx16 img {
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 70%, transparent 100%) !important;
  mask-image: linear-gradient(to bottom, #000 0%, #000 70%, transparent 100%) !important;
}

section.framer-1iun61e .framer-gsr78o::after,
section.framer-grwz69 .framer-1h8vx16::after {
  content: none !important;
  display: none !important;
}

/* -------------------------------------------------------------------------- */
/* Mobile performance — skip offscreen paint; keep hero fade-up intact       */
/* -------------------------------------------------------------------------- */
@media (max-width: 809.98px) {
  #faq,
  #cta,
  footer.framer-5B25q,
  #featured-cases {
    content-visibility: auto;
    contain-intrinsic-size: 1px 720px;
  }

  .cb-trusted-marquee {
    will-change: auto;
  }
}

