/* ============================================================
   AGENCE AUGUSTIN — RESPONSIVE V97

   Source of truth: the validated React site.
   Desktop (1024px and wider) is intentionally untouched.

   One React reference is used for each reusable WordPress layout.
   Responsive field variants (left/right, centered, giant, etc.) are
   neutralised below 1024px so the same layout always has the same
   tablet and phone composition throughout the site.
   ============================================================ */

/* Generated beside each authored <br>; hidden on desktop. */
.aa-manual-break-space {
    display: none;
}

@media (max-width: 1023px) {
    :root {
        --aa-container-x: clamp(2rem, 5.2vw, 4rem);
        --aa-section-y: 5rem;
        --aa-section-y-compact: 3.5rem;
        --aa-section-y-loose: 6rem;
        --aa-grid-gap: 2.5rem;
    }

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

    body main,
    body main section,
    body main article,
    body main div,
    body main figure,
    body main blockquote {
        min-width: 0;
    }

    /* ---------------------------------------------------------
       WordPress line breaks
       Below the desktop breakpoint, editor-authored returns no longer
       control composition. The viewport width decides the wrapping.
       --------------------------------------------------------- */
    body main br.aa-authored-break,
    body main br.aa-manual-break,
    .site-footer br.aa-authored-break,
    .site-footer br.aa-manual-break {
        display: none !important;
    }

    body main .aa-manual-break-space,
    .site-footer .aa-manual-break-space {
        display: inline !important;
    }

    /* Contact values follow the same responsive rule. */
    body main .contact-minimal__location br.aa-manual-break {
        display: none !important;
    }

    body main .contact-minimal__location .aa-manual-break-space {
        display: inline !important;
    }

    /* Desktop line locking must never leak into responsive views. */
    body main :is(
        .hero__intro,
        .hero__breadcrumb,
        .hero__title,
        .hero__subtitle,
        .text-centered__kicker,
        .text-centered h2,
        .text-centered__quote p,
        .text-centered__content,
        .editorial__kicker,
        .editorial__title,
        .editorial__text,
        .editorial__text p,
        .process-home__head > *,
        .process-card h3,
        .process-card__text,
        .process-timeline__heading > *,
        .timeline-step__title,
        .timeline-step__text,
        .founder__name,
        .founder__text,
        .founder__text p,
        .founder blockquote,
        .triptych__head > *,
        .triptych-card__content > *,
        .image-banner__content-inner > *,
        .large-image-text__content-inner > *,
        .image-text-multiple__content-inner > *,
        .full-width-banner__heading > *,
        .full-width-banner__body > *,
        .cta-banner__heading > *,
        .cta-banner__content > *,
        .project-showcase__content > *,
        .gallery-free h2,
        .quote-section blockquote > *,
        .journal-featured__content > *,
        .journal-card__content > *,
        .contact-minimal__content > *,
        .aa-article-intro__title,
        .aa-article-intro__subtitle,
        .aa-article-intro__text,
        .aa-article-copy__title,
        .aa-article-copy__content
    ) {
        box-sizing: border-box !important;
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    /* Every reusable section owns its responsive width. No text wrapper may
       exceed the tablet or phone viewport, regardless of saved desktop preset. */
    body main section,
    body main section > :is(.container, .aa-container, .aa-container-wide, .aa-container-narrow),
    body main section :is(
        .hero__content,
        .hero__content-inner,
        .text-centered__inner,
        .text-centered__content,
        .editorial__grid,
        .editorial__content,
        .editorial__content-inner,
        .process-home__head,
        .process-card,
        .process-timeline__heading,
        .timeline-step__content,
        .founder__content,
        .triptych__head,
        .triptych-card__content,
        .image-banner__content,
        .image-banner__content-inner,
        .large-image-text__content,
        .large-image-text__content-inner,
        .image-text-multiple__content,
        .image-text-multiple__content-inner,
        .full-width-banner__heading,
        .full-width-banner__body,
        .cta-banner__heading,
        .cta-banner__content,
        .project-showcase__content-row,
        .project-showcase__content,
        .gallery-free__heading,
        .quote-section__inner,
        .journal-featured__content,
        .journal-card__content,
        .contact-minimal__content,
        .aa-article-copy
    ) {
        box-sizing: border-box !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    body main section :is(h1, h2, h3, h4, h5, h6, p, li, blockquote, .aa-rich-text) {
        min-width: 0 !important;
        max-width: 100% !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
    }

    body main :is(
        .hero__title,
        .text-centered h2,
        .editorial__title,
        .process-home__head h2,
        .process-timeline__title,
        .timeline-step__title,
        .triptych__head h2,
        .triptych-card__content h3,
        .image-banner__title,
        .large-image-text__title,
        .image-text-multiple__title,
        .full-width-banner__title,
        .cta-banner__title,
        .project-showcase__title,
        .journal-featured__title,
        .journal-card__title,
        .contact-minimal__title,
        .aa-article-intro__title,
        .aa-article-copy__title
    ) {
        text-wrap: balance !important;
    }

    /* Server-rendered article lines become continuous responsive prose. */
    body main.single-journal .aa-article-authored-line {
        display: inline !important;
        width: auto !important;
        white-space: normal !important;
    }

    body main.single-journal .aa-article-authored-line + .aa-article-authored-line::before {
        content: " ";
    }

    body main.single-journal .aa-article-authored-line--empty {
        display: none !important;
    }

    /* ---------------------------------------------------------
       Shared responsive rhythm
       React container: px-8 / tablet equivalent; compact sections.
       --------------------------------------------------------- */
    .container,
    .aa-container,
    .aa-container-wide,
    .aa-container-narrow {
        width: 100% !important;
        max-width: 100% !important;
        padding-inline: var(--aa-container-x) !important;
    }

    .section,
    .aa-section {
        padding-block: 5rem !important;
    }

    .section-heading,
    .triptych__head,
    .process-home__head,
    .process-timeline__heading {
        margin-inline: auto !important;
    }

    /* ---------------------------------------------------------
       Header — Header.tsx
       React keeps desktop navigation from 768px upward.
       --------------------------------------------------------- */
    .site-header__inner {
        padding-inline: var(--aa-container-x) !important;
    }

    .site-header__logo {
        width: 120px;
    }

    .site-header__menu {
        gap: clamp(1rem, 2.4vw, 1.7rem);
    }

    .site-header__menu a {
        font-size: .72rem;
        letter-spacing: .14em;
    }

    /* ---------------------------------------------------------
       Heroes
       --------------------------------------------------------- */

    /* Home.tsx */
    .hero--home {
        min-height: 680px !important;
        height: 100svh !important;
    }

    .hero--home .hero__content {
        display: flex !important;
        align-items: flex-end !important;
        height: 100% !important;
        padding: 0 !important;
    }

    .hero--home .hero__content > .container,
    .hero--home .hero__content.container {
        padding-bottom: 5.5rem !important;
    }

    .hero--home .hero__content-inner {
        width: min(100%, 820px) !important;
        max-width: 820px !important;
        margin: 0 !important;
        text-align: left !important;
    }

    .hero--home .hero__title {
        margin: 0 !important;
        font-size: clamp(3.1rem, 7vw, 5.8rem) !important;
        line-height: .92 !important;
        letter-spacing: .025em !important;
    }

    .hero--home .hero__subtitle {
        margin-top: 1.75rem !important;
        font-size: clamp(1.05rem, 2vw, 1.42rem) !important;
        line-height: 1.55 !important;
        letter-spacing: .02em !important;
    }

    /* Hero Image — unique reference: APropos.tsx. The selector deliberately
       ignores the page type so every use of this Hero is identical. */
    body #main-content .hero--image {
        min-height: 92vh !important;
        height: auto !important;
    }

    body #main-content .hero--image .hero__image {
        object-position: center top !important;
    }

    body #main-content .hero--image .hero__overlay {
        background: linear-gradient(90deg, rgba(60, 42, 30, .78) 0%, rgba(60, 42, 30, .42) 46%, rgba(60, 42, 30, .12) 100%) !important;
    }

    body #main-content .hero--image .hero__content {
        display: flex !important;
        align-items: flex-end !important;
        min-height: 92vh !important;
        padding: 0 !important;
    }

    body #main-content .hero--image .hero__content > .container,
    body #main-content .hero--image .hero__content.container {
        padding-bottom: 7rem !important;
    }

    body #main-content .hero--image .hero__content-inner {
        width: 100% !important;
        max-width: 720px !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    body #main-content .hero--image .hero__breadcrumb {
        margin-bottom: 2.25rem !important;
    }

    body #main-content .hero--image .hero__title {
        width: 100% !important;
        max-width: 7.5ch !important;
        margin: 0 !important;
        font-size: clamp(3.5rem, 8vw, 7rem) !important;
        line-height: .92 !important;
        letter-spacing: .02em !important;
        text-align: left !important;
    }

    body #main-content .hero--image .hero__subtitle {
        width: 100% !important;
        max-width: 36ch !important;
        margin-top: 1.75rem !important;
        font-size: clamp(1.08rem, 1.75vw, 1.35rem) !important;
        line-height: 1.7 !important;
        opacity: .84 !important;
    }

    body #main-content .hero--image .hero__cta {
        margin-top: 2rem !important;
    }

    /* Expertises.tsx */
    .hero--expertise {
        min-height: 0 !important;
        margin-top: var(--aa-header-height) !important;
        padding-block: 12rem !important;
    }

    .hero--expertise .hero__content,
    .hero--expertise .hero__content-inner {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        text-align: center !important;
    }

    .hero--expertise .hero__intro {
        margin: 0 auto 2.5rem !important;
        font-size: .76rem !important;
        line-height: 1.5 !important;
        letter-spacing: .22em !important;
    }

    .hero--expertise .hero__title {
        margin: 0 auto !important;
        font-size: clamp(3rem, 7vw, 5.4rem) !important;
        line-height: .95 !important;
    }

    .hero--expertise .hero__subtitle {
        max-width: 58ch !important;
        margin: 2rem auto 0 !important;
        font-size: clamp(1rem, 2vw, 1.28rem) !important;
        line-height: 1.75 !important;
    }

    .hero--expertise .hero__rule {
        margin: 2.5rem auto 0 !important;
    }

    /* ExperienceFamille.tsx / Audit.tsx */
    .hero--minimal {
        min-height: calc(100svh - 100px) !important;
        margin-top: var(--aa-header-height) !important;
        padding-block: 5rem !important;
    }

    .hero--minimal .hero__content,
    .hero--minimal .hero__content-inner {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        text-align: center !important;
    }

    .hero--minimal .hero__breadcrumb,
    .hero--minimal .hero__intro {
        margin: 0 auto 2.5rem !important;
    }

    .hero--minimal .hero__title {
        margin: 0 auto !important;
        font-size: clamp(3rem, 7vw, 5.4rem) !important;
        line-height: .95 !important;
    }

    .hero--minimal .hero__subtitle {
        max-width: 58ch !important;
        margin: 2rem auto 0 !important;
        font-size: clamp(1rem, 2vw, 1.28rem) !important;
        line-height: 1.72 !important;
    }

    .hero--minimal .hero__rule {
        margin: 2.25rem auto 0 !important;
    }

    /* Signature.tsx */
    .hero--signature {
        min-height: 56svh !important;
        margin-top: var(--aa-header-height) !important;
        padding: 4.5rem 0 3.5rem !important;
    }

    .hero--signature .hero__content,
    .hero--signature .hero__content-inner {
        width: 100% !important;
        max-width: 100% !important;
        margin: auto !important;
        text-align: center !important;
    }

    .hero--signature .hero__title {
        margin: 0 auto !important;
        font-size: clamp(3.4rem, 8vw, 6rem) !important;
        line-height: .92 !important;
    }

    .hero--signature .hero__subtitle {
        max-width: 58ch !important;
        margin: 2rem auto 0 !important;
        font-size: clamp(1rem, 2vw, 1.28rem) !important;
        line-height: 1.72 !important;
    }

    .hero--signature .hero__rule {
        margin: 2.25rem auto 0 !important;
    }

    /* Journal.tsx */
    .hero--journal {
        min-height: 46svh !important;
        margin-top: var(--aa-header-height) !important;
        padding: 6rem 0 4rem !important;
    }

    .hero--journal .hero__content,
    .hero--journal .hero__content-inner {
        width: 100% !important;
        max-width: 100% !important;
        margin: auto !important;
        text-align: center !important;
    }

    .hero--journal .hero__intro {
        margin: 0 auto 2rem !important;
        font-size: .76rem !important;
        letter-spacing: .22em !important;
    }

    .hero--journal .hero__title {
        margin: 0 auto !important;
        font-size: clamp(3.6rem, 8vw, 6.2rem) !important;
        line-height: .94 !important;
    }

    .hero--journal .hero__subtitle {
        max-width: 46ch !important;
        margin: 1.75rem auto 0 !important;
        font-size: .9rem !important;
        line-height: 1.9 !important;
    }

    /* ---------------------------------------------------------
       Text centered — APropos.tsx introduction
       All ACF size/type/width variants share this responsive form.
       --------------------------------------------------------- */
    .text-centered.aa-section {
        padding-block: 5rem !important;
    }

    .text-centered__inner,
    .text-centered .aa-container,
    .text-centered .aa-container-wide,
    .text-centered .aa-container-narrow {
        width: 100% !important;
        max-width: 920px !important;
        margin-inline: auto !important;
        text-align: center !important;
    }

    .text-centered__kicker {
        margin: 0 auto 1.25rem !important;
    }

    .text-centered h2,
    .text-centered__quote p {
        margin: 0 auto !important;
        font-size: clamp(2.35rem, 5.3vw, 4rem) !important;
        line-height: 1.08 !important;
    }

    .text-centered__content,
    .text-centered__content p {
        max-width: 76ch !important;
        margin: 2rem auto 0 !important;
        font-size: 1rem !important;
        line-height: 1.9 !important;
    }

    .text-centered__cta {
        margin-top: 2rem !important;
    }

    /* ---------------------------------------------------------
       Editorial image + text — Expertises.tsx / “Une offre pensée dans le détail”
       One reusable structure everywhere: copy first, image second.
       --------------------------------------------------------- */
    .editorial.section {
        padding-block: 6rem !important;
        overflow-x: clip !important;
    }

    .editorial .editorial__grid {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: center !important;
        gap: 3.5rem !important;
        max-width: 1440px !important;
        margin-inline: auto !important;
        padding-inline: var(--aa-container-x) !important;
    }

    .editorial .editorial__content {
        grid-column: 1 / span 5 !important;
        order: 1 !important;
        width: 100% !important;
        padding: 0 !important;
    }

    .editorial .editorial__media-column {
        grid-column: 7 / span 6 !important;
        order: 2 !important;
        width: 100% !important;
    }

    .editorial .editorial__content-inner {
        width: 100% !important;
        max-width: min(520px, 100%) !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    .editorial .editorial__kicker {
        margin-bottom: 1.25rem !important;
    }

    .editorial .editorial__title {
        margin: 0 0 1.75rem !important;
        font-size: clamp(2.25rem, 4.8vw, 3.9rem) !important;
        line-height: 1.08 !important;
    }

    .editorial .editorial__text,
    .editorial .editorial__text p {
        max-width: 42ch !important;
        font-size: clamp(.98rem, 1.4vw, 1.06rem) !important;
        line-height: 1.9 !important;
    }

    .editorial .editorial__text p + p {
        margin-top: 1.1rem !important;
    }

    .editorial .editorial__cta {
        margin-top: 2rem !important;
    }

    .editorial .editorial__media {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 5 / 4 !important;
        overflow: hidden !important;
    }

    .editorial .editorial__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .editorial .editorial__signature {
        margin-top: 1rem !important;
    }

    .editorial--without-media .editorial__content {
        grid-column: 3 / span 8 !important;
        text-align: center !important;
    }

    .editorial--without-media .editorial__content-inner {
        max-width: 62ch !important;
        margin-inline: auto !important;
        text-align: center !important;
    }

    /* ---------------------------------------------------------
       Image + text multiple — Home.tsx introduction rows
       Tablet alternates rows; phone uses image then text.
       --------------------------------------------------------- */
    .image-text-multiple.section {
        padding-block: 3.5rem !important;
    }

    .image-text-multiple__rows {
        display: block !important;
    }

    .image-text-multiple__row {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0 !important;
        min-height: 0 !important;
    }

    .image-text-multiple__row + .image-text-multiple__row {
        margin-top: 0 !important;
    }

    .image-text-multiple__row:nth-child(odd) .image-text-multiple__media,
    .image-text-multiple__row:nth-child(even) .image-text-multiple__content {
        grid-column: 1 !important;
        order: 1 !important;
    }

    .image-text-multiple__row:nth-child(odd) .image-text-multiple__content,
    .image-text-multiple__row:nth-child(even) .image-text-multiple__media {
        grid-column: 2 !important;
        order: 2 !important;
    }

    .image-text-multiple__media {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 10 !important;
        overflow: hidden !important;
    }

    .image-text-multiple__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .image-text-multiple__content {
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 100% !important;
        padding: 3rem 3.5rem !important;
    }

    .image-text-multiple__content-inner {
        width: 100% !important;
        max-width: 42ch !important;
        margin: 0 !important;
        text-align: left !important;
    }

    .image-text-multiple__title {
        margin: 0 !important;
        font-size: clamp(2rem, 4.2vw, 3.45rem) !important;
        line-height: 1.08 !important;
    }

    .image-text-multiple__title-rule {
        margin-bottom: 1.25rem !important;
    }

    .image-text-multiple__text,
    .image-text-multiple__text p {
        max-width: 42ch !important;
        margin-top: 1.25rem !important;
        font-size: clamp(.96rem, 1.35vw, 1.04rem) !important;
        line-height: 1.85 !important;
    }

    .image-text-multiple__quote {
        margin-top: 1.5rem !important;
    }

    .image-text-multiple__cta {
        margin-top: 1.75rem !important;
    }

    /* ---------------------------------------------------------
       Process Home — Home.tsx
       --------------------------------------------------------- */
    .process-home.section {
        padding-block: 3.5rem !important;
    }

    .process-home > .container {
        max-width: 1440px !important;
    }

    .process-home .process-home__head {
        width: 100% !important;
        max-width: 780px !important;
        margin: 0 auto 2.75rem !important;
        text-align: center !important;
    }

    .process-home .process-home__head h2 {
        margin: 0 !important;
        font-size: clamp(2.35rem, 5.2vw, 4.2rem) !important;
        line-height: .98 !important;
    }

    .process-home .process-home__subtitle {
        max-width: 56ch !important;
        margin: 1.25rem auto 0 !important;
        font-size: clamp(.98rem, 1.4vw, 1.08rem) !important;
        line-height: 1.85 !important;
    }

    .process-home__grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        column-gap: 2rem !important;
        row-gap: 2.25rem !important;
    }

    .process-home .process-card {
        min-width: 0 !important;
        padding-top: 1.15rem !important;
        border-top: 1px solid rgba(243, 230, 212, .38) !important;
    }

    .process-home .process-card__image {
        width: 100% !important;
        height: clamp(138px, 15vw, 190px) !important;
        margin: 0 0 1.25rem !important;
        object-fit: cover !important;
    }

    .process-home .process-card h3 {
        margin: 0 0 .75rem !important;
        font-size: clamp(1.45rem, 2.4vw, 1.95rem) !important;
        line-height: 1.05 !important;
    }

    .process-home .process-card__text {
        max-width: 32ch !important;
        margin: 0 !important;
        font-size: .95rem !important;
        line-height: 1.75 !important;
    }

    .process-home__cta {
        margin-top: 2.25rem !important;
        text-align: center !important;
    }

    /* ---------------------------------------------------------
       Process Timeline — EspaceEnfant.tsx
       --------------------------------------------------------- */
    .process-timeline.section {
        padding-block: 3.5rem !important;
    }

    .process-timeline__heading {
        width: 100% !important;
        max-width: 620px !important;
        margin: 0 auto 2.5rem !important;
        text-align: center !important;
    }

    .process-timeline__title {
        margin: 0 !important;
        font-size: clamp(2.35rem, 5vw, 4rem) !important;
        line-height: 1 !important;
    }

    .process-timeline__subtitle {
        margin: 1.25rem auto 0 !important;
        font-size: .95rem !important;
        line-height: 1.8 !important;
    }

    .process-timeline__list {
        position: relative !important;
        width: 100% !important;
    }

    .process-timeline__line {
        position: absolute !important;
        top: 0 !important;
        bottom: 0 !important;
        left: 50% !important;
        display: block !important;
        width: 4px !important;
        height: auto !important;
        transform: translateX(-50%) !important;
        background: linear-gradient(to bottom, transparent, var(--aa-or), transparent) !important;
        opacity: .55 !important;
    }

    .process-timeline__steps {
        display: flex !important;
        flex-direction: column !important;
        gap: 2.25rem !important;
    }

    .timeline-step {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: center !important;
        gap: 2.5rem !important;
        width: 100% !important;
        padding: 0 !important;
    }

    .timeline-step:nth-child(odd) .timeline-step__media {
        grid-column: 7 / span 6 !important;
        order: 2 !important;
    }

    .timeline-step:nth-child(odd) .timeline-step__content {
        grid-column: 2 / span 4 !important;
        order: 1 !important;
        text-align: right !important;
    }

    .timeline-step:nth-child(even) .timeline-step__media {
        grid-column: 1 / span 6 !important;
        order: 1 !important;
    }

    .timeline-step:nth-child(even) .timeline-step__content {
        grid-column: 8 / span 4 !important;
        order: 2 !important;
        text-align: left !important;
    }

    .timeline-step__media {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 18 / 9 !important;
        overflow: hidden !important;
    }

    .timeline-step__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .timeline-step__number {
        margin: 0 0 .65rem !important;
        background: transparent !important;
        font-family: var(--aa-font-display) !important;
        font-size: clamp(2.1rem, 4vw, 3.5rem) !important;
        line-height: 1 !important;
    }

    .timeline-step__title {
        margin: 0 !important;
        font-size: clamp(1.35rem, 2.4vw, 1.9rem) !important;
        line-height: 1.08 !important;
    }

    .timeline-step__text {
        margin: .8rem 0 0 !important;
        font-size: .82rem !important;
        line-height: 1.65 !important;
    }

    .process-timeline__cta {
        margin-top: 2rem !important;
        text-align: center !important;
    }

    /* ---------------------------------------------------------
       Founder portrait — APropos.tsx Manon reference
       One responsive order everywhere: image, then text.
       --------------------------------------------------------- */
    .founder.section {
        position: relative !important;
        padding-block: 5rem !important;
    }

    .founder__name {
        top: clamp(5.1rem, 8vw, 6.9rem) !important;
        left: 50% !important;
        z-index: 3 !important;
        transform: translateX(-50%) !important;
        font-size: clamp(.92rem, 1.5vw, 1.14rem) !important;
        letter-spacing: .24em !important;
        white-space: nowrap !important;
    }

    .founder .founder__grid {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: center !important;
        gap: 3.5rem !important;
        max-width: 1440px !important;
        margin-inline: auto !important;
        padding-inline: var(--aa-container-x) !important;
    }

    .founder .founder__portrait {
        grid-column: 1 / span 6 !important;
        order: 1 !important;
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 9 !important;
        overflow: hidden !important;
    }

    .founder .founder__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .founder .founder__content {
        grid-column: 8 / span 5 !important;
        order: 2 !important;
        width: 100% !important;
        padding: 0 !important;
        text-align: left !important;
    }

    .founder__text,
    .founder__text p {
        max-width: 46ch !important;
        font-size: .98rem !important;
        line-height: 1.9 !important;
    }

    .founder__text p + p {
        margin-top: 1rem !important;
    }

    .founder__content blockquote {
        max-width: 30ch !important;
        margin: 2rem 0 0 !important;
        padding-left: 1.25rem !important;
        border-left: 1px solid var(--aa-or) !important;
        font-size: 1.34rem !important;
        line-height: 1.45 !important;
    }

    /* ---------------------------------------------------------
       Attached triptych — APropos.tsx Vision
       --------------------------------------------------------- */
    .triptych--attached.section {
        padding-block: 5rem !important;
    }

    .triptych--attached .triptych__head {
        max-width: 680px !important;
        margin: 0 auto 3.5rem !important;
        text-align: center !important;
    }

    .triptych--attached .triptych__head h2 {
        font-size: clamp(2.35rem, 5vw, 4rem) !important;
        line-height: 1.04 !important;
    }

    .triptych--attached .triptych__intro,
    .triptych--attached .triptych__intro p {
        max-width: 48ch !important;
        margin: 1.5rem auto 0 !important;
        font-size: .96rem !important;
        line-height: 1.85 !important;
    }

    .triptych--attached .triptych__grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 0 !important;
    }

    .triptych--attached .triptych-card__media {
        position: relative !important;
        width: 100% !important;
        height: clamp(320px, 36vw, 520px) !important;
        overflow: hidden !important;
    }

    .triptych--attached .triptych__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .triptych--attached .triptych-card__content {
        margin-top: 1.5rem !important;
        padding: 0 1.25rem 0 0 !important;
    }

    .triptych--attached .triptych-card__content h3 {
        margin: 0 0 1rem !important;
        font-family: var(--aa-font-body) !important;
        font-size: .9rem !important;
        line-height: 1.45 !important;
        letter-spacing: .18em !important;
    }

    .triptych--attached .triptych-card__rule {
        width: 42px !important;
        margin: 0 0 1.25rem !important;
    }

    .triptych--attached .triptych-card__content p {
        max-width: 32ch !important;
        font-size: .9rem !important;
        line-height: 1.75 !important;
    }

    /* ---------------------------------------------------------
       Spaced triptych — EspaceEnfant.tsx spaces reference
       ACF title-size variants are neutralised responsively.
       --------------------------------------------------------- */
    .triptych--spaced.section {
        padding-block: 5rem !important;
    }

    .triptych--spaced .triptych__head {
        max-width: 720px !important;
        margin: 0 auto 3.5rem !important;
        text-align: center !important;
    }

    .triptych--spaced .triptych__head h2 {
        margin: 0 !important;
        font-size: clamp(2.35rem, 5vw, 4rem) !important;
        line-height: 1.04 !important;
    }

    .triptych--spaced .triptych__intro,
    .triptych--spaced .triptych__intro p {
        max-width: 42ch !important;
        margin: 1.25rem auto 0 !important;
        font-size: .82rem !important;
        line-height: 1.9 !important;
    }

    .triptych--spaced .triptych__grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 2rem !important;
    }

    .triptych--spaced .triptych-card__media {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 3 / 4 !important;
        overflow: hidden !important;
    }

    .triptych--spaced .triptych__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .triptych--spaced .triptych-card__content {
        margin-top: 1.75rem !important;
        padding: 0 !important;
    }

    .triptych--spaced .triptych-card__content h3 {
        margin: 0 0 .9rem !important;
        font-family: var(--aa-font-body) !important;
        font-size: .82rem !important;
        line-height: 1.45 !important;
        letter-spacing: .16em !important;
    }

    .triptych--spaced .triptych-card__content p {
        max-width: 34ch !important;
        margin: 0 !important;
        font-size: .78rem !important;
        line-height: 1.75 !important;
    }

    .triptych__cta {
        margin-top: 2.25rem !important;
        text-align: center !important;
    }

    /* ---------------------------------------------------------
       Project showcase — Signature.tsx project grid
       --------------------------------------------------------- */
    .project-showcase.section {
        padding: 3rem 0 3.5rem !important;
    }

    .project-showcase__inner {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
    }

    .project-showcase__grid {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        gap: 1rem !important;
        width: 100% !important;
        padding-inline: 2rem !important;
    }

    .project-showcase__media {
        position: relative !important;
        width: 100% !important;
        height: clamp(230px, 27vw, 380px) !important;
        overflow: hidden !important;
    }

    .project-showcase__media--main {
        grid-column: span 7 !important;
    }

    .project-showcase__media--small {
        grid-column: span 2 !important;
    }

    .project-showcase__media--medium {
        grid-column: span 3 !important;
    }

    .project-showcase__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .project-showcase__content-row {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        width: 100% !important;
        margin-top: 1.75rem !important;
        padding-inline: 2.5rem !important;
    }

    .project-showcase__content-column {
        grid-column: 1 / span 7 !important;
        width: 100% !important;
    }

    .project-showcase__content {
        max-width: 62ch !important;
        margin: 0 !important;
        text-align: left !important;
    }

    .project-showcase__title {
        margin: 0 !important;
        font-size: clamp(1.6rem, 3vw, 2.35rem) !important;
        line-height: 1.05 !important;
    }

    .project-showcase__subtitle {
        max-width: 62ch !important;
        margin: .75rem 0 0 !important;
        font-size: clamp(.95rem, 1.4vw, 1.05rem) !important;
        line-height: 1.8 !important;
    }

    /* ---------------------------------------------------------
       CTA banner — Home.tsx final CTA
       All style/title-style variants share one responsive composition.
       --------------------------------------------------------- */
    .cta-banner.section {
        padding-block: 3.5rem !important;
    }

    .cta-banner .cta-banner__inner {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: start !important;
        gap: 2rem !important;
        max-width: 1440px !important;
        margin-inline: auto !important;
        text-align: left !important;
    }

    .cta-banner__heading {
        grid-column: 1 / span 6 !important;
        width: 100% !important;
        max-width: none !important;
        text-align: left !important;
    }

    .cta-banner__content {
        grid-column: 8 / span 5 !important;
        width: 100% !important;
        max-width: none !important;
        text-align: left !important;
    }

    .cta-banner__kicker {
        margin: 0 0 1rem !important;
        font-size: .78rem !important;
        line-height: 1.5 !important;
        letter-spacing: .22em !important;
    }

    .cta-banner__title,
    .cta-banner__quote,
    .cta-banner__quote p {
        max-width: 18ch !important;
        margin: 0 !important;
        font-size: clamp(2.35rem, 5.1vw, 4.4rem) !important;
        line-height: 1.02 !important;
    }

    .cta-banner__content .aa-rich-text,
    .cta-banner__content .aa-rich-text p {
        max-width: 40ch !important;
        margin: 0 !important;
        font-size: .98rem !important;
        line-height: 1.85 !important;
    }

    .cta-banner__content .cta-link {
        margin-top: 2rem !important;
    }

    /* ---------------------------------------------------------
       Full-width banner — Audit.tsx
       --------------------------------------------------------- */
    .full-width-banner.section {
        padding-block: 5rem !important;
    }

    .full-width-banner__heading {
        max-width: 900px !important;
        margin: 0 auto 3rem !important;
        text-align: center !important;
    }

    .full-width-banner__title {
        margin: 0 !important;
        font-size: clamp(2.35rem, 5.1vw, 4rem) !important;
        line-height: 1.04 !important;
    }

    .full-width-banner__media {
        position: relative !important;
        width: 100% !important;
        height: clamp(180px, 24vw, 320px) !important;
        overflow: hidden !important;
    }

    .full-width-banner__image {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .full-width-banner__body {
        max-width: 760px !important;
        margin: 3rem auto 0 !important;
        text-align: center !important;
    }

    .full-width-banner__text,
    .full-width-banner__text p {
        max-width: 100% !important;
        margin-inline: auto !important;
        font-size: clamp(1rem, 1.35vw, 1.08rem) !important;
        line-height: 1.86 !important;
    }

    .full-width-banner__body .cta-link {
        margin-top: 2rem !important;
    }

    /* ---------------------------------------------------------
       Large image + text — Expertises.tsx / “Espace enfant”
       One reusable composition everywhere: image left, copy right.
       --------------------------------------------------------- */
    .large-image-text {
        padding-block: 6rem !important;
        overflow-x: clip !important;
    }

    .large-image-text__grid {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: center !important;
        gap: 4rem !important;
        width: 100% !important;
    }

    .large-image-text__media {
        grid-column: 1 / span 7 !important;
        order: 1 !important;
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 10 !important;
        overflow: hidden !important;
    }

    .large-image-text__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .large-image-text__content {
        grid-column: 8 / span 4 !important;
        order: 2 !important;
        width: 100% !important;
        padding: 0 !important;
    }

    .large-image-text__content-inner {
        max-width: 41ch !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    .large-image-text__title {
        margin: 0 !important;
        font-size: clamp(2.2rem, 4.6vw, 3.75rem) !important;
        line-height: 1.08 !important;
    }

    .large-image-text__title-rule {
        margin-bottom: 1.5rem !important;
    }

    .large-image-text__text,
    .large-image-text__text p {
        max-width: 41ch !important;
        margin-top: 1.35rem !important;
        font-size: .88rem !important;
        line-height: 1.85 !important;
    }

    .large-image-text__text p + p {
        margin-top: .8rem !important;
    }

    .large-image-text__quote {
        margin-top: 1.5rem !important;
    }

    .large-image-text__cta {
        margin-top: 1.5rem !important;
    }

    /* ---------------------------------------------------------
       Image banner — Expertises.tsx offer section
       One responsive order everywhere: image then text.
       --------------------------------------------------------- */
    .image-banner {
        padding-block: 6rem !important;
        min-height: 0 !important;
    }

    .image-banner__grid {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: center !important;
        gap: 4rem !important;
        width: 100% !important;
    }

    .image-banner__media {
        grid-column: 1 / span 7 !important;
        order: 1 !important;
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 10 !important;
        overflow: hidden !important;
    }

    .image-banner__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .image-banner__content {
        grid-column: 8 / span 4 !important;
        order: 2 !important;
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 0 !important;
        padding: 0 !important;
    }

    .image-banner__content-inner {
        width: 100% !important;
        max-width: 41ch !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    .image-banner__title-rule {
        margin-bottom: 1.5rem !important;
    }

    .image-banner__title {
        margin: 0 !important;
        font-size: clamp(2.2rem, 4.6vw, 3.75rem) !important;
        line-height: 1.08 !important;
    }

    .image-banner__text,
    .image-banner__text p {
        max-width: 41ch !important;
        margin-top: 1.35rem !important;
        font-size: .9rem !important;
        line-height: 1.85 !important;
    }

    .image-banner__quote {
        margin-top: 1.5rem !important;
    }

    .image-banner__cta {
        margin-top: 1.5rem !important;
    }

    /* ---------------------------------------------------------
       Free gallery — single responsive reference: 3-column editorial grid
       ACF column/mosaic/spacing variants do not alter responsive structure.
       --------------------------------------------------------- */
    .gallery-free.section {
        padding-block: 5rem !important;
    }

    .gallery-free h2 {
        margin: 0 auto !important;
        text-align: center !important;
        font-size: clamp(2.35rem, 5vw, 4rem) !important;
        line-height: 1.04 !important;
    }

    .gallery-free__grid,
    .gallery-free__grid--2,
    .gallery-free__grid--3,
    .gallery-free__grid--4,
    .gallery-free__grid--mosaic {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 2rem !important;
        margin-top: 3.5rem !important;
    }

    .gallery-free__grid figure {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 3 / 4 !important;
        overflow: hidden !important;
    }

    .gallery-free__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    /* ---------------------------------------------------------
       Quote — Signature.tsx final editorial quote
       --------------------------------------------------------- */
    .quote-section.section {
        padding-block: 4.5rem !important;
        text-align: center !important;
    }

    .quote-section blockquote {
        max-width: 42rem !important;
        margin-inline: auto !important;
        text-align: center !important;
    }

    .quote-section blockquote > p {
        margin: 0 auto !important;
        font-size: clamp(1.65rem, 3.4vw, 2.15rem) !important;
        line-height: 1.3 !important;
    }

    .quote-section footer {
        margin-top: 1.25rem !important;
    }

    /* ---------------------------------------------------------
       Journal featured — Journal.tsx
       --------------------------------------------------------- */
    .journal-featured.section {
        padding-block: 6rem !important;
    }

    .journal-featured__grid {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: start !important;
        gap: 4rem !important;
    }

    .journal-featured__media {
        grid-column: 1 / span 7 !important;
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 10 !important;
        overflow: hidden !important;
    }

    .journal-featured__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .journal-featured__content {
        grid-column: 9 / span 4 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 1.25rem !important;
        padding-top: 2rem !important;
        text-align: left !important;
    }

    .journal-featured__meta {
        display: flex !important;
        align-items: center !important;
        gap: 1rem !important;
    }

    .journal-featured__title {
        margin: 0 !important;
        font-family: var(--aa-font-body) !important;
        font-size: clamp(.98rem, 1.7vw, 1.18rem) !important;
        line-height: 1.55 !important;
        letter-spacing: .18em !important;
    }

    .journal-featured__excerpt {
        max-width: 34ch !important;
        margin: 0 !important;
        font-size: .86rem !important;
        line-height: 1.9 !important;
    }

    /* ---------------------------------------------------------
       Journal list — Journal.tsx
       --------------------------------------------------------- */
    .journal-list.section {
        padding-block: 6rem !important;
    }

    .journal-list__heading {
        margin-bottom: 2.5rem !important;
    }

    .journal-list .journal-grid {
        display: block !important;
    }

    .journal-list .journal-card {
        padding: 2.5rem 0 !important;
        border-top: 1px solid rgba(60, 42, 30, .18) !important;
    }

    .journal-list .journal-card__link {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: center !important;
        gap: 2rem !important;
    }

    .journal-list .journal-card__meta {
        grid-column: 1 / span 2 !important;
        align-self: start !important;
    }

    .journal-list .journal-card__media {
        grid-column: 3 / span 3 !important;
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 4 / 3 !important;
        margin: 0 !important;
        overflow: hidden !important;
    }

    .journal-list .journal-card__media img {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .journal-list .journal-card__content {
        grid-column: 6 / span 5 !important;
        width: 100% !important;
        text-align: left !important;
    }

    .journal-list .journal-card__title {
        margin: 0 !important;
        font-family: var(--aa-font-body) !important;
        font-size: clamp(.9rem, 1.5vw, 1.08rem) !important;
        line-height: 1.55 !important;
        letter-spacing: .18em !important;
    }

    .journal-list .journal-card__excerpt {
        max-width: 40ch !important;
        margin: 1rem 0 0 !important;
        font-size: .84rem !important;
        line-height: 1.85 !important;
    }

    .journal-list .journal-card__cta {
        margin-top: 1.25rem !important;
    }

    .journal-card--without-image .journal-card__content {
        grid-column: 3 / span 7 !important;
    }

    /* ---------------------------------------------------------
       Contact minimal — Contact.tsx
       Tablet displays image; phone hides it (overridden below).
       Position field is neutralised: content then image.
       --------------------------------------------------------- */
    .contact-minimal {
        min-height: calc(100svh - var(--aa-header-height)) !important;
        margin-top: var(--aa-header-height) !important;
        padding: 0 !important;
    }

    .contact-minimal__grid,
    .contact-minimal--image-left .contact-minimal__grid,
    .contact-minimal--image-right .contact-minimal__grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        min-height: calc(100svh - var(--aa-header-height)) !important;
    }

    .contact-minimal__content {
        grid-column: 1 !important;
        order: 1 !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        width: 100% !important;
        padding: 6rem 4rem !important;
        text-align: left !important;
    }

    .contact-minimal__media {
        grid-column: 2 !important;
        order: 2 !important;
        position: relative !important;
        display: block !important;
        width: 100% !important;
        min-height: 600px !important;
        overflow: hidden !important;
    }

    .contact-minimal__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .contact-minimal--no-image .contact-minimal__grid {
        grid-template-columns: 1fr !important;
    }

    .contact-minimal--no-image .contact-minimal__content {
        grid-column: 1 !important;
        max-width: 760px !important;
        margin-inline: auto !important;
    }

    .contact-minimal__intro {
        margin: 0 0 2rem !important;
        font-size: .76rem !important;
        line-height: 1.5 !important;
        letter-spacing: .22em !important;
    }

    .contact-minimal__title {
        margin: 0 0 .625rem !important;
        font-size: clamp(2.5rem, 5.5vw, 3.5rem) !important;
        line-height: 1.05 !important;
    }

    .contact-minimal__subtitle {
        margin: 0 !important;
        font-size: 1rem !important;
        line-height: 1.7 !important;
    }

    .contact-minimal__rule {
        margin: 2.5rem 0 !important;
    }

    .contact-minimal__details {
        display: flex !important;
        flex-direction: column !important;
        gap: 1.25rem !important;
    }

    .contact-minimal__label {
        margin-bottom: .35rem !important;
    }

    .contact-minimal__message {
        margin-top: 3rem !important;
    }

    .contact-minimal__text,
    .contact-minimal__text p {
        max-width: 44ch !important;
        font-size: .94rem !important;
        line-height: 1.85 !important;
    }

    .contact-minimal__cta {
        margin-top: 1.5rem !important;
    }

    .contact-minimal__quote {
        max-width: 34ch !important;
        margin-top: 3.5rem !important;
        font-size: 1.35rem !important;
        line-height: 1.45 !important;
    }

    /* ---------------------------------------------------------
       Footer — Footer.tsx
       --------------------------------------------------------- */
    .site-footer__inner {
        padding: 4rem var(--aa-container-x) !important;
    }

    .site-footer__top {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 3.5rem !important;
    }

    .site-footer__brand {
        max-width: 24rem !important;
    }

    .site-footer__logo {
        width: 150px !important;
    }

    .site-footer__description {
        width: 100% !important;
        max-width: 24rem !important;
        margin-top: 2rem !important;
        font-size: 13px !important;
        line-height: 1.9 !important;
        white-space: normal !important;
    }

    .site-footer__columns {
        display: flex !important;
        flex-direction: row !important;
        gap: 4rem !important;
    }

    .site-footer__bottom {
        flex-direction: row !important;
        align-items: center !important;
        gap: 1rem !important;
        margin-top: 4rem !important;
        padding-top: 1.5rem !important;
    }

    /* ---------------------------------------------------------
       Single journal article — aligned with Journal.tsx editorial rhythm
       --------------------------------------------------------- */
    .single-journal {
        padding-top: var(--aa-header-height) !important;
    }

    .aa-article-intro,
    .aa-article-text,
    .aa-article-media,
    .aa-article-gallery,
    .aa-article-image-text,
    .aa-article-quote {
        padding-block: 4.5rem !important;
    }

    .aa-article-intro__inner,
    .aa-article-copy__inner {
        max-width: 760px !important;
        margin-inline: auto !important;
    }

    .aa-article-intro__title {
        font-size: clamp(3rem, 7vw, 5.4rem) !important;
        line-height: .95 !important;
    }

    .aa-article-intro__subtitle,
    .aa-article-intro__text,
    .aa-article-copy__content {
        font-size: .98rem !important;
        line-height: 1.9 !important;
    }

    .aa-article-image-text__grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        align-items: center !important;
        gap: 3rem !important;
    }

    .aa-article-gallery__grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 1.5rem !important;
    }
}

