/* Robin Magicien — audit R01–R10. Scoped to the public site by the MU plugin. */
body.robin-site {
    --robin-gutter: clamp(20px, 3vw, 40px);
    --robin-content: 72rem;
}
/* One outer content width for every interior page, independent of editor spacers. */
.robin-site:not(.robin-page-home) .wp-site-blocks > main { padding-inline: var(--robin-gutter) !important; }
.robin-site:not(.robin-page-home) .entry-content {
    width: 100%;
    max-width: var(--robin-content) !important;
    margin-inline: auto !important;
    box-sizing: border-box;
}
.robin-site:not(.robin-page-home) .entry-content > .wp-block-group,
.robin-site:not(.robin-page-home) .entry-content > .wp-block-group > .wp-block-columns {
    width: 100%;
    max-width: 100% !important;
    padding-inline: 0 !important;
    margin-inline: 0 !important;
}
.robin-site:not(.robin-page-home) .entry-content > .wp-block-group > .wp-block-columns > .wp-block-column:empty { display: none; }
.robin-site:not(.robin-page-home) .entry-content > .wp-block-group > .wp-block-columns > .wp-block-column {
    min-width: 0;
    padding-inline: 0 !important;
}
.robin-site:not(.robin-page-home) .entry-content > .wp-block-group > .wp-block-columns:has(> .wp-block-column:empty) > .wp-block-column:not(:empty) {
    flex-basis: 100% !important;
    max-width: 100% !important;
}
.robin-site:not(.robin-page-home) .entry-content .robin-service-intro {
    width: 100%;
    max-width: 100% !important;
}
/* Reading measures belong to the copy, not to the page's outer alignment. */
.robin-site .entry-content .robin-service-intro > p,
.robin-site .robin-faq-item > p { max-width: 52rem; margin-inline: 0 !important; }
.robin-site .entry-content .robin-service-intro > :is(h1, .robin-back-link, .wp-block-buttons) { max-width: 100% !important; margin-inline: 0 !important; }
.robin-site .robin-service-page .wp-block-group:has(> .modula) { width: 100%; max-width: 100% !important; padding-inline: 0 !important; }
.robin-site.robin-page-temoignages .entry-content > .wp-block-group > .wp-block-columns > .wp-block-column > :is(h1, h2, p, .ti-widget, .modula) {
    width: 100%;
    max-width: 100% !important;
    margin-inline: 0 !important;
}
.robin-site.robin-page-contact .entry-content > .wp-block-group:first-child > p { max-width: 44rem; }
/* Do not animate layout widths/padding when a breakpoint or an enhancement applies. */
.robin-site :is(.wp-block-group, .wp-block-columns, .wp-block-column) {
    transition-property: background-color, border-color, box-shadow, color;
}

/* R01: use the available width instead of the theme's nested 60% containers. */
.robin-site .fotawp-overlap-ctasection > .wp-block-columns,
.robin-site .robin-home-intro-shell {
    width: calc(100% - var(--robin-gutter) * 2);
    max-width: var(--robin-content) !important;
    margin-inline: auto !important;
}
.robin-site .fotawp-overlap-ctasection > .wp-block-columns > .wp-block-column > .wp-block-group {
    padding: clamp(24px, 4vw, 40px) !important;
    height: 100%;
    box-sizing: border-box;
}
.robin-site .robin-home-intro {
    width: 100%;
    max-width: none !important;
    padding-inline: 0 !important;
    align-items: center !important;
    gap: clamp(24px, 4vw, 48px);
}
.robin-site .robin-home-intro > .wp-block-column {
    min-width: 0;
}
.robin-site.robin-page-prestations .entry-content h2 {
    font-size: clamp(26px, 3vw, 32px) !important;
    line-height: 1.3;
}
.robin-site .robin-service-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
}
.robin-site .robin-service-grid > .wp-block-column { display: contents; }
.robin-site .robin-service-card {
    display: flex !important;
    flex-direction: column;
    align-items: stretch !important;
    gap: 20px;
    min-width: 0;
    margin-block: 0 !important;
    align-self: start;
}
.robin-site .robin-service-card > * { margin: 0 !important; }
.robin-site .robin-service-card > .wp-block-buttons {
    margin-top: 0 !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    width: 100%;
}
.robin-site .robin-service-card > .wp-block-buttons > .wp-block-button { margin-inline: 0 !important; }
.robin-site .robin-service-card figure { width: 100%; }
.robin-site .robin-service-card figure img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (min-width: 782px) {
    .robin-site .robin-service-card { order: var(--robin-service-order); }
    .robin-site .robin-service-card h2 { min-height: 0; }
}
/* Empty columns are desktop spacers, not useful gutters on a small laptop. */
@media (min-width: 782px) and (max-width: 1199.98px) {
    .robin-site.robin-page-prestations .entry-content > .wp-block-group > .wp-block-columns > .wp-block-column:empty { display: none; }
    .robin-site.robin-page-prestations .entry-content > .wp-block-group > .wp-block-columns > .wp-block-column:not(:empty) { flex-basis: 100% !important; }
}

/* R03: remove both the fixed iframe height and WordPress's optional ratio shim. */
.robin-site .robin-home-intro .wp-block-embed,
.robin-site .robin-home-intro .wp-block-embed__wrapper {
    width: 100%;
    margin-inline: 0;
}
.robin-site .robin-home-intro .wp-block-embed__wrapper {
    position: relative;
    aspect-ratio: 500 / 281;
    padding: 0 !important;
}
.robin-site .robin-home-intro .wp-block-embed__wrapper::before { content: none !important; }
.robin-site .robin-home-intro iframe {
    position: absolute;
    inset: 0;
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100%;
    border: 0;
}

