.mbp-photobooth-public {
    --mbp-accent: var(--wp--preset--color--primary, #b47700);
    --mbp-accent-dark: #765000;
    --mbp-text: #1f2933;
    --mbp-muted: #5f6b76;
    --mbp-border: #d9dee3;
    --mbp-surface: #fff;
    --mbp-soft: #f6f7f8;
    max-width: 920px;
    margin: var(--mbp-form-top-spacing, 6px) auto 32px;
    color: var(--mbp-text);
    width: 100%;
    min-width: 0;
    overflow: visible !important;
}

.mbp-photobooth-public * { box-sizing: border-box; }

/* Réduit l'espace créé par le bloc Shortcode de WordPress autour du formulaire. */
.mbp-photobooth-shortcode-host {
    margin-top: 0 !important;
    padding-top: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}
.mbp-public-heading { margin-bottom: 18px; }
.mbp-public-heading h2, .mbp-confirmation h2 { margin: 4px 0 10px; font-size: clamp(1.7rem, 4vw, 2.5rem); line-height: 1.15; }
.mbp-eyebrow { margin: 0; color: var(--mbp-accent-dark); font-size: .82rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }

.mbp-request-form {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    padding: clamp(16px, 2.5vw, 26px);
    border: 1px solid var(--mbp-border);
    border-radius: 18px;
    background: var(--mbp-surface);
    box-shadow: 0 14px 42px rgba(31, 41, 51, .08);
}
.mbp-request-form [hidden] { display: none !important; }

/* Neutralise les styles de thème qui rendent visibles les champs techniques cachés. */
.mbp-request-form > input[type="hidden"],
.mbp-request-form > input[hidden] {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    position: absolute !important;
}
.mbp-request-form > .mbp-form-message:empty { display: none !important; }
.mbp-request-form > .mbp-form-section:first-of-type {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.mbp-form-section {
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0 0 34px;
    border: 0;
    float: none !important;
}
.mbp-form-section + .mbp-form-section {
    padding-top: 34px;
    border-top: 1px solid var(--mbp-border);
}
.mbp-form-section:last-of-type { padding-bottom: 0; }

/* Parcours multiétape — amélioration progressive : sans JavaScript, le formulaire reste intégralement visible. */
.mbp-stepper { display: none; margin: 0 0 28px; }
.mbp-request-form.mbp-js-ready .mbp-stepper { display: block; }
.mbp-stepper ol {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.mbp-stepper li {
    display: grid;
    min-width: 0;
    justify-items: center;
    gap: 7px;
    color: var(--mbp-muted);
    text-align: center;
}
.mbp-stepper li > span {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 2px solid var(--mbp-border);
    border-radius: 50%;
    background: #fff;
    color: var(--mbp-muted);
    font-size: .92rem;
    font-weight: 800;
    line-height: 1;
    transition: border-color .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.mbp-stepper li small {
    display: block;
    overflow: hidden;
    max-width: 100%;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mbp-stepper li.is-active { color: var(--mbp-text); }
.mbp-stepper li.is-active > span {
    border-color: var(--mbp-accent);
    background: var(--mbp-accent);
    color: #fff;
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--mbp-accent) 16%, transparent);
}
.mbp-stepper li.is-complete > span {
    border-color: var(--mbp-accent);
    background: color-mix(in srgb, var(--mbp-accent) 14%, #fff);
    color: var(--mbp-accent-dark);
}
.mbp-step-progress {
    height: 4px;
    margin-top: 14px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--mbp-soft);
}
.mbp-step-progress > span {
    display: block;
    width: 25%;
    height: 100%;
    border-radius: inherit;
    background: var(--mbp-accent);
    transition: width .25s ease;
}
.mbp-request-form.mbp-js-ready .mbp-form-section[data-mbp-step] {
    display: none !important;
    padding: 0 !important;
    border: 0 !important;
}
.mbp-request-form.mbp-js-ready .mbp-form-section[data-mbp-step].is-active {
    display: block !important;
    animation: mbp-step-in .2s ease-out;
}
@keyframes mbp-step-in {
    from { opacity: .2; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}
.mbp-step-actions {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--mbp-border);
}
.mbp-step-actions-end { justify-content: flex-end; }
.mbp-step-actions .mbp-button {
    min-width: 190px;
    gap: 9px;
    white-space: nowrap;
}
.mbp-request-form:not(.mbp-js-ready) .mbp-step-actions-navigation { display: none; }
.mbp-request-form:not(.mbp-js-ready) .mbp-step-actions-final [data-mbp-prev] { display: none; }

.mbp-form-section legend {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 18px !important;
    padding: 0;
    color: var(--mbp-text);
    font-size: clamp(1.2rem, 2.5vw, 1.45rem);
    font-weight: 750;
    line-height: 1.25;
}

.mbp-field-grid { display: grid; gap: 22px 24px; align-items: start; }
.mbp-field-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mbp-field { min-width: 0; margin: 0; }
.mbp-field-grid-2 > .mbp-field { display: flex; min-height: 100%; flex-direction: column; }
.mbp-field-grid-2 > .mbp-field > label {
    display: flex;
    min-height: 2.75em;
    align-items: flex-end;
    margin: 0 0 8px;
    line-height: 1.35;
}
.mbp-field label, .mbp-time-fields label { display: block; margin: 0 0 8px; font-weight: 650; line-height: 1.35; }
.mbp-field input, .mbp-field select, .mbp-field textarea, .mbp-time-fields input {
    display: block; width: 100% !important; min-width: 0; min-height: 48px; margin: 0 !important; padding: 11px 13px; border: 1px solid var(--mbp-border); border-radius: 9px; background: #fff; color: var(--mbp-text); font: inherit; line-height: 1.35;
}
.mbp-field textarea { min-height: 120px; resize: vertical; }
.mbp-field input:focus, .mbp-field select:focus, .mbp-field textarea:focus, .mbp-time-fields input:focus { outline: 3px solid color-mix(in srgb, var(--mbp-accent) 25%, transparent); border-color: var(--mbp-accent); }
.mbp-time-fields { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px; align-content: start; }
.mbp-time-fields > div { display: flex; min-width: 0; flex-direction: column; }
.mbp-time-fields > div > label {
    display: flex;
    min-height: 2.75em;
    align-items: flex-end;
}
.mbp-time-fields .mbp-field-help { grid-column: 1 / -1; }
.mbp-field-help, .mbp-legal-note { margin: 7px 0 0; color: var(--mbp-muted); font-size: .9rem; line-height: 1.5; }

.mbp-availability { display: grid; gap: 5px; margin-top: 22px; padding: 15px 17px; border: 1px solid var(--mbp-border); border-radius: 10px; background: var(--mbp-soft); }
.mbp-availability.is-available { border-color: #78b991; background: #f0faf4; }
.mbp-availability.is-manual { border-color: #d8b46d; background: #fff9ec; }
.mbp-availability.is-checking { opacity: .75; }

.mbp-choice-grid {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 14px !important;
    margin: 20px 0 !important;
}
.mbp-choice-grid > .mbp-choice {
    grid-column: auto !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 100% !important;
}
.mbp-choice {
    display: grid !important;
    grid-template-columns: 20px minmax(0, 1fr) !important;
    min-height: 112px !important;
    align-items: start !important;
    align-content: start !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 16px !important;
    border: 1px solid var(--mbp-border) !important;
    border-radius: 10px !important;
    cursor: pointer;
    line-height: 1.45;
    text-align: left !important;
}
.mbp-choice input[type="checkbox"],
.mbp-consent input[type="checkbox"] {
    display: block !important;
    width: 20px !important;
    min-width: 20px !important;
    max-width: 20px !important;
    height: 20px !important;
    min-height: 20px !important;
    max-height: 20px !important;
    flex: 0 0 20px;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    border-radius: 2px;
    accent-color: var(--mbp-accent);
}
.mbp-choice span {
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    color: var(--mbp-muted);
    font-size: .9rem;
    line-height: 1.5;
}
.mbp-choice strong {
    display: block !important;
    margin: 0 0 4px !important;
    color: var(--mbp-text);
    font-size: 1rem;
    line-height: 1.3;
}

.mbp-summary { margin-bottom: 22px; padding: 18px; border-radius: 12px; background: var(--mbp-soft); }
.mbp-summary dl { display: grid; gap: 12px; margin: 0; }
.mbp-summary dl div { display: grid; grid-template-columns: minmax(130px, .35fr) 1fr; gap: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--mbp-border); }
.mbp-summary dl div:last-child { padding-bottom: 0; border-bottom: 0; }
.mbp-summary dt { font-weight: 700; }
.mbp-summary dd { margin: 0; }
.mbp-consent {
    display: flex;
    width: 100%;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    padding: 16px;
    border: 1px solid var(--mbp-border);
    border-radius: 10px;
    background: var(--mbp-soft);
    line-height: 1.5;
}
.mbp-consent span { min-width: 0; flex: 1 1 auto; }

.mbp-form-actions {
    display: flex;
    width: 100%;
    justify-content: center;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--mbp-border);
}
.mbp-button {
    display: inline-flex;
    width: auto;
    min-width: min(100%, 300px);
    min-height: 48px;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 11px 22px;
    border: 1px solid var(--mbp-accent);
    border-radius: 9px;
    background: var(--mbp-accent);
    color: #fff;
    font: inherit;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    cursor: pointer;
}
.mbp-button:hover { filter: brightness(.94); }
.mbp-button:disabled { opacity: .55; cursor: wait; }
.mbp-button-secondary { background: #fff; color: var(--mbp-text); border-color: var(--mbp-border); }

.mbp-message { margin: 0 0 18px; padding: 13px 15px; border-radius: 9px; }
.mbp-message-error { border: 1px solid #d88b8b; background: #fff2f2; color: #7a2424; }
.mbp-message-success { border: 1px solid #78b991; background: #f0faf4; color: #205f37; }
#mbp-photobooth-reservation .mbp-honeypot,
#mbp-photobooth-reservation .mbp-honeypot[hidden] {
    display: none !important;
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    min-width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.mbp-confirmation { padding: clamp(24px, 5vw, 48px); border: 1px solid var(--mbp-border); border-radius: 18px; background: #fff; text-align: center; box-shadow: 0 14px 42px rgba(31, 41, 51, .08); }
.mbp-confirmation-icon { display: grid; width: 64px; height: 64px; margin: 0 auto 18px; place-items: center; border-radius: 50%; background: #e7f7ed; color: #237340; font-size: 2rem; font-weight: 800; }

@media (max-width: 700px) {
    .mbp-field-grid-2 { grid-template-columns: 1fr; }
    .mbp-choice-grid { grid-template-columns: 1fr !important; }
    .mbp-choice { min-height: 0 !important; }
    .mbp-field-grid-2 > .mbp-field > label, .mbp-time-fields > div > label { min-height: 0; align-items: flex-start; }
    .mbp-summary dl div { grid-template-columns: 1fr; gap: 3px; }
    .mbp-form-actions { justify-content: stretch; }
    .mbp-form-actions .mbp-button { width: 100%; min-width: 0; }
    .mbp-stepper ol { gap: 4px; }
    .mbp-stepper li > span { width: 30px; height: 30px; }
    .mbp-stepper li small { font-size: .68rem; }
    .mbp-step-actions { display: grid; grid-template-columns: 1fr; }
    .mbp-step-actions .mbp-button { width: 100%; min-width: 0; }
    .mbp-step-actions [data-mbp-next], .mbp-step-actions [data-mbp-submit] { order: 1; }
    .mbp-step-actions [data-mbp-prev] { order: 2; }
}

/* Portail public du devis et acceptation. */
.mbp-quote-portal { max-width: 1180px; }
.mbp-quote-portal-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .85fr); gap: 24px; align-items: start; }
.mbp-public-card { padding: clamp(20px, 3vw, 30px); border: 1px solid var(--mbp-border); border-radius: 16px; background: #fff; box-shadow: 0 12px 34px rgba(31, 41, 51, .07); }
.mbp-quote-portal aside .mbp-public-card { position: sticky; top: 24px; }
.mbp-public-card h3 { margin-top: 0; font-size: 1.25rem; }
.mbp-public-card-alert { border-color: #d8b46d; background: #fff9ec; }
.mbp-quote-public-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 24px; }
.mbp-quote-public-meta > div { display: grid; gap: 4px; padding: 13px 15px; border-radius: 10px; background: var(--mbp-soft); }
.mbp-quote-public-meta span { color: var(--mbp-muted); font-size: .84rem; }
.mbp-public-table-wrap { overflow-x: auto; }
.mbp-public-quote-table { width: 100%; min-width: 620px; border-collapse: collapse; }
.mbp-public-quote-table th, .mbp-public-quote-table td { padding: 13px 10px; border-bottom: 1px solid var(--mbp-border); text-align: right; vertical-align: top; }
.mbp-public-quote-table th:first-child, .mbp-public-quote-table td:first-child { text-align: left; }
.mbp-public-quote-table th { color: var(--mbp-muted); font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }
.mbp-public-quote-table td small { display: block; margin-top: 4px; color: var(--mbp-muted); line-height: 1.45; }
.mbp-public-totals { width: min(100%, 390px); margin: 22px 0 22px auto; }
.mbp-public-totals > div { display: flex; justify-content: space-between; gap: 18px; padding: 8px 0; border-bottom: 1px solid var(--mbp-border); }
.mbp-public-total-main { font-size: 1.15rem; }
.mbp-public-note, .mbp-bank-instructions { margin-top: 20px; padding: 15px; border-radius: 10px; background: var(--mbp-soft); line-height: 1.6; }
.mbp-public-note p { margin-bottom: 0; }
.mbp-primary-button, .mbp-secondary-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: 10px 18px; border: 1px solid var(--mbp-accent); border-radius: 9px; background: var(--mbp-accent); color: #fff !important; font-weight: 700; text-decoration: none !important; cursor: pointer; }
.mbp-secondary-button { background: #fff; color: var(--mbp-text) !important; border-color: var(--mbp-border); }
.mbp-acceptance-form { display: grid; gap: 17px; }
.mbp-acceptance-form .mbp-field { margin: 0; }
.mbp-payment-choice { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; }
.mbp-payment-choice legend { margin-bottom: 8px; font-weight: 700; }
.mbp-payment-choice label { display: flex; gap: 10px; padding: 13px; border: 1px solid var(--mbp-border); border-radius: 10px; cursor: pointer; }
.mbp-payment-choice input, .mbp-legal-check input { margin-top: 4px; flex: 0 0 auto; }
.mbp-payment-choice span { display: grid; gap: 3px; }
.mbp-payment-choice small { color: var(--mbp-muted); line-height: 1.45; }
.mbp-legal-check { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; line-height: 1.5; }
.mbp-accepted-card { text-align: center; }
.mbp-payment-state { display: grid; gap: 5px; margin: 20px 0; padding: 15px; border: 1px solid #d8b46d; border-radius: 10px; background: #fff9ec; text-align: left; }
.mbp-payment-state.is-paid { border-color: #78b991; background: #f0faf4; }
.mbp-payment-state span { color: var(--mbp-muted); }

@media (max-width: 900px) {
    .mbp-quote-portal-grid { grid-template-columns: 1fr; }
    .mbp-quote-portal aside .mbp-public-card { position: static; }
}
@media (max-width: 600px) {
    .mbp-quote-public-meta { grid-template-columns: 1fr; }
    .mbp-public-card { padding: 18px; }
}
.mbp-public-terms { margin-top: 18px; padding: 14px 15px; border: 1px solid var(--mbp-border); border-radius: 10px; }
.mbp-public-terms summary { cursor: pointer; font-weight: 700; }
.mbp-public-terms div { margin-top: 12px; color: var(--mbp-muted); line-height: 1.6; }


.mbp-photobooth-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 11px 20px;
    border-radius: 8px;
    font-weight: 700;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease;
}
.mbp-photobooth-cta:hover { transform: translateY(-1px); }
.mbp-photobooth-cta-primary { background: #111827; color: #fff; box-shadow: 0 5px 14px rgba(17,24,39,.18); }
.mbp-photobooth-cta-primary:hover { color: #fff; }
.mbp-photobooth-cta-secondary { background: #fff; color: #111827; border: 1px solid #d1d5db; }
.mbp-photobooth-entry-missing { display: inline-block; padding: 10px 12px; border: 1px solid #dc2626; border-radius: 6px; color: #991b1b; }

.mbp-contract-portal .mbp-account-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.mbp-contract-portal .mbp-public-terms[open] summary{margin-bottom:12px}

.mbp-provider-identity{display:grid;gap:1px;margin-bottom:14px}.mbp-provider-identity strong{font-size:1.05rem;line-height:1.2}.mbp-provider-identity span{color:var(--mbp-muted);font-size:.86rem;line-height:1.3}

/* Portail états de matériel */
.mbp-condition-public .mbp-account-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.mbp-condition-public .mbp-account-summary div{padding:12px;border:1px solid #e3e7eb;border-radius:8px}.mbp-condition-public .mbp-account-summary dt{font-size:.8rem;color:#66717c}.mbp-condition-public .mbp-account-summary dd{margin:5px 0 0;font-weight:700}.mbp-condition-public-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.mbp-condition-public-photos img{display:block;width:100%;height:210px;object-fit:cover;border-radius:8px}.mbp-condition-public input[type=text]{width:100%;max-width:520px;padding:10px;border:1px solid #c8d0d7;border-radius:6px}@media(max-width:760px){.mbp-condition-public .mbp-account-summary,.mbp-condition-public-photos{grid-template-columns:1fr 1fr}}@media(max-width:520px){.mbp-condition-public .mbp-account-summary,.mbp-condition-public-photos{grid-template-columns:1fr}}

/* Portail de personnalisation et BAT */
.mbp-artwork-public{max-width:980px;margin:0 auto}.mbp-artwork-public .mbp-artwork-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:18px 0}
.mbp-artwork-public .mbp-artwork-summary>div{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid #dfe5e8;border-radius:10px;background:#f8fafb}
.mbp-artwork-proof{margin:20px 0}.mbp-artwork-proof-file{padding:14px;border:1px solid #dfe5e8;border-radius:12px;background:#fff}.mbp-artwork-proof-file img{display:block;max-width:100%;height:auto;margin:auto}
.mbp-artwork-pdf-link{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px;text-decoration:none;font-weight:700}
.mbp-artwork-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:12px 0 20px}.mbp-artwork-file{display:flex;flex-direction:column;gap:7px;padding:10px;border:1px solid #dfe5e8;border-radius:9px;background:#fff;min-width:0}.mbp-artwork-file img{width:100%;height:100px;object-fit:contain;background:#f5f7f8}.mbp-artwork-file a{word-break:break-word}
.mbp-artwork-assets-form,.mbp-artwork-response-form{margin-top:22px;padding:20px;border:1px solid #dfe5e8;border-radius:12px;background:#fff}.mbp-artwork-response-form hr{margin:24px 0;border:0;border-top:1px solid #dfe5e8}
.mbp-artwork-feedback{margin-top:18px;padding:14px;border-left:4px solid #dba617;background:#fff8e5}

@media (max-width: 480px) {
    .mbp-time-fields { grid-template-columns: 1fr; }
    .mbp-time-fields .mbp-field-help { grid-column: auto; }
}


/* Compatibilité stricte avec les conteneurs Shortcode Elementor/OceanWP. */
.mbp-photobooth-elementor-host,
.elementor-widget-shortcode.mbp-photobooth-elementor-host,
.elementor-widget-container.mbp-photobooth-elementor-host,
.elementor-shortcode.mbp-photobooth-elementor-host {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}