@media (max-width: 767px) {
    :root {
        --aa-container-x: 1.5rem;
        --aa-section-y: 3.5rem;
        --aa-section-y-compact: 2.5rem;
        --aa-section-y-loose: 4.5rem;
        --aa-grid-gap: 1.75rem;
    }

    .section,
    .aa-section {
        padding-block: 3.5rem !important;
    }

    /* ---------------------------------------------------------
       Header — Header.tsx phone menu
       --------------------------------------------------------- */
    .site-header__inner {
        padding-inline: 1.5rem !important;
    }

    .site-header__logo {
        width: 110px !important;
    }

    .site-header__toggle {
        display: block !important;
    }

    .site-header__navigation {
        position: fixed !important;
        inset: 0 !important;
        z-index: 1 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        padding: 96px 1.5rem 4rem !important;
        background: var(--aa-brun) !important;
        color: var(--aa-lin) !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .site-header--menu-open .site-header__navigation {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .site-header__menu {
        flex-direction: column !important;
        gap: 2rem !important;
        text-align: center !important;
    }

    .site-header__menu > li.menu-item-has-children {
        padding: 0 !important;
    }

    .site-header__menu > li > a {
        font-family: var(--aa-font-display) !important;
        font-size: clamp(2rem, 9vw, 3rem) !important;
        font-weight: 300 !important;
        letter-spacing: .12em !important;
    }

    /* ---------------------------------------------------------
       Heroes — phone measurements from React
       --------------------------------------------------------- */
    .hero--home .hero__content > .container,
    .hero--home .hero__content.container {
        padding-bottom: 4rem !important;
    }

    .hero--home .hero__title {
        font-size: clamp(2.65rem, 12vw, 4.2rem) !important;
    }

    .hero--home .hero__subtitle {
        max-width: 31ch !important;
        margin-top: 1.75rem !important;
        font-size: 1.05rem !important;
    }

    body #main-content .hero--image {
        min-height: 92vh !important;
    }

    body #main-content .hero--image .hero__content {
        min-height: 92vh !important;
    }

    body #main-content .hero--image .hero__content > .container,
    body #main-content .hero--image .hero__content.container {
        padding-bottom: 5rem !important;
    }

    body #main-content .hero--image .hero__content-inner {
        max-width: 100% !important;
    }

    body #main-content .hero--image .hero__title {
        max-width: 7.5ch !important;
        font-size: clamp(3.5rem, 15vw, 5.1rem) !important;
    }

    body #main-content .hero--image .hero__subtitle {
        max-width: min(36ch, 100%) !important;
        font-size: 1.08rem !important;
    }

    .hero--expertise {
        padding-block: 8rem !important;
    }

    .hero--expertise .hero__title,
    .hero--minimal .hero__title {
        font-size: clamp(2.7rem, 12vw, 4.1rem) !important;
    }

    .hero--minimal {
        min-height: calc(100svh - 100px) !important;
        padding-block: 4rem !important;
    }

    .hero--signature {
        min-height: 56svh !important;
        padding: 4.5rem 0 3.5rem !important;
    }

    .hero--signature .hero__title {
        font-size: clamp(3rem, 14vw, 4.6rem) !important;
    }

    .hero--journal {
        padding: 5rem 0 3.5rem !important;
    }

    .hero--journal .hero__title {
        font-size: clamp(3.2rem, 14vw, 4.8rem) !important;
    }

    /* ---------------------------------------------------------
       Compact phone sections — validated React rhythm
       --------------------------------------------------------- */
    .text-centered.aa-section,
    .editorial.section,
    .founder.section,
    .triptych--attached.section,
    .triptych--spaced.section,
    .full-width-banner.section,
    .gallery-free.section,
    .journal-featured.section,
    .journal-list.section {
        padding-block: 3.5rem !important;
    }

    .text-centered h2,
    .text-centered__quote p {
        font-size: clamp(2.1rem, 10vw, 3.15rem) !important;
    }

    .text-centered__content,
    .text-centered__content p {
        margin-top: 2rem !important;
        font-size: 1rem !important;
    }

    /* Editorial: two visual columns on React means two stacked blocks,
       not a PHP-generated alternate copy. Same content, single rendering. */
    .editorial.section {
        padding-block: 4rem !important;
    }

    .editorial .editorial__grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 2.5rem !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-inline: 1.5rem !important;
    }

    .editorial .editorial__content,
    .editorial .editorial__media-column,
    .editorial--without-media .editorial__content {
        grid-column: 1 !important;
        width: 100% !important;
    }

    .editorial .editorial__content {
        order: 1 !important;
    }

    .editorial .editorial__media-column {
        order: 2 !important;
    }

    .editorial .editorial__content-inner,
    .editorial--without-media .editorial__content-inner {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        text-align: left !important;
    }

    .editorial .editorial__title {
        margin-bottom: 1.5rem !important;
        font-size: clamp(2.1rem, 10vw, 3.2rem) !important;
    }

    .editorial .editorial__text,
    .editorial .editorial__text p {
        max-width: none !important;
        font-size: .98rem !important;
        line-height: 1.82 !important;
    }

    .editorial .editorial__media {
        aspect-ratio: 5 / 4 !important;
    }

    /* Multiple image/text: image then copy for every row; no forced nowrap. */
    .image-text-multiple.section {
        padding-block: 2.5rem !important;
    }

    .image-text-multiple__row {
        grid-template-columns: 1fr !important;
    }

    .image-text-multiple__row:nth-child(n) .image-text-multiple__media {
        grid-column: 1 !important;
        order: 1 !important;
    }

    .image-text-multiple__row:nth-child(n) .image-text-multiple__content {
        grid-column: 1 !important;
        order: 2 !important;
    }

    .image-text-multiple__content {
        min-height: 0 !important;
        padding: 2.25rem 1.5rem !important;
    }

    .image-text-multiple__content-inner {
        max-width: none !important;
    }

    .image-text-multiple__title {
        font-size: clamp(2rem, 9vw, 3rem) !important;
    }

    .image-text-multiple__text,
    .image-text-multiple__text p {
        max-width: none !important;
        font-size: .96rem !important;
        line-height: 1.78 !important;
    }

    /* Process Home: single column below 640px; two columns at 640–767. */
    .process-home.section {
        padding-block: 2.5rem !important;
    }

    .process-home .process-home__head {
        margin-bottom: 2.25rem !important;
    }

    .process-home__grid {
        grid-template-columns: 1fr !important;
        row-gap: 2.25rem !important;
    }

    .process-home .process-card__image {
        height: clamp(160px, 48vw, 210px) !important;
        max-height: none !important;
    }

    /* Process timeline: image then text, line hidden. */
    .process-timeline.section {
        padding-block: 2.5rem !important;
    }

    .process-timeline__heading {
        margin-bottom: 2rem !important;
    }

    .process-timeline__line {
        display: none !important;
    }

    .process-timeline__steps {
        gap: 1.75rem !important;
    }

    .timeline-step,
    .timeline-step:nth-child(n) {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }

    .timeline-step:nth-child(n) .timeline-step__media {
        grid-column: 1 !important;
        order: 1 !important;
    }

    .timeline-step:nth-child(n) .timeline-step__content {
        grid-column: 1 !important;
        order: 2 !important;
        padding-inline: 1.5rem !important;
        text-align: left !important;
    }

    .timeline-step__number {
        font-size: 2.1rem !important;
    }

    /* Founder: image and text stacked. */
    .founder__name {
        top: 4.15rem !important;
        font-size: .78rem !important;
        letter-spacing: .2em !important;
    }

    .founder .founder__grid {
        grid-template-columns: 1fr !important;
        gap: 3rem !important;
        padding-inline: 0 !important;
    }

    .founder .founder__portrait,
    .founder .founder__content {
        grid-column: 1 !important;
        width: 100% !important;
    }

    .founder .founder__portrait {
        order: 1 !important;
    }

    .founder .founder__content {
        order: 2 !important;
        padding-inline: 1.5rem !important;
    }

    .founder__text,
    .founder__text p {
        max-width: none !important;
    }

    /* Triptychs: one column. */
    .triptych--attached .triptych__head,
    .triptych--spaced .triptych__head {
        margin-bottom: 3rem !important;
    }

    .triptych--attached .triptych__grid,
    .triptych--spaced .triptych__grid {
        grid-template-columns: 1fr !important;
    }

    .triptych--attached .triptych-card + .triptych-card,
    .triptych--spaced .triptych-card + .triptych-card {
        margin-top: 2.5rem !important;
    }

    .triptych--attached .triptych-card__media {
        height: 420px !important;
    }

    .triptych--attached .triptych-card__content {
        padding-right: 0 !important;
    }

    .triptych--spaced .triptych__grid {
        gap: 0 !important;
    }

    /* Project signature: one landscape then two half-width images. */
    .project-showcase__grid {
        gap: .75rem !important;
        padding-inline: 1rem !important;
    }

    .project-showcase__media {
        height: clamp(230px, 68vw, 330px) !important;
    }

    .project-showcase__media--main {
        grid-column: span 12 !important;
    }

    .project-showcase__media--small,
    .project-showcase__media--medium {
        grid-column: span 6 !important;
        height: clamp(180px, 52vw, 270px) !important;
    }

    .project-showcase__content-row {
        grid-template-columns: 1fr !important;
        margin-top: 1.5rem !important;
        padding-inline: 1rem !important;
    }

    .project-showcase__content-column {
        grid-column: 1 !important;
    }

    /* CTA: stacked, compact. */
    .cta-banner.section {
        padding-block: 2.5rem !important;
    }

    .cta-banner .cta-banner__inner {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
        text-align: left !important;
    }

    .cta-banner__heading,
    .cta-banner__content {
        grid-column: 1 !important;
        text-align: left !important;
    }

    .cta-banner__title,
    .cta-banner__quote,
    .cta-banner__quote p {
        max-width: none !important;
        font-size: clamp(2.25rem, 10vw, 3.45rem) !important;
    }

    .cta-banner__content .aa-rich-text,
    .cta-banner__content .aa-rich-text p {
        max-width: none !important;
    }

    /* Full banner: 220px React phone strip. */
    .full-width-banner__heading {
        margin-bottom: 2.4rem !important;
    }

    .full-width-banner__media {
        height: 220px !important;
    }

    .full-width-banner__body {
        margin-top: 2.5rem !important;
    }

    /* Large image + text: exact phone structure of Expertises.tsx “Espace enfant”.
       Image banner keeps its own component reference. */
    .large-image-text {
        padding-block: 4rem !important;
    }

    .image-banner {
        padding-block: 3.5rem !important;
    }

    .large-image-text__grid,
    .image-banner__grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 2.5rem !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .large-image-text__media,
    .large-image-text__content,
    .image-banner__media,
    .image-banner__content {
        grid-column: 1 !important;
        width: 100% !important;
    }

    .large-image-text__media,
    .image-banner__media {
        order: 1 !important;
    }

    .large-image-text__content,
    .image-banner__content {
        order: 2 !important;
        padding: 0 1.5rem !important;
    }

    .large-image-text__content-inner,
    .image-banner__content-inner {
        max-width: none !important;
    }

    .large-image-text__text,
    .large-image-text__text p,
    .image-banner__text,
    .image-banner__text p {
        max-width: none !important;
    }

    /* Gallery: one column. */
    .gallery-free__grid,
    .gallery-free__grid--2,
    .gallery-free__grid--3,
    .gallery-free__grid--4,
    .gallery-free__grid--mosaic {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
        margin-top: 3rem !important;
    }

    /* Journal featured/list: stacked. */
    .journal-featured__grid {
        grid-template-columns: 1fr !important;
        gap: 2.5rem !important;
    }

    .journal-featured__media,
    .journal-featured__content {
        grid-column: 1 !important;
    }

    .journal-featured__content {
        padding-top: 0 !important;
    }

    .journal-featured__excerpt {
        max-width: none !important;
    }

    .journal-list .journal-card__link {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }

    .journal-list .journal-card__meta,
    .journal-list .journal-card__media,
    .journal-list .journal-card__content,
    .journal-card--without-image .journal-card__content {
        grid-column: 1 !important;
    }

    .journal-list .journal-card__media {
        order: 1 !important;
    }

    .journal-list .journal-card__meta {
        order: 2 !important;
    }

    .journal-list .journal-card__content {
        order: 3 !important;
    }

    .journal-list .journal-card__excerpt {
        max-width: none !important;
    }

    /* Contact.tsx phone: image hidden, content-only page. */
    .contact-minimal,
    .contact-minimal__grid,
    .contact-minimal--image-left .contact-minimal__grid,
    .contact-minimal--image-right .contact-minimal__grid {
        min-height: calc(100svh - var(--aa-header-height)) !important;
    }

    .contact-minimal__grid,
    .contact-minimal--image-left .contact-minimal__grid,
    .contact-minimal--image-right .contact-minimal__grid {
        grid-template-columns: 1fr !important;
    }

    .contact-minimal__content,
    .contact-minimal--no-image .contact-minimal__content {
        grid-column: 1 !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 6rem 2rem !important;
    }

    .contact-minimal__media {
        display: none !important;
    }

    .contact-minimal__title {
        font-size: clamp(2.5rem, 12vw, 3.5rem) !important;
    }

    .contact-minimal__details {
        gap: 1.25rem !important;
    }

    .contact-minimal__message {
        margin-top: 3rem !important;
    }

    .contact-minimal__quote {
        margin-top: 3.5rem !important;
    }

    /* Footer.tsx phone */
    .site-footer__inner {
        padding: 3.5rem 1.5rem !important;
    }

    .site-footer__logo {
        width: 135px !important;
    }

    .site-footer__description {
        max-width: 100% !important;
    }

    .site-footer__columns {
        flex-direction: column !important;
        gap: 2.5rem !important;
    }

    .site-footer__bottom {
        flex-direction: column !important;
        align-items: flex-start !important;
    }

    /* Article: one-column editorial flow. */
    .aa-article-intro,
    .aa-article-text,
    .aa-article-media,
    .aa-article-gallery,
    .aa-article-image-text,
    .aa-article-quote {
        padding-block: 3.5rem !important;
    }

    .aa-article-image-text__grid,
    .aa-article-gallery__grid {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }

    /* Saved desktop presets and page context never create a phone variant. */
    body #main-content :is(
        .editorial--left,
        .editorial--right,
        .editorial--style-square,
        .editorial--style-rectangle,
        .editorial--style-giant,
        .large-image-text--left,
        .large-image-text--right,
        .large-image-text--style-extended,
        .large-image-text--style-centered
    ) :is(.editorial__content, .editorial__media-column, .large-image-text__content, .large-image-text__media) {
        min-width: 0 !important;
        max-width: 100% !important;
    }
}