/* R05: explicit header layouts, keeping the native WordPress navigation. */
.robin-site .robin-header {
    display: grid !important;
    grid-template-columns: minmax(180px, 270px) minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px !important;
    width: 100%;
}
.robin-site .robin-header > * { min-width: 0; margin: 0 !important; }
.robin-site .robin-header-logo a { display: block; line-height: 0; }
.robin-site .robin-header-logo img { display: block; width: 100% !important; height: auto !important; }
.robin-site .robin-header-nav { justify-content: center !important; }
.robin-site .robin-header-actions { justify-content: flex-end; gap: 12px !important; flex-wrap: nowrap !important; }
.robin-site .robin-header-actions .wp-block-social-links { gap: 0 !important; flex-wrap: nowrap; }
.robin-site .robin-header-actions .wp-block-social-link a { min-width: 40px; min-height: 44px; justify-content: center; box-sizing: border-box; }
.robin-site .robin-header-actions .wp-block-button__link { padding: 10px 16px; white-space: nowrap; font-size: 16px; }
.robin-site .robin-contact-short { display: none; }
.robin-site .robin-menu-title { display: none; }
.robin-site .robin-header nav > .wp-block-navigation__responsive-container .wp-block-navigation__container { gap: 16px; }
/* Keep one underline for hover/current page; discard the theme's extra rules. */
.robin-site .robin-header nav .wp-block-navigation-item__content { border-bottom: 0 !important; }
.robin-site .robin-header nav .wp-block-navigation-item__label::after { content: none !important; }
.robin-site .robin-header .wp-block-navigation__responsive-container-open,
.robin-site .robin-header .wp-block-navigation__responsive-container-close {
    width: 44px;
    height: 44px;
    padding: 10px;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.robin-site :where(a, button, summary, input, textarea):focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 4px;
}

/* R04: Fancybox's original 128px edge offsets crowd the centre on phones. */
.robin-site .fancybox__container .fancybox__nav .f-button.is-next {
    left: auto !important;
    right: max(8px, env(safe-area-inset-right)) !important;
}
.robin-site .fancybox__container .fancybox__nav .f-button.is-prev {
    right: auto !important;
    left: max(8px, env(safe-area-inset-left)) !important;
}