@media (min-width: 640px) and (max-width: 767px) {
    .process-home__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* ============================================================
   V97 — AUDIT RESPONSIVE AUTORITATIF

   Références React uniques :
   - Hero Image : APropos.tsx
   - Editorial : Expertises.tsx / « Une offre pensée dans le détail »
   - Process Home : Home.tsx / section « Process »

   Ce bloc est volontairement chargé en spécificité : les feuilles historiques
   contiennent encore des règles desktop très spécifiques. Sous 1024px, ce
   bloc neutralise leurs variantes sans modifier le rendu ordinateur.
   ============================================================ */

@media (max-width: 1023px) {
    /* ---------- Limite physique commune à toutes les sections ---------- */
    html,
    body,
    #page,
    #main-content,
    .site-main {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: clip !important;
    }

    body #main-content,
    body #main-content > *,
    body #main-content section,
    body #main-content section > *,
    body #main-content section :is(
        div,
        header,
        footer,
        article,
        figure,
        blockquote,
        nav
    ) {
        box-sizing: border-box !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    body #main-content section > :is(
        .container,
        .aa-container,
        .aa-container-wide,
        .aa-container-narrow
    ) {
        width: 100% !important;
        max-width: 100% !important;
        margin-right: auto !important;
        margin-left: auto !important;
        padding-right: var(--aa-container-x) !important;
        padding-left: var(--aa-container-x) !important;
    }

    body #main-content section figure {
        box-sizing: border-box !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    /* Le navigateur coupe uniquement aux espaces. Aucun mot ni nom propre
       n'est scindé artificiellement. Les retours ACF restent masqués ici. */
    body #main-content section :is(
        h1,
        h2,
        h3,
        h4,
        h5,
        h6,
        p,
        li,
        blockquote,
        figcaption,
        a,
        span,
        .aa-rich-text,
        .aa-rich-text > *
    ),
    .site-footer :is(h1, h2, h3, h4, h5, h6, p, li, a, span) {
        box-sizing: border-box !important;
        min-width: 0 !important;
        max-width: 100% !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    body #main-content br.aa-authored-break,
    body #main-content br.aa-manual-break,
    .site-footer br.aa-authored-break,
    .site-footer br.aa-manual-break {
        display: none !important;
    }

    body #main-content .aa-manual-break-space,
    .site-footer .aa-manual-break-space {
        display: inline !important;
    }

    body #main-content .contact-minimal__location br.aa-manual-break {
        display: none !important;
    }

    body #main-content .contact-minimal__location .aa-manual-break-space {
        display: inline !important;
    }

    /* ---------- Tous les textes éditables : largeur réellement disponible ---------- */
    body #main-content :is(
        .hero__content,
        .hero__content-inner,
        .hero__intro,
        .hero__breadcrumb,
        .hero__title,
        .hero__subtitle,
        .text-centered__inner,
        .text-centered__kicker,
        .text-centered__quote,
        .text-centered__content,
        .editorial__content,
        .editorial__content-inner,
        .editorial__kicker,
        .editorial__title,
        .editorial__text,
        .process-home__head,
        .process-home__subtitle,
        .process-card,
        .process-card h3,
        .process-card__text,
        .process-timeline__heading,
        .process-timeline__title,
        .process-timeline__subtitle,
        .timeline-step__content,
        .timeline-step__title,
        .timeline-step__text,
        .founder__name,
        .founder__content,
        .founder__text,
        .founder__text p,
        .founder blockquote,
        .triptych__head,
        .triptych__intro,
        .triptych-card__content,
        .triptych-card__content h3,
        .triptych-card__content p,
        .image-banner__content,
        .image-banner__content-inner,
        .image-banner__kicker,
        .image-banner__title,
        .image-banner__text,
        .image-banner__quote,
        .large-image-text__content,
        .large-image-text__content-inner,
        .large-image-text__kicker,
        .large-image-text__title,
        .large-image-text__text,
        .large-image-text__quote,
        .image-text-multiple__content,
        .image-text-multiple__content-inner,
        .image-text-multiple__kicker,
        .image-text-multiple__title,
        .image-text-multiple__text,
        .image-text-multiple__quote,
        .full-width-banner__heading,
        .full-width-banner__body,
        .full-width-banner__title,
        .full-width-banner__text,
        .cta-banner__heading,
        .cta-banner__content,
        .cta-banner__title,
        .cta-banner__quote,
        .project-showcase__content-row,
        .project-showcase__content-column,
        .project-showcase__content,
        .project-showcase__title,
        .project-showcase__subtitle,
        .gallery-free__heading,
        .quote-section blockquote,
        .quote-section blockquote > *,
        .journal-featured__content,
        .journal-featured__title,
        .journal-featured__excerpt,
        .journal-card__content,
        .journal-card__title,
        .journal-card__excerpt,
        .contact-minimal__content,
        .contact-minimal__title,
        .contact-minimal__subtitle,
        .contact-minimal__text,
        .contact-minimal__quote,
        .aa-article-intro__title,
        .aa-article-intro__subtitle,
        .aa-article-intro__text,
        .aa-article-copy,
        .aa-article-copy__title,
        .aa-article-copy__content
    ) {
        box-sizing: border-box !important;
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    /* ---------- CTA React : la barre suit le texte, jamais la colonne ---------- */
    body #main-content a.cta-link,
    body #main-content .cta-link,
    body #main-content a.cta-link-light,
    body #main-content .cta-link-light,
    body #main-content a.cta-link--light,
    body #main-content .cta-link--light {
        display: inline-block !important;
        align-self: flex-start !important;
        width: auto !important;
        max-width: 100% !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    body #main-content :is(
        .process-home__cta,
        .process-timeline__cta,
        .triptych__cta,
        .text-centered__cta
    ) a.cta-link,
    body #main-content :is(
        .process-home__cta,
        .process-timeline__cta,
        .triptych__cta,
        .text-centered__cta
    ) .cta-link {
        align-self: center !important;
        margin-right: auto !important;
        margin-left: auto !important;
    }

    body #main-content :is(.cta-link, .cta-link-light, .cta-link--light)::after,
    body #main-content a:is(.cta-link, .cta-link-light, .cta-link--light)::after {
        right: auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* ========================================================
       HERO IMAGE — copie structurelle de APropos.tsx
       ======================================================== */
    body #main-content .hero.hero--image {
        position: relative !important;
        display: flex !important;
        align-items: flex-end !important;
        width: 100% !important;
        min-height: 92svh !important;
        height: auto !important;
        margin: 0 !important;
        overflow: hidden !important;
    }

    body #main-content .hero.hero--image .hero__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        object-fit: cover !important;
        object-position: center top !important;
    }

    body #main-content .hero.hero--image .hero__overlay {
        position: absolute !important;
        inset: 0 !important;
        background: linear-gradient(
            90deg,
            rgba(60, 42, 30, .78) 0%,
            rgba(60, 42, 30, .42) 46%,
            rgba(60, 42, 30, .12) 100%
        ) !important;
    }

    body #main-content .hero.hero--image .hero__content {
        position: relative !important;
        z-index: 2 !important;
        display: block !important;
        align-self: flex-end !important;
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body #main-content .hero.hero--image .hero__content > .container {
        width: 100% !important;
        max-width: 100% !important;
        padding-right: var(--aa-container-x) !important;
        padding-bottom: 7rem !important;
        padding-left: var(--aa-container-x) !important;
    }

    body #main-content .hero.hero--image .hero__content-inner {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    body #main-content .hero.hero--image .hero__breadcrumb {
        width: auto !important;
        max-width: 100% !important;
        margin: 0 0 2.25rem !important;
    }

    body #main-content .hero.hero--image .hero__title,
    body #main-content .hero.hero--image .hero__title--manual-lines {
        width: 100% !important;
        max-width: min(11ch, 100%) !important;
        margin: 0 !important;
        color: var(--aa-lin) !important;
        font-size: clamp(3.5rem, 8vw, 7rem) !important;
        line-height: .92 !important;
        letter-spacing: .02em !important;
        text-align: left !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    body #main-content .hero.hero--image .hero__subtitle,
    body #main-content .hero.hero--image .hero__subtitle > * {
        width: auto !important;
        max-width: min(36ch, 100%) !important;
        margin: 1.75rem 0 0 !important;
        color: var(--aa-lin) !important;
        font-size: clamp(1.08rem, 1.75vw, 1.35rem) !important;
        line-height: 1.7 !important;
        opacity: .84 !important;
        text-align: left !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    /* Les autres Heroes perdent aussi les verrous nowrap historiques. */
    body #main-content :is(
        .hero.hero--home,
        .hero.hero--minimal,
        .hero.hero--expertise,
        .hero.hero--signature,
        .hero.hero--journal
    ) :is(.hero__intro, .hero__title, .hero__subtitle, .hero__breadcrumb) {
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    /* ========================================================
       SECTION ÉDITORIALE — « Une offre pensée dans le détail »
       Toutes les valeurs ACF de position/style/largeur sont neutralisées.
       ======================================================== */
    body #main-content section.editorial {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 6rem 0 !important;
        overflow: hidden !important;
    }

    body #main-content section.editorial > .editorial__grid {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: center !important;
        column-gap: 3.5rem !important;
        row-gap: 2.5rem !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        padding-right: var(--aa-container-x) !important;
        padding-left: var(--aa-container-x) !important;
    }

    body #main-content section.editorial .editorial__content,
    body #main-content section.editorial:is(
        .editorial--left,
        .editorial--right,
        .editorial--style-square,
        .editorial--style-rectangle,
        .editorial--style-giant
    ) .editorial__content {
        grid-column: 1 / span 5 !important;
        order: 1 !important;
        align-self: center !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    body #main-content section.editorial .editorial__content-inner,
    body #main-content section.editorial:is(
        .editorial--left,
        .editorial--right,
        .editorial--style-square,
        .editorial--style-rectangle,
        .editorial--style-giant
    ) .editorial__content-inner {
        width: 100% !important;
        max-width: min(520px, 100%) !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    body #main-content section.editorial .editorial__media-column,
    body #main-content section.editorial:is(
        .editorial--left,
        .editorial--right,
        .editorial--style-square,
        .editorial--style-rectangle,
        .editorial--style-giant
    ) .editorial__media-column {
        grid-column: 7 / span 6 !important;
        order: 2 !important;
        align-self: center !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    body #main-content section.editorial .editorial__media,
    body #main-content section.editorial:is(
        .editorial--style-square,
        .editorial--style-rectangle,
        .editorial--style-giant
    ) .editorial__media {
        position: relative !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        aspect-ratio: 5 / 4 !important;
        margin: 0 !important;
        overflow: hidden !important;
    }

    body #main-content section.editorial .editorial__image {
        position: absolute !important;
        inset: 0 !important;
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        object-fit: cover !important;
    }

    body #main-content section.editorial :is(
        .editorial__kicker,
        .editorial__title,
        .editorial__text,
        .editorial__text p,
        .editorial__cta
    ) {
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
        text-align: left !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    body #main-content section.editorial .editorial__kicker {
        margin-bottom: 1.25rem !important;
    }

    body #main-content section.editorial .editorial__title {
        margin-top: 0 !important;
        margin-bottom: 1.75rem !important;
        font-family: "Cormorant Garamond", serif !important;
        font-size: clamp(1.85rem, 3.5vw, 3rem) !important;
        font-weight: 300 !important;
        line-height: 1.08 !important;
        letter-spacing: .12em !important;
        text-transform: uppercase !important;
    }

    body #main-content section.editorial .editorial__text,
    body #main-content section.editorial .editorial__text p {
        font-family: "DM Sans", sans-serif !important;
        font-size: clamp(.98rem, 1.08vw, 1.06rem) !important;
        font-weight: 300 !important;
        line-height: 1.9 !important;
        letter-spacing: .01em !important;
    }

    body #main-content section.editorial .editorial__text p {
        margin: 0 !important;
    }

    body #main-content section.editorial .editorial__text p + p {
        margin-top: 1.5rem !important;
    }

    body #main-content section.editorial .editorial__cta {
        margin-top: 2rem !important;
    }

    body #main-content section.editorial.editorial--without-media .editorial__content {
        grid-column: 3 / span 8 !important;
        margin-right: auto !important;
        margin-left: auto !important;
    }

    body #main-content section.editorial.editorial--without-media .editorial__content-inner {
        max-width: 58ch !important;
        margin-right: auto !important;
        margin-left: auto !important;
    }

    /* ========================================================
       PROCESS HOME — copie structurelle de Home.tsx
       ======================================================== */
    body #main-content section.process-home {
        width: 100% !important;
        max-width: 100% !important;
        padding-top: 3.5rem !important;
        padding-bottom: 3.5rem !important;
    }

    body #main-content section.process-home > .container {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        padding-right: var(--aa-container-x) !important;
        padding-left: var(--aa-container-x) !important;
    }

    body #main-content section.process-home .process-home__head,
    body #main-content section.process-home .section-heading.process-home__head {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        width: 100% !important;
        max-width: min(780px, 100%) !important;
        margin: 0 auto 2.75rem !important;
        text-align: center !important;
    }

    body #main-content section.process-home .process-home__head > :is(
        .eyebrow,
        h2,
        .process-home__subtitle
    ) {
        align-self: center !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-right: auto !important;
        margin-left: auto !important;
        text-align: center !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    body #main-content section.process-home .process-home__head > h2 {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        font-size: clamp(2.35rem, 4.6vw, 4.45rem) !important;
        line-height: .98 !important;
        letter-spacing: .03em !important;
        text-transform: uppercase !important;
    }

    body #main-content section.process-home .process-home__subtitle {
        max-width: min(56ch, 100%) !important;
        margin-top: 1.25rem !important;
        margin-bottom: 0 !important;
        font-size: clamp(.98rem, 1.1vw, 1.08rem) !important;
        line-height: 1.85 !important;
        opacity: .82 !important;
    }

    body #main-content section.process-home .process-home__grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        column-gap: 2rem !important;
        row-gap: 2.25rem !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body #main-content section.process-home .process-card {
        width: 100% !important;
        max-width: 100% !important;
        padding-top: 1.15rem !important;
    }

    body #main-content section.process-home .process-card__image {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: clamp(138px, 15vw, 190px) !important;
        min-height: 0 !important;
        max-height: 190px !important;
        margin: 0 0 1.25rem !important;
        object-fit: cover !important;
    }

    body #main-content section.process-home .process-card h3 {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 .75rem !important;
        font-size: clamp(1.45rem, 2vw, 1.95rem) !important;
        line-height: 1.05 !important;
        letter-spacing: .045em !important;
        text-transform: uppercase !important;
        white-space: normal !important;
        text-wrap: wrap !important;
    }

    body #main-content section.process-home .process-card__text {
        width: 100% !important;
        max-width: min(32ch, 100%) !important;
        margin: 0 !important;
        font-size: .95rem !important;
        line-height: 1.75 !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    body #main-content section.process-home .process-home__cta {
        width: 100% !important;
        max-width: 100% !important;
        margin-top: 3rem !important;
        text-align: center !important;
    }

    /* ========================================================
       PRESETS ACF — une seule composition responsive par Layout
       ======================================================== */

    /* Editorial : les styles square/rectangle/giant partagent les mêmes
       rythmes internes. Le DOM peut changer d'ordre, le rendu non. */
    body #main-content section.editorial .editorial__text {
        margin: 0 !important;
    }

    body #main-content section.editorial .editorial__cta {
        margin: 2rem 0 0 !important;
    }

    /* Texte centré : small/large et classic/quote reprennent tous
       l'introduction de APropos.tsx sous 1024px. */
    body #main-content section.text-centered.aa-section {
        padding-top: 5rem !important;
        padding-bottom: 5rem !important;
    }

    body #main-content section.text-centered .text-centered__inner {
        width: 100% !important;
        max-width: min(920px, 100%) !important;
        margin-right: auto !important;
        margin-left: auto !important;
        text-align: center !important;
    }

    body #main-content section.text-centered :is(h2, .text-centered__quote, .text-centered__quote p) {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        padding: 0 !important;
        font-family: "Cormorant Garamond", serif !important;
        font-size: clamp(1.85rem, 3.5vw, 3rem) !important;
        font-weight: 300 !important;
        font-style: normal !important;
        line-height: 1.08 !important;
        letter-spacing: .12em !important;
        text-transform: uppercase !important;
        text-align: center !important;
    }

    body #main-content section.text-centered .text-centered__content,
    body #main-content section.text-centered .text-centered__content p {
        width: 100% !important;
        max-width: min(76ch, 100%) !important;
        margin: 2rem auto 0 !important;
        font-size: 1rem !important;
        line-height: 1.9 !important;
        text-align: center !important;
    }

    /* Triptyque espacé : les champs de taille ne modifient plus le
       responsive. Référence : « Espaces » de EspaceEnfant.tsx. */
    body #main-content section.triptych.triptych--spaced .triptych__head h2 {
        margin: 0 !important;
        font-family: "Cormorant Garamond", serif !important;
        font-size: clamp(1.85rem, 3.5vw, 3rem) !important;
        font-weight: 300 !important;
        line-height: 1.15 !important;
        letter-spacing: .12em !important;
        text-transform: uppercase !important;
    }

    body #main-content section.triptych.triptych--spaced .triptych-card__content h3 {
        margin: 0 0 .9rem !important;
        font-family: "Cormorant Garamond", serif !important;
        font-size: .82rem !important;
        font-weight: 300 !important;
        line-height: 1.15 !important;
        letter-spacing: .16em !important;
        text-transform: uppercase !important;
    }

    /* Bandeau CTA : default/minimal/centered et classic/quote partagent
       la composition finale de Home.tsx. */
    body #main-content section.cta-banner {
        padding-top: 3.5rem !important;
        padding-bottom: 3.5rem !important;
    }

    body #main-content section.cta-banner .cta-banner__inner {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: center !important;
        gap: 2rem !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        text-align: left !important;
    }

    body #main-content section.cta-banner .cta-banner__heading {
        grid-column: 1 / span 6 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        text-align: left !important;
    }

    body #main-content section.cta-banner .cta-banner__content {
        grid-column: 8 / span 5 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        text-align: left !important;
    }

    body #main-content section.cta-banner :is(
        .cta-banner__title,
        .cta-banner__quote,
        .cta-banner__quote p
    ) {
        width: 100% !important;
        max-width: min(18ch, 100%) !important;
        margin: 0 !important;
        padding: 0 !important;
        font-family: "Cormorant Garamond", serif !important;
        font-size: clamp(2.35rem, 4.6vw, 4.45rem) !important;
        font-weight: 300 !important;
        font-style: normal !important;
        line-height: .98 !important;
        letter-spacing: .03em !important;
        text-transform: uppercase !important;
        text-align: left !important;
    }

    body #main-content section.cta-banner .cta-banner__content .aa-rich-text,
    body #main-content section.cta-banner .cta-banner__content .aa-rich-text p {
        width: 100% !important;
        max-width: min(40ch, 100%) !important;
        margin: 0 !important;
        font-size: clamp(.98rem, 1.1vw, 1.08rem) !important;
        line-height: 1.85 !important;
        text-align: left !important;
    }

    /* V97.1 — neutralisation stricte des presets texte centré.
       Les classes small/large, classic/quote et les largeurs ACF ne
       peuvent plus changer la géométrie responsive du composant. */
    body #main-content section.aa-section.text-centered .text-centered__inner {
        width: 100% !important;
        max-width: min(920px, 100%) !important;
        margin: 0 auto !important;
        padding: 0 !important;
        text-align: center !important;
    }

    body #main-content section.aa-section.text-centered .text-centered__kicker {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 1rem !important;
        padding: 0 !important;
        text-align: center !important;
    }

    body #main-content section.aa-section.text-centered h2,
    body #main-content section.aa-section.text-centered blockquote.text-centered__quote,
    body #main-content section.aa-section.text-centered blockquote.text-centered__quote > p {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        padding: 0 !important;
        font-family: "Cormorant Garamond", serif !important;
        font-size: clamp(1.85rem, 3.5vw, 3rem) !important;
        font-weight: 300 !important;
        font-style: normal !important;
        line-height: 1.08 !important;
        letter-spacing: .12em !important;
        text-transform: uppercase !important;
        text-align: center !important;
    }

    body #main-content section.aa-section.text-centered .text-centered__content,
    body #main-content section.aa-section.text-centered .text-centered__content > p {
        width: 100% !important;
        max-width: min(76ch, 100%) !important;
        margin: 2rem auto 0 !important;
        padding: 0 !important;
        font-family: "Inter", sans-serif !important;
        font-size: 1rem !important;
        font-weight: 300 !important;
        line-height: 1.9 !important;
        letter-spacing: .01em !important;
        text-align: center !important;
    }

    body #main-content section.aa-section.text-centered .text-centered__cta {
        display: inline-block !important;
        width: auto !important;
        max-width: 100% !important;
        margin: 2rem auto 0 !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
        text-align: center !important;
    }

    /* V97.1 — neutralisation stricte de toutes les variantes du bandeau
       CTA. Les presets default/minimal/centered et classic/quote rendent
       désormais la même composition responsive. */
    body #main-content section.section.cta-banner {
        padding-top: 3.5rem !important;
        padding-bottom: 3.5rem !important;
    }

    body #main-content section.section.cta-banner .container.cta-banner__inner {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        align-items: center !important;
        gap: 2rem !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        text-align: left !important;
    }

    body #main-content section.section.cta-banner .cta-banner__heading {
        display: block !important;
        grid-column: 1 / span 6 !important;
        align-self: center !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    body #main-content section.section.cta-banner .cta-banner__content {
        display: block !important;
        grid-column: 8 / span 5 !important;
        align-self: center !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    body #main-content section.section.cta-banner .cta-banner__kicker {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 1rem !important;
        padding: 0 !important;
        font-family: "Inter", sans-serif !important;
        font-size: .72rem !important;
        font-weight: 300 !important;
        line-height: 1.3 !important;
        letter-spacing: .22em !important;
        text-transform: uppercase !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        opacity: .72 !important;
        text-align: left !important;
    }

    body #main-content section.section.cta-banner h2.cta-banner__title,
    body #main-content section.section.cta-banner blockquote.cta-banner__quote,
    body #main-content section.section.cta-banner blockquote.cta-banner__quote > p {
        display: block !important;
        width: 100% !important;
        max-width: min(18ch, 100%) !important;
        margin: 0 !important;
        padding: 0 !important;
        font-family: "Cormorant Garamond", serif !important;
        font-size: clamp(2.35rem, 4.6vw, 4.45rem) !important;
        font-weight: 300 !important;
        font-style: normal !important;
        line-height: .98 !important;
        letter-spacing: .03em !important;
        text-transform: uppercase !important;
        text-align: left !important;
    }

    body #main-content section.section.cta-banner .cta-banner__content .aa-rich-text,
    body #main-content section.section.cta-banner .cta-banner__content .aa-rich-text > p {
        display: block !important;
        width: 100% !important;
        max-width: min(40ch, 100%) !important;
        margin: 0 !important;
        padding: 0 !important;
        font-family: "Inter", sans-serif !important;
        font-size: clamp(.98rem, 1.1vw, 1.08rem) !important;
        font-weight: 300 !important;
        line-height: 1.85 !important;
        letter-spacing: .01em !important;
        text-align: left !important;
    }

    body #main-content section.section.cta-banner .cta-banner__content .cta-link {
        display: inline-block !important;
        align-self: auto !important;
        width: auto !important;
        max-width: 100% !important;
        margin: 2rem 0 0 !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
        font-family: "Inter", sans-serif !important;
        font-size: .8rem !important;
        font-weight: 400 !important;
        line-height: 1.35 !important;
        letter-spacing: .15em !important;
        text-align: left !important;
    }

    /* ---------- Neutralisation responsive des presets ACF ---------- */
    body #main-content :is(
        .image-banner--left,
        .image-banner--right,
        .large-image-text--left,
        .large-image-text--right,
        .large-image-text--style-extended,
        .large-image-text--style-centered,
        .founder--left,
        .founder--right,
        .contact-minimal--image-left,
        .contact-minimal--image-right
    ) :is(
        .image-banner__media,
        .image-banner__content,
        .large-image-text__media,
        .large-image-text__content,
        .founder__portrait,
        .founder__content,
        .contact-minimal__content,
        .contact-minimal__media
    ) {
        min-width: 0 !important;
        max-width: 100% !important;
    }
}

@media (max-width: 767px) {
    /* ---------- Hero Image : pb-20 exact du React ---------- */
    body #main-content .hero.hero--image {
        min-height: 92svh !important;
    }

    body #main-content .hero.hero--image .hero__content > .container {
        padding-right: 1.5rem !important;
        padding-bottom: 5rem !important;
        padding-left: 1.5rem !important;
    }

    body #main-content .hero.hero--image .hero__title,
    body #main-content .hero.hero--image .hero__title--manual-lines {
        max-width: min(11ch, 100%) !important;
        font-size: clamp(3.5rem, 15vw, 5.1rem) !important;
    }

    body #main-content .hero.hero--image .hero__subtitle,
    body #main-content .hero.hero--image .hero__subtitle > * {
        max-width: min(36ch, 100%) !important;
        font-size: 1.08rem !important;
    }

    /* ---------- Editorial : une colonne, texte puis image ---------- */
    body #main-content section.editorial {
        padding: 4rem 0 !important;
    }

    body #main-content section.editorial > .editorial__grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 2.5rem !important;
        padding-right: 1.5rem !important;
        padding-left: 1.5rem !important;
    }

    body #main-content section.editorial .editorial__content,
    body #main-content section.editorial .editorial__media-column,
    body #main-content section.editorial.editorial--without-media .editorial__content,
    body #main-content section.editorial:is(
        .editorial--left,
        .editorial--right,
        .editorial--style-square,
        .editorial--style-rectangle,
        .editorial--style-giant
    ) :is(.editorial__content, .editorial__media-column) {
        grid-column: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    body #main-content section.editorial .editorial__content,
    body #main-content section.editorial:is(
        .editorial--left,
        .editorial--right,
        .editorial--style-square,
        .editorial--style-rectangle,
        .editorial--style-giant
    ) .editorial__content {
        order: 1 !important;
    }

    body #main-content section.editorial .editorial__media-column,
    body #main-content section.editorial:is(
        .editorial--left,
        .editorial--right,
        .editorial--style-square,
        .editorial--style-rectangle,
        .editorial--style-giant
    ) .editorial__media-column {
        order: 2 !important;
    }

    body #main-content section.editorial .editorial__content-inner,
    body #main-content section.editorial.editorial--without-media .editorial__content-inner {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        text-align: left !important;
    }

    body #main-content section.editorial h2.editorial__title {
        width: 100% !important;
        max-width: min(17ch, 100%) !important;
        margin-bottom: 1.75rem !important;
        font-size: clamp(1.85rem, 8.5vw, 3rem) !important;
    }

    body #main-content section.editorial .editorial__text,
    body #main-content section.editorial .editorial__text p {
        width: 100% !important;
        max-width: 100% !important;
        font-size: .98rem !important;
        line-height: 1.9 !important;
    }

    /* ---------- Process Home : React grid 1 / 2 colonnes ---------- */
    body #main-content section.process-home {
        padding-top: 2.5rem !important;
        padding-bottom: 2.5rem !important;
    }

    body #main-content section.process-home > .container {
        padding-right: 1.5rem !important;
        padding-left: 1.5rem !important;
    }

    body #main-content section.process-home .process-home__head {
        margin-bottom: 2.25rem !important;
    }

    body #main-content section.process-home .process-home__grid {
        grid-template-columns: 1fr !important;
        row-gap: 2.25rem !important;
    }

    body #main-content section.process-home .process-card__image {
        height: clamp(138px, 15vw, 190px) !important;
        max-height: 190px !important;
    }

    /* Presets neutralisés aussi sur téléphone. */
    body #main-content section.text-centered.aa-section {
        padding-top: 3.5rem !important;
        padding-bottom: 3.5rem !important;
    }

    body #main-content section.section.cta-banner .container.cta-banner__inner {
        grid-template-columns: minmax(0, 1fr) !important;
        align-items: start !important;
        gap: 2rem !important;
    }

    body #main-content section.section.cta-banner .cta-banner__heading,
    body #main-content section.section.cta-banner .cta-banner__content {
        grid-column: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    /* ---------- Toutes les compositions empilées restent dans l'écran ---------- */
    body #main-content :is(
        .image-banner__grid,
        .large-image-text__grid,
        .image-text-multiple__row,
        .founder__grid,
        .timeline-step,
        .journal-featured__grid,
        .journal-card__link,
        .contact-minimal__grid,
        .cta-banner__inner
    ) {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body #main-content :is(
        .image-banner__media,
        .image-banner__content,
        .large-image-text__media,
        .large-image-text__content,
        .image-text-multiple__media,
        .image-text-multiple__content,
        .founder__portrait,
        .founder__content,
        .timeline-step__media,
        .timeline-step__content,
        .journal-featured__media,
        .journal-featured__content,
        .journal-card__meta,
        .journal-card__media,
        .journal-card__content,
        .contact-minimal__content,
        .cta-banner__heading,
        .cta-banner__content
    ) {
        grid-column: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (min-width: 640px) and (max-width: 767px) {
    body #main-content section.process-home .process-home__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* ============================================================
   V116 — Derniers ajustements client tablette / mobile

   Sous 1024 px, la géométrie est déterminée par l'appareil :
   - aucune largeur d'image ou de texte ne doit dépasser le viewport ;
   - les compositions image/texte deviennent verticales lorsque deux colonnes
     risquent de comprimer ou superposer le contenu ;
   - les zones éditoriales pleine largeur gardent une marge intérieure sûre ;
   - les Heroes image sont recentrés selon le viewport.
   ============================================================ */
@media (max-width: 1023px) {
    :root {
        --aa-device-safe-x: clamp(1.25rem, 4vw, 2rem);
    }

    /* Les images de Hero suivent le centre réel du viewport sur tablette/mobile. */
    body #main-content .hero.hero--image .hero__image {
        object-position: center center !important;
    }

    /* Les compositions à deux colonnes passent en pile sur tout format non-PC. */
    body #main-content :is(
        .editorial__grid,
        .large-image-text__grid,
        .image-banner__grid,
        .image-text-multiple__row,
        .founder__grid,
        .journal-featured__grid,
        .contact-minimal__grid,
        .contact-minimal--image-left .contact-minimal__grid,
        .contact-minimal--image-right .contact-minimal__grid
    ) {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
        gap: clamp(2rem, 5vw, 3.5rem) !important;
    }

    body #main-content :is(
        .editorial__content,
        .editorial__media-column,
        .large-image-text__media,
        .large-image-text__content,
        .image-banner__media,
        .image-banner__content,
        .image-text-multiple__media,
        .image-text-multiple__content,
        .founder__portrait,
        .founder__content,
        .journal-featured__media,
        .journal-featured__content,
        .contact-minimal__content,
        .contact-minimal__media
    ) {
        grid-column: 1 !important;
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body #main-content :is(
        .large-image-text__media,
        .image-banner__media,
        .image-text-multiple__media,
        .founder__portrait,
        .journal-featured__media
    ) {
        order: 1 !important;
    }

    body #main-content :is(
        .large-image-text__content,
        .image-banner__content,
        .image-text-multiple__content,
        .founder__content,
        .journal-featured__content
    ) {
        order: 2 !important;
    }

    /* Les composants sans container latéral natif ne collent plus leurs textes au bord. */
    body #main-content :is(
        .large-image-text__content,
        .image-banner__content,
        .image-text-multiple__content,
        .founder__content,
        .project-showcase__content-row
    ) {
        box-sizing: border-box !important;
        padding-right: var(--aa-device-safe-x) !important;
        padding-left: var(--aa-device-safe-x) !important;
    }

    body #main-content :is(
        .large-image-text__content-inner,
        .image-banner__content-inner,
        .image-text-multiple__content-inner,
        .founder__content,
        .project-showcase__content,
        .journal-featured__content,
        .contact-minimal__content
    ) {
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    /* Portrait fondatrice : le Nom reste sur la photo ; seul le nouveau Titre
       appartient à la colonne éditoriale au-dessus de la présentation. */
    body #main-content .founder__title {
        position: static !important;
        inset: auto !important;
        transform: none !important;
        width: 100% !important;
        max-width: 100% !important;
        text-align: left !important;
        white-space: normal !important;
        text-wrap: wrap !important;
        margin: 0 0 1.25rem !important;
        font-size: clamp(1.9rem, 6vw, 2.7rem) !important;
        line-height: 1.05 !important;
    }

    body #main-content .founder__portrait {
        position: relative !important;
        height: auto !important;
        aspect-ratio: 16 / 9 !important;
        overflow: hidden !important;
    }

    body #main-content .founder__image {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        object-fit: cover !important;
    }

    /* Contact : tablette = contenu puis image, sans chevauchement. */
    body #main-content .contact-minimal__content {
        order: 1 !important;
        padding: clamp(4.5rem, 8vw, 6rem) var(--aa-device-safe-x) !important;
    }

    body #main-content .contact-minimal__media {
        order: 2 !important;
        min-height: clamp(360px, 62vw, 620px) !important;
    }

    /* Le contenu des triptyques reste lisible même lorsque les images sont bord à bord. */
    body #main-content .triptych-card__content {
        box-sizing: border-box !important;
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-right: var(--aa-device-safe-x) !important;
        padding-left: var(--aa-device-safe-x) !important;
    }

    body #main-content .triptych__head,
    body #main-content .process-home__head,
    body #main-content .process-timeline__heading,
    body #main-content .gallery-free__heading,
    body #main-content .journal-list__heading,
    body #main-content .full-width-banner__heading,
    body #main-content .full-width-banner__body,
    body #main-content .cta-banner__heading,
    body #main-content .cta-banner__content {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    /* Aucun media redimensionné depuis le CMS ne peut recouvrir sa colonne texte. */
    body #main-content :is(
        .aa-image-exact-frame,
        .aa-image-custom-parent,
        .editorial__media,
        .large-image-text__media,
        .image-banner__media,
        .image-text-multiple__media,
        .founder__portrait,
        .project-showcase__media,
        .triptych-card__media,
        .timeline-step__media,
        .journal-featured__media,
        .journal-card__media,
        .contact-minimal__media
    ) {
        max-width: 100% !important;
    }
}