/* R08: readable input text with adequate touch height, including the home form. */
.robin-site .wpcf7 input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.robin-site .wpcf7 textarea,
.robin-site .wpcf7 select {
    box-sizing: border-box;
    max-width: 100%;
    min-height: 48px;
    font-size: 16px !important;
    line-height: 1.5;
}
.robin-site .wpcf7 input:not([type="submit"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.robin-site .wpcf7 textarea { width: 100%; }
.robin-site .wpcf7 textarea { min-height: 180px; resize: vertical; }
.robin-site .wpcf7 label { display: block; }
.robin-site .wpcf7-not-valid-tip,
.robin-site .wpcf7-response-output { overflow-wrap: anywhere; }

/* Home contact: keep the introduction and the form in one coherent section. */
.robin-site .robin-home-contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
    width: calc(100% - var(--robin-gutter) * 2);
    max-width: 44rem !important;
    margin: clamp(40px, 6vw, 80px) auto !important;
    padding: clamp(24px, 4vw, 48px) !important;
    box-sizing: border-box;
    border: 1px solid #e4e4e1;
    border-radius: 12px;
    background: #f5f5f3;
    color: #242424;
    scroll-margin-top: 24px;
}
.robin-site .robin-home-contact > * { min-width: 0; }
.robin-site .robin-contact-intro {
    align-self: start;
    width: 100%;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    scroll-margin-top: calc(25px + clamp(24px, 4vw, 48px));
}
.robin-site .robin-contact-intro > * { margin-inline: 0 !important; }
.robin-site .robin-contact-intro > [hidden] { display: none !important; }
.robin-site.robin-page-home .robin-contact-intro h5 {
    margin: 0 0 12px;
    text-align: left;
    color: #666;
    font-size: 12px !important;
    line-height: 1.4;
}
.robin-site.robin-page-home .robin-contact-intro :is(h1, h2) {
    max-width: 22ch;
    margin: 0 0 16px;
    text-align: left;
    font-size: clamp(28px, 3.4vw, 40px) !important;
    font-weight: 600 !important;
    line-height: 1.25;
}
.robin-site.robin-page-home .robin-contact-intro p {
    max-width: 42ch;
    margin: 0;
    text-align: left;
    font-size: 16px !important;
    line-height: 1.65;
}
.robin-site .robin-contact-intro a[href^="tel:"] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    white-space: nowrap;
    color: #242424;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.robin-site .robin-home-contact .robin-contact-form,
.robin-site .robin-contact-form :is(.wpcf7, form) {
    width: 100%;
    max-width: none !important;
    margin: 0 !important;
    padding: 0;
}
.robin-site .robin-contact-form .wpcf7-form > p {
    width: 100%;
    margin: 0 0 20px;
    font-size: 16px;
    line-height: 1.5;
}
.robin-site .robin-contact-form label { font-weight: 500; }
.robin-site.robin-page-contact .robin-contact-form { width: 100%; max-width: 44rem !important; margin-inline: auto !important; }
.robin-site .robin-contact-form label > br { display: none; }
.robin-site .robin-contact-form .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.robin-site .robin-contact-form :is(input[type="text"], input[type="email"], textarea) {
    display: block;
    padding: 12px 16px;
    border: 1px solid #b8b8b8;
    border-radius: 6px;
    background: #fff;
    color: #242424;
}
.robin-site .robin-contact-form textarea { height: 180px; }
.robin-site .robin-contact-form .wpcf7-form > p:last-of-type { position: relative; margin-bottom: 0; }
.robin-site .robin-contact-form input[type="submit"] {
    display: block;
    width: 100%;
    padding: 12px 24px;
    border-radius: 6px;
    background: #242424;
    color: #fff;
    font-weight: 600;
}
.robin-site .robin-contact-form .wpcf7-spinner { position: absolute; top: 50%; right: 16px; margin: 0; transform: translateY(-50%); }
.robin-site .robin-contact-form .wpcf7-response-output { margin: 20px 0 0; }
@media (min-width: 1024px) {
    .robin-site .robin-home-contact {
        grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
        align-items: start;
        gap: 48px;
        max-width: var(--robin-content) !important;
    }
}

/* R09: native disclosure widgets and direct links to each question. */
.robin-site .robin-faq-item { width: 100%; margin-block: 16px !important; border-bottom: 1px solid #d5d5d5; scroll-margin-top: 24px; }
.robin-site .robin-faq-item summary { cursor: pointer; padding: 18px 0; }
.robin-site .robin-faq-item summary h3 { display: inline; margin: 0 !important; font-size: clamp(20px, 2.1vw, 24px) !important; line-height: 1.45; }
.robin-site .robin-faq-answer { padding: 0 0 20px; }
.robin-site .robin-faq-answer p:first-child { margin-top: 0; }
.robin-site .robin-faq-answer p:last-child { margin-bottom: 0; }

/* R06: prevent the booking badge from competing with an open overlay. */
.robin-site:has(.wp-block-navigation__responsive-container.is-menu-open) .calendly-badge-widget,
.robin-site:has(.fancybox__container) .calendly-badge-widget,
.robin-site:has(.wpcf7 :focus) .calendly-badge-widget {
    visibility: hidden;
    pointer-events: none;
}
.robin-site .robin-booking-slot { display: none; }
/* The badge belongs to the host page; the scheduling iframe branding is managed in Calendly. */
.robin-site .calendly-badge-widget .calendly-badge-content > span { display: none; }
.robin-site .calendly-overlay .calendly-popup-close { width: 44px; height: 44px; }

@media (min-width: 1200px) and (max-width: 1439.98px) {
    /* Keep laptop navigation on one row without squeezing the contact action. */
    .robin-site .robin-header { grid-template-columns: minmax(180px, 220px) minmax(0, 1fr) auto; }
    .robin-site .robin-header nav > .wp-block-navigation__responsive-container .wp-block-navigation__container { gap: 12px; }
    .robin-site .robin-header nav .wp-block-navigation-item__content { font-size: 16px; }
    .robin-site .robin-header-actions .wp-block-social-link a { min-width: 32px; }
}

@media (max-width: 1199.98px) {
    /* R02/R04: a CSS grid overrides Modula's absolute coordinates on small screens.
       All original image links and lightbox handlers are retained. Desktop art
       direction above this breakpoint remains managed by Modula. */
    .robin-site:is(.robin-page-portfolio, .robin-page-mariage, .robin-page-entreprises, .robin-page-evenements-prives) .modula,
    .robin-site:is(.robin-page-portfolio, .robin-page-mariage, .robin-page-entreprises, .robin-page-evenements-prives) .modula-items { height: auto !important; min-height: 0 !important; }
    .robin-site:is(.robin-page-portfolio, .robin-page-mariage, .robin-page-entreprises, .robin-page-evenements-prives) .modula-items {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
        width: 100% !important;
    }
    .robin-site:is(.robin-page-portfolio, .robin-page-mariage, .robin-page-entreprises, .robin-page-evenements-prives) .modula-items > .modula-item {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        transform: none !important;
        aspect-ratio: 4 / 5;
    }
    .robin-site:is(.robin-page-portfolio, .robin-page-mariage, .robin-page-entreprises, .robin-page-evenements-prives) .modula-item-content,
    .robin-site:is(.robin-page-portfolio, .robin-page-mariage, .robin-page-entreprises, .robin-page-evenements-prives) .modula-item-link {
        display: block;
        width: 100%;
        height: 100%;
    }
    .robin-site:is(.robin-page-portfolio, .robin-page-mariage, .robin-page-entreprises, .robin-page-evenements-prives) .modula-item img.pic {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        margin: 0 !important;
        object-fit: cover !important;
        transform: none !important;
        transition-property: opacity !important;
    }
}

@media (max-width: 1199.98px) {
    .robin-site .robin-header { grid-template-columns: minmax(0, 1fr) auto 44px; gap: clamp(8px, 2vw, 18px) !important; }
    .robin-site .robin-header > * { grid-row: 1; }
    .robin-site .robin-header-logo { grid-column: 1; max-width: 270px; }
    .robin-site .robin-header-actions { grid-column: 2; justify-content: flex-end !important; }
    .robin-site .robin-header-nav { grid-column: 3; justify-content: flex-end !important; }
    .robin-site .robin-header-actions .wp-block-button__link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: 9px 16px;
        box-sizing: border-box;
        border: 1px solid #242424;
        border-radius: 6px;
        background: #242424;
        color: #fff !important;
        font-size: 14px;
        font-weight: 600;
        line-height: 1.2;
    }
    .robin-site .robin-header-actions .wp-block-button__link :is(span, strong) { color: inherit; }
    .robin-site.robin-page-home .robin-header-actions .wp-block-button__link {
        background: rgba(255, 255, 255, .12);
        border-color: rgba(255, 255, 255, .8);
    }
    .robin-site .robin-header .wp-block-navigation__responsive-container-open { display: flex !important; }
    .robin-site .robin-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
    .robin-site .robin-header .wp-block-navigation__responsive-container.is-menu-open {
        display: block !important;
        position: fixed;
        inset: 0;
        padding: 0 !important;
        overflow-y: auto;
        overscroll-behavior: contain;
        background: rgba(15, 15, 15, .45) !important;
        color: #242424 !important;
        animation: none;
    }
    .robin-site .robin-header .is-menu-open .wp-block-navigation__responsive-close {
        width: min(420px, 100%);
        max-width: none;
        min-height: 100vh;
        min-height: 100dvh;
        margin: 0 0 0 auto;
        background: #fff;
        box-shadow: -12px 0 40px rgba(0, 0, 0, .12);
    }
    .robin-site .robin-header .is-menu-open .wp-block-navigation__responsive-dialog { margin: 0 !important; }
    .robin-site .robin-header .is-menu-open .wp-block-navigation__responsive-container-close {
        display: flex;
        position: fixed;
        top: max(16px, env(safe-area-inset-top));
        right: max(16px, env(safe-area-inset-right));
        z-index: 2;
        border-radius: 50%;
        background: #fff;
        color: #242424;
    }
    .robin-site .robin-header .is-menu-open .wp-block-navigation__responsive-container-content {
        align-items: stretch !important;
        gap: 0 !important;
        padding: 16px max(28px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left));
        box-sizing: border-box;
    }
    .robin-site .is-menu-open .robin-menu-title {
        display: flex;
        align-items: center;
        min-height: 44px;
        margin: 0 48px 16px 0;
        color: #666;
        font-size: 12px;
        font-weight: 600;
        letter-spacing: .12em;
        text-transform: uppercase;
    }
    .robin-site .robin-header .is-menu-open .wp-block-navigation__container {
        width: 100%;
        align-items: stretch !important;
        gap: 0 !important;
    }
    .robin-site .robin-header .is-menu-open .wp-block-navigation-item {
        width: 100%;
        margin: 0 !important;
        align-items: stretch !important;
    }
    .robin-site .robin-header .is-menu-open .wp-block-navigation-item.has-child { flex-direction: column; }
    .robin-site .robin-header .is-menu-open .wp-block-navigation-item__content {
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 44px;
        padding: 8px 0 !important;
        box-sizing: border-box;
        color: inherit;
        font-size: 20px;
        font-weight: 600;
        line-height: 1.3;
        text-decoration: none;
    }
    .robin-site .robin-header .is-menu-open .wp-block-navigation-item__content:hover { text-decoration: underline; }
    .robin-site .robin-header .is-menu-open .wp-block-navigation__submenu-container {
        width: 100% !important;
        min-width: 0 !important;
        margin: 4px 0 8px !important;
        padding: 0 0 0 16px !important;
        box-sizing: border-box;
        border: 0;
        border-left: 1px solid #e3e3e3;
        background: transparent !important;
        box-shadow: none !important;
        gap: 0;
    }
    .robin-site .robin-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
        font-size: 16px;
        font-weight: 400;
        line-height: 1.4;
        color: #555;
    }
    .robin-site .robin-menu-socials {
        align-self: stretch;
        justify-content: flex-start;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 12px !important;
        margin: 20px 0 0 !important;
        padding: 16px 0 0;
        border-top: 1px solid #e3e3e3;
    }
    .robin-site .robin-menu-socials .wp-social-link { color: #242424 !important; background: transparent !important; }
    .robin-site .robin-menu-socials .wp-social-link a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 10px;
        box-sizing: border-box;
    }
}

@media (max-width: 1023.98px) {
    .robin-site .robin-home-intro,
    .robin-site .fotawp-overlap-ctasection > .wp-block-columns { flex-wrap: wrap !important; }
    .robin-site .robin-home-intro > .wp-block-column,
    .robin-site .fotawp-overlap-ctasection > .wp-block-columns > .wp-block-column { flex-basis: 100% !important; }
    .robin-site.robin-page-mariage .entry-content :is(.wp-block-columns, .wp-block-column, .wp-block-group):has(.modula),
    .robin-site.robin-page-entreprises .entry-content :is(.wp-block-columns, .wp-block-column, .wp-block-group):has(.modula) {
        width: 100% !important;
        max-width: 100% !important;
        padding-inline: 0 !important;
        box-sizing: border-box;
    }
    .robin-site:is(.robin-page-mariage, .robin-page-entreprises) .modula {
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 781.98px) {
    .robin-site .robin-service-grid { grid-template-columns: minmax(0, 1fr); }
    /* R07: remove excessive nested page margins while respecting footer layout. */
    .robin-site:not(.robin-page-home) .wp-site-blocks > main { padding-inline: var(--robin-gutter) !important; }
    .robin-site:not(.robin-page-home) main > header { padding-inline: 0 !important; }
    .robin-site:is(.robin-page-a-propos, .robin-page-temoignages) .entry-content :is(.wp-block-group, .wp-block-columns, .wp-block-column) {
        padding-inline: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }
    .robin-site.robin-page-a-propos .entry-content .wp-block-media-text__content { padding-inline: 0 !important; }
    .robin-site.robin-page-temoignages .entry-content :is(p, h2, .ti-widget) { max-width: 100% !important; width: 100%; }
    .robin-site .entry-content > :is(h1, h2),
    .robin-site .entry-content .has-x-large-font-size { font-size: clamp(28px, 6.5vw, 34px) !important; line-height: 1.3; }
    .robin-site.robin-page-prestations .entry-content h2 { font-size: clamp(26px, 6vw, 32px) !important; line-height: 1.3; }
    .robin-site.robin-page-home main h1 { font-size: clamp(28px, 7.5vw, 36px) !important; line-height: 1.3; }
    .robin-site .entry-content p,
    .robin-site .robin-home-intro p,
    .robin-site .fotawp-overlap-ctasection p { font-size: 18px !important; line-height: 1.65; }
}

@media (max-width: 1199.98px) {
    .robin-site .robin-booking-slot { display: flex; justify-content: center; padding: 24px var(--robin-gutter); }
    .robin-site .robin-booking-slot .calendly-badge-widget { position: static !important; margin: 0; }
    .robin-site .robin-booking-slot .calendly-badge-content { min-height: 48px; box-sizing: border-box; }
}

@media (max-width: 599.98px) {
    .robin-site .robin-header-actions .wp-block-button__link { padding-inline: 12px; font-size: 13px; }
    .robin-site .robin-contact-full { display: none; }
    .robin-site .robin-contact-short { display: inline; }
    .robin-site:is(.robin-page-portfolio, .robin-page-mariage, .robin-page-entreprises, .robin-page-evenements-prives) .modula-items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}
@media (max-width: 359.98px) {
    .robin-site:is(.robin-page-portfolio, .robin-page-mariage, .robin-page-entreprises, .robin-page-evenements-prives) .modula-items { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .robin-site :is(.robin-header, .robin-header *, .robin-home-intro, .robin-home-intro *, .fotawp-overlap-ctasection *) { transition: none !important; }
}

/* UX/UI review: consistent actions, hierarchy and a clear first screen. */
.robin-site .robin-action {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    max-width: 100%;
    box-sizing: border-box;
    padding: 12px 22px !important;
    border: 1px solid #242424 !important;
    border-radius: 6px !important;
    background: #242424 !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    text-decoration: none !important;
    transition: background-color .15s, color .15s, border-color .15s;
}
.robin-site .robin-action { --robin-hover-bg: #444; --robin-hover-color: #fff; --robin-hover-border: #444; }
.robin-site .robin-action-secondary { background: transparent !important; color: #242424 !important; border-color: #8a8a8a !important; }
.robin-site .robin-action-secondary { --robin-hover-bg: #f2f2f2; --robin-hover-color: #242424; --robin-hover-border: #242424; }
/* Shared states outrank the theme's coloured hover utilities and opacity effect. */
.robin-site .robin-action:is(:hover, :focus-visible),
.robin-site .robin-hero .robin-action:is(:hover, :focus-visible),
.robin-site .wp-block-button .wp-block-button__link.robin-action:is(:hover, :focus-visible),
.robin-site .robin-header-actions .wp-block-button__link:is(:hover, :focus-visible),
.robin-site .robin-contact-form input[type="submit"]:is(:hover, :focus-visible),
.robin-site .calendly-badge-widget .calendly-badge-content:is(:hover, :focus-visible),
.robin-site .ti-widget.ti-goog .ti-header-write-btn-container .ti-header-write-btn:is(:hover, :focus-visible) {
    background: var(--robin-hover-bg, #444) !important;
    color: var(--robin-hover-color, #fff) !important;
    border-color: var(--robin-hover-border, #444) !important;
    opacity: 1;
    text-decoration: none !important;
}
.robin-site .ti-widget .ti-header-write-btn { --robin-hover-bg: #f2f2f2; --robin-hover-color: #242424; --robin-hover-border: #242424; }
.robin-site :is(.robin-action, .robin-header-actions .wp-block-button__link, .robin-contact-form input[type="submit"], .calendly-badge-content, .ti-header-write-btn):focus-visible { outline: 3px solid #242424; outline-offset: 4px; }
.robin-site.robin-page-home .robin-header-actions .wp-block-button__link:focus-visible { outline-color: #fff; }
.robin-site.robin-page-home .robin-header-actions {
    --robin-hover-bg: rgba(255,255,255,.24);
    --robin-hover-color: #fff;
    --robin-hover-border: #fff;
}
.robin-site :is(.robin-action, .robin-header-actions .wp-block-button__link) :is(strong, span) { color: inherit !important; }
/* Text links keep a neutral, legible colour and one clear underline. */
.robin-site .robin-header nav .wp-block-navigation-item__content:is(:hover, :focus-visible) {
    color: inherit !important;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 6px;
}
.robin-site footer a:not(.wp-block-social-link-anchor):is(:hover, :focus-visible),
.robin-site .robin-back-link:is(:hover, :focus-visible),
.robin-site :is(main, .entry-content, .robin-home-contact) :is(p, li) > a:not([class]):is(:hover, :focus-visible) {
    color: #242424 !important;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
    opacity: 1;
}
/* Social icons and menu controls use a subtle surface instead of a brand tint or zoom. */
.robin-site .wp-block-social-links .wp-social-link:hover { transform: none; }
.robin-site .wp-block-social-links .wp-social-link a { border-radius: 6px; }
.robin-site .wp-block-social-links .wp-social-link a:is(:hover, :focus-visible) {
    color: inherit !important;
    background: rgba(127,127,127,.16);
}
.robin-site .wp-block-social-links .wp-social-link a:is(:hover, :focus-visible) svg { color: inherit !important; fill: currentColor !important; }
.robin-site .robin-header :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close):is(:hover, :focus-visible) {
    background: rgba(127,127,127,.16);
    border-radius: 6px;
}
.robin-site .robin-header .wp-block-navigation-item__content:is([aria-current="page"], .robin-current-section) {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 6px;
}
.robin-site .robin-eyebrow {
    margin: 0 0 16px;
    font-size: 12px !important;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.robin-site .robin-hero { min-height: 0; background: #151719; }
.robin-site .robin-hero .wp-block-cover__inner-container { width: 100%; }
.robin-site .robin-hero .wp-block-cover__inner-container > .wp-block-group:has(header) {
    background: linear-gradient(180deg, rgba(15,17,20,.92), rgba(15,17,20,.6) 65%, transparent);
}
/* The theme's outer header margin exposes a strip of the hero above the header. */
.robin-site.robin-page-home .robin-hero header.wp-block-group:has(.robin-header) {
    margin-block: 0 !important;
}
.robin-site .robin-hero .wp-block-cover__inner-container > [hidden] { display: none !important; }
.robin-site .robin-hero > .wp-block-cover__background {
    opacity: 1;
    background: linear-gradient(90deg, rgba(15,17,20,.18) 15%, rgba(15,17,20,.38) 42%, rgba(15,17,20,.94) 72%);
}
.robin-site .robin-hero > .wp-block-cover__image-background { object-position: 35% 10% !important; }
.robin-site .robin-hero-copy {
    width: min(48%, 640px);
    max-width: none !important;
    margin: 0 max(var(--robin-gutter), calc((100% - 1280px) / 2)) 0 auto !important;
    padding: 56px 0 112px;
    color: #fff;
}
.robin-site.robin-page-home .robin-hero-copy h1 {
    margin: 0 0 24px;
    max-width: 15ch;
    color: #fff;
    font-size: clamp(36px, 4.1vw, 60px) !important;
    font-weight: 600;
    line-height: 1.1 !important;
    letter-spacing: -.025em;
}
.robin-site .robin-hero-copy > p:not(.robin-eyebrow) { max-width: 43ch; margin: 0 0 28px; color: #eee; font-size: 18px; line-height: 1.6; }
.robin-site .robin-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.robin-site .robin-hero .robin-action { color: #242424 !important; background: #fff !important; border-color: #fff !important; }
.robin-site .robin-hero .robin-action { --robin-hover-bg: #f2f2f2; --robin-hover-color: #242424; --robin-hover-border: #fff; }
.robin-site .robin-hero .robin-action-secondary { color: #fff !important; background: transparent !important; border-color: #c3c3c3 !important; }
.robin-site .robin-hero .robin-action-secondary { --robin-hover-bg: rgba(255,255,255,.12); --robin-hover-color: #fff; --robin-hover-border: #fff; }
.robin-site .robin-hero .robin-action:focus-visible { outline-color: #fff; }
.robin-site .wp-block-group.fotawp-overlap-ctasection.pattern-banner-layout { position: relative; z-index: 1; margin-top: -48px !important; padding-top: 0 !important; }
.robin-site .fotawp-overlap-ctasection > .wp-block-columns > .wp-block-column > .wp-block-group { border-radius: 10px; }
.robin-site .fotawp-overlap-ctasection p { text-align: left !important; }
.robin-site .robin-home-intro h2 { font-size: clamp(28px, 2.5vw, 36px); line-height: 1.3; }
.robin-site .robin-section-title { font-size: clamp(28px, 3vw, 40px) !important; line-height: 1.25; }
.robin-site .robin-contact-intro .robin-eyebrow { margin-bottom: 12px; color: #666; }
.robin-site.robin-page-home .robin-contact-intro .robin-eyebrow { font-size: 12px !important; line-height: 1.5; }
.robin-site .robin-page-title { font-size: clamp(30px, 3vw, 44px) !important; line-height: 1.2 !important; font-weight: 600; }
.robin-site .robin-service-intro { max-width: 52rem !important; margin-inline: auto !important; padding-inline: 0 !important; }
.robin-site .robin-service-page .wp-block-columns:has(> .robin-service-intro) { margin-block: 0 !important; padding: 0 !important; }
.robin-site .robin-service-intro { padding-block: 0 !important; }
.robin-site .robin-service-intro h1 { margin-block: 8px 20px !important; }
.robin-site .robin-service-intro :is(h1, p) { text-align: left !important; }
.robin-site .robin-service-intro p { font-size: 18px !important; line-height: 1.7; }
.robin-site .robin-service-intro .wp-block-buttons { justify-content: flex-start !important; margin-block: 24px 40px; }
.robin-site .robin-back-link { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 12px; font-size: 14px; color: #555; text-underline-offset: 4px; }
.robin-site .robin-next-step {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 24px;
    width: 100%;
    max-width: var(--robin-content) !important;
    margin: 64px auto 24px !important;
    padding: clamp(24px, 4vw, 40px);
    border: 1px solid #e4e4e1;
    border-radius: 12px;
    box-sizing: border-box;
    background: #f5f5f3;
}
.robin-site .robin-next-step > div { flex: 1 1 340px; }
.robin-site .robin-next-step h2 { margin: 0 0 12px; font-size: clamp(26px, 3vw, 32px); line-height: 1.3; }
.robin-site .robin-next-step p { margin: 0; max-width: 58ch; font-size: 16px !important; line-height: 1.6; }
.robin-site .robin-next-step .robin-action { flex: 0 0 auto; }
.robin-site .robin-field-required { color: #666; font-size: 13px; font-weight: 400; }
.robin-site .robin-contact-form .robin-field-hint { display: block; margin: 8px 0 0 !important; font-size: 14px !important; line-height: 1.5; font-weight: 400; color: #555; }
.robin-site .robin-contact-form { scroll-margin-top: 24px; }
.robin-site.robin-page-contact .entry-content > p { max-width: 44rem !important; margin-inline: auto !important; text-align: left; }
.robin-site .robin-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; list-style: none; min-height: 64px; box-sizing: border-box; }
.robin-site .robin-faq-item summary::-webkit-details-marker { display: none; }
.robin-site .robin-faq-item summary::after { content: '+'; font-size: 26px; font-weight: 400; flex: 0 0 20px; text-align: center; }
.robin-site .robin-faq-item[open] summary::after { content: '−'; }
.robin-site .robin-faq-item summary h2 { margin: 0 !important; font-size: clamp(18px, 2.1vw, 22px) !important; font-weight: 600; line-height: 1.5; }
.robin-site .robin-faq-item summary h2 :is(strong, b) { font-weight: inherit; }
.robin-site .robin-faq-item summary:is(:hover, :focus-visible) { color: #242424; background: #f2f2f2; }
.robin-site footer .wp-block-list li > a { display: inline-flex; align-items: center; min-height: 36px; line-height: 1.5; max-width: 100%; overflow-wrap: anywhere; }
.robin-site footer a[href^="mailto:"] { text-decoration: underline; text-underline-offset: 3px; }
.robin-site footer .has-small-font-size { font-size: 13px !important; line-height: 1.6; }
@media (max-width: 781.98px) {
    .robin-site .robin-hero > .wp-block-cover__image-background { height: 370px; object-position: 35% 26% !important; }
    .robin-site .robin-hero > .wp-block-cover__background {
        /* WordPress's dim-30 utility otherwise weakens the fade and exposes the image edge. */
        opacity: 1 !important;
        background: linear-gradient(180deg, rgba(15,17,20,.3) 0, rgba(15,17,20,.08) 180px, rgba(21,23,25,.65) 280px, #151719 370px);
        background-color: transparent !important;
    }
    .robin-site .robin-hero-copy { width: auto; margin: 0 !important; padding: 280px var(--robin-gutter) 48px; }
    .robin-site.robin-page-home .robin-hero-copy h1 { font-size: clamp(32px, 7.7vw, 48px) !important; max-width: 18ch; }
    .robin-site .robin-hero-copy .robin-eyebrow { max-width: 32ch; }
    .robin-site .robin-hero-actions { gap: 12px; }
    .robin-site .wp-block-group.fotawp-overlap-ctasection.pattern-banner-layout { margin-top: 32px !important; }
    .robin-site .robin-next-step { margin-top: 40px !important; }
    .robin-site footer .wp-block-list li > a { min-height: 44px; }
}
@media (max-width: 479.98px) {
    .robin-site .robin-hero-actions .robin-action,
    .robin-site .robin-next-step .robin-action { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .robin-site .robin-action { transition: none; }
}

/* Spacing review: one section gap instead of stacked theme margins/padding. */
.robin-site { --robin-section-space: clamp(32px, 4vw, 56px); }
.robin-site .wp-block-group.fotawp-overlap-ctasection.pattern-banner-layout {
    padding-bottom: 0 !important;
}
.robin-site .fotawp-overlap-ctasection > .wp-block-columns { gap: 24px; }
.robin-site .fotawp-overlap-ctasection > .wp-block-columns > .wp-block-column > .wp-block-group > * + * {
    margin-top: 16px !important;
}
.robin-site .fotawp-overlap-ctasection .wp-block-buttons { margin-top: 20px !important; }
.robin-site .robin-home-intro-shell { margin-block: var(--robin-section-space) 0 !important; }
.robin-site .robin-home-intro { margin-block: 0 !important; padding-block: 0 !important; }
.robin-site .robin-home-intro p { margin-block: 16px 0 !important; }
.robin-site.robin-page-home main > .wp-block-group:has(.ti-widget) {
    margin-block: var(--robin-section-space) 0 !important;
    padding-block: 0 !important;
}
.robin-site.robin-page-home main > .wp-block-group:has(.ti-widget) > .wp-block-cover {
    min-height: 0;
    padding-block: 0;
}
.robin-site.robin-page-home .wp-block-cover__inner-container > .wp-block-group:has(> .robin-section-title) {
    padding-block: 0 !important;
    margin-block: 0 24px !important;
}
.robin-site.robin-page-home .wp-block-group:has(> .robin-section-title) > .robin-section-title {
    margin-top: 8px !important;
}
.robin-site .robin-home-contact { margin-block: var(--robin-section-space) !important; }
.robin-site .robin-next-step { margin-block: var(--robin-section-space) 0 !important; }
.robin-site .robin-service-intro p { margin-block: 16px 0 !important; }
.robin-site .robin-service-intro .wp-block-buttons { margin-block: 20px 0 !important; }
.robin-site .robin-service-page .wp-block-columns:has(.modula) {
    margin-block: var(--robin-section-space) 0 !important;
    padding-block: 0 !important;
}
.robin-site .robin-service-page .wp-block-columns:has(.modula) :is(.wp-block-column, .wp-block-group) {
    padding-block: 0 !important;
}
.robin-site .robin-back-link { margin-bottom: 4px; }
.robin-site.robin-page-portfolio .entry-content > .wp-block-group { padding-block: 0 !important; }
.robin-site.robin-page-temoignages .entry-content > .wp-block-group > .wp-block-columns { margin-block: 0 !important; }
/* Transparent client logos must not reveal Modula's black photo overlay. */
.robin-site.robin-page-temoignages .modula-item-overlay { background: transparent !important; }
.robin-site.robin-page-a-propos .entry-content p { margin-block: 20px 0 !important; }
/* About: compact portraits, readable chapters and a consistent mobile reading order. */
.robin-site.robin-page-a-propos .entry-content > .robin-about {
    width: 100%;
    max-width: var(--robin-content) !important;
    padding: 0 !important;
    margin-inline: auto !important;
}
.robin-site .robin-about > * { max-width: none !important; margin: 0 !important; }
.robin-site .robin-about .robin-about-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
    align-items: center;
    gap: clamp(32px, 6vw, 88px);
}
.robin-site.robin-page-a-propos .robin-about h1 { margin: 0 0 24px !important; text-align: left; font-size: clamp(36px, 4.5vw, 60px) !important; line-height: 1.08 !important; letter-spacing: -.025em; }
.robin-site.robin-page-a-propos .robin-about p { margin: 16px 0 0 !important; font-size: 18px; line-height: 1.75; }
.robin-site.robin-page-a-propos .robin-about .robin-eyebrow { margin: 0 0 16px !important; color: #666; font-size: 12px !important; }
.robin-site.robin-page-a-propos .robin-about .robin-about-lead { margin: 0 !important; font-size: clamp(20px, 2vw, 26px) !important; line-height: 1.6; max-width: 34ch; }
.robin-site .robin-about-intro > .robin-action { margin-top: 28px; }
.robin-site .robin-about-portrait { margin: 0; width: 100%; }
.robin-site .robin-about-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 10px; }
.robin-site .robin-about .robin-about-journey {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(28px, 5vw, 72px);
    padding-block: clamp(32px, 4vw, 56px);
}
.robin-site .robin-about h2 { margin: 0; font-size: clamp(25px, 2.6vw, 32px); line-height: 1.3; font-weight: 600; }
.robin-site .robin-about .robin-about-closing {
    display: grid;
    grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
    align-items: center;
    gap: clamp(28px, 5vw, 64px);
    padding: clamp(24px, 3vw, 40px);
    background: #f5f5f3;
    border-radius: 12px;
}
.robin-site .robin-about blockquote { margin: 24px 0 0; padding: 0 0 0 20px; border-left: 2px solid #b8b8b8; }
.robin-site.robin-page-a-propos .robin-about blockquote p { margin: 0 !important; font-size: clamp(19px, 2vw, 23px) !important; font-style: italic; line-height: 1.6; color: #242424; }
@media (max-width: 900px) {
    .robin-site .robin-about .robin-about-hero { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 28px; }
    .robin-site .robin-about .robin-about-closing { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 28px; }
    .robin-site .robin-about .robin-about-journey { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .robin-site .robin-about .robin-about-hero,
    .robin-site .robin-about .robin-about-closing { grid-template-columns: 1fr; gap: 24px; }
    .robin-site .robin-about-portrait { max-width: 320px; margin-inline: auto; }
    .robin-site .robin-about-closing .robin-about-portrait { max-width: 240px; }
    .robin-site .robin-about-intro > .robin-action { width: 100%; margin-top: 24px; }
    .robin-site.robin-page-a-propos .robin-about h1 { margin-bottom: 20px !important; }
}
.robin-site.robin-page-contact .entry-content > .wp-block-group:first-child {
    padding-block: 0 !important;
    gap: 16px;
}
.robin-site.robin-page-contact .entry-content > .wp-block-group + .wp-block-group { margin-top: 24px !important; }
.robin-site .robin-faq-item { margin-block: 8px !important; }

/* Keep footer links comfortable to tap; remove the surrounding empty space. */
.robin-site footer.wp-block-template-part { margin-top: 0; }
.robin-site footer.wp-block-template-part > .wp-block-group:has(> .wp-block-columns) {
    padding-block: 32px 24px !important;
    border-top: 1px solid #e4e4e1;
}
.robin-site footer .wp-block-columns { gap: 24px 40px; margin-block: 0; }
.robin-site footer .wp-block-column > .wp-block-list { margin-top: 12px !important; }
.robin-site footer .wp-block-column > :is(h2, h3) { margin-bottom: 0 !important; }
.robin-site footer .wp-block-social-links { margin-top: 12px !important; }
/* Contact details share one text style; only Robin's name remains a heading. */
.robin-site footer .wp-block-column:has(a[href^="tel:"]) { font-family: inherit; color: #474747; }
.robin-site footer .wp-block-column:has(a[href^="tel:"]) :is(h2, h3) {
    font-family: inherit;
    font-size: 24px !important;
    font-weight: 600;
    line-height: 1.4;
    margin: 0 !important;
}
.robin-site footer .wp-block-column:has(a[href^="tel:"]) .wp-block-list,
.robin-site footer .wp-block-column:has(a[href^="tel:"]) .wp-block-list :is(li, a) {
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    font-style: normal;
    line-height: 1.6 !important;
    letter-spacing: normal;
    color: inherit;
}
.robin-site footer .wp-block-column:has(a[href^="tel:"]) .wp-block-list { margin-block: 12px 0 !important; }
.robin-site footer .wp-block-column:has(a[href^="tel:"]) .wp-block-list + .wp-block-list { margin-top: 0 !important; }
.robin-site footer .wp-block-column:has(a[href^="tel:"]) .wp-block-list li { margin: 0; }
.robin-site footer.wp-block-template-part > .wp-block-group:last-child { padding-block: 12px 20px; }
.robin-site .robin-booking-slot { padding-block: 16px; }
@media (max-width: 781.98px) {
    .robin-site footer .wp-block-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
    .robin-site footer .wp-block-columns > .wp-block-column:first-child { grid-column: 1 / -1; }
    .robin-site footer .wp-block-column { min-width: 0; }
    .robin-site footer .wp-block-column > h3 { font-size: 22px !important; }
    .robin-site footer .wp-block-list li > a { font-size: 16px; }
}