@media (max-width: 767px) {
    /* Le téléphone garde une marge constante, quelle que soit son orientation. */
    body #main-content .hero.hero--image .hero__content > .container {
        padding-right: var(--aa-device-safe-x) !important;
        padding-left: var(--aa-device-safe-x) !important;
    }

    body #main-content .contact-minimal__media {
        display: none !important;
    }
}

@media (max-width: 1023px) and (orientation: landscape) {
    /* Paysage téléphone/tablette : recentrage vertical des images de Hero. */
    body #main-content .hero.hero--image .hero__image {
        object-position: 50% 45% !important;
    }
}

/* ============================================================
   V140 — Ils nous font confiance : échelle responsive des logos
   Sous 1024 px, chaque logo reçoit une largeur réellement liée au viewport.
   Cela évite de conserver sa petite taille intrinsèque sur téléphone tout en
   préservant son ratio et sans introduire de largeur spécifique à une page.
   ============================================================ */
@media (max-width: 1023px) {
    body #main-content .trusted-logos__grid {
        --trusted-gap: clamp(1rem, 3vw, 1.75rem);
    }

    body #main-content .trusted-logos__item {
        flex: 0 1 clamp(8.5rem, 38vw, 11rem);
        min-width: 0 !important;
        max-width: clamp(8.5rem, 38vw, 11rem) !important;
    }

    body #main-content .trusted-logos__logo {
        width: clamp(7.5rem, 30vw, 10rem) !important;
        height: auto !important;
        max-width: 100% !important;
        max-height: none !important;
        object-fit: contain;
    }

    body #main-content .trusted-logos__text {
        width: 100%;
        max-width: 18ch;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }
}
