/* UP-001: compact contact controls inherit the existing site section. */
body .opsst-contact { --contact-ink:#fff; --contact-rule:rgba(255,255,255,.4); color:var(--contact-ink); background:transparent; padding:0; border:0; border-radius:0; width:100%; max-width:620px; box-sizing:border-box; text-align:left; font-family:var(--font); }
body .opsst-contact *, body .opsst-contact *::before, body .opsst-contact *::after { box-sizing:border-box; }
body .opsst-contact [hidden] { display:none !important; }
body main .opsst-contact form.opsst-contact__form { display:grid; gap:10px; padding:0; margin:0; width:100%; max-width:none; background:transparent; border:0; box-shadow:none; }
body .opsst-contact .opsst-contact__names { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
body main .opsst-contact label { display:grid; gap:4px; margin:0; color:var(--contact-ink); font:600 13px/1.4 var(--font); min-width:0; }
body main .opsst-contact.opsst-contact input:not([type="hidden"]), body main .opsst-contact.opsst-contact form.opsst-contact__form textarea { display:block; width:100%; min-width:0; min-height:38px; margin:0; padding:7px 10px; border:1px solid #858585; border-radius:2px; background:var(--gris,#f0f0f0); color:var(--noir,#282828); font:400 16px/1.4 var(--font); box-shadow:none; }
body main .opsst-contact.opsst-contact form.opsst-contact__form textarea { min-height:88px; resize:vertical; }
body .opsst-contact button { appearance:none; width:auto; min-width:0; min-height:32px; padding:5px 10px; margin:0; border:1px solid var(--contact-rule); border-radius:2px; font:600 13px/1.4 var(--font); background:transparent; color:var(--contact-ink); cursor:pointer; box-shadow:none; transform:none; }
body .opsst-contact button.opsst-contact__primary { color:#fff; background:var(--gris-fonce,#4a4a4a); border-color:var(--gris-fonce,#4a4a4a); }
body .opsst-contact button:hover { background:rgba(128,128,128,.18); transform:none; box-shadow:none; }
body .opsst-contact button.opsst-contact__primary:hover { background:var(--noir,#282828); border-color:var(--noir,#282828); }
body .opsst-contact :is(button,input,textarea):focus-visible { outline:2px solid var(--contact-ink); outline-offset:3px; box-shadow:none; }
body .opsst-contact button:disabled { opacity:.55; cursor:wait; }
body .opsst-contact .opsst-contact__actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin-top:2px; }
body .opsst-contact .opsst-contact__modes { display:flex; gap:24px; border-bottom:1px solid var(--contact-rule); padding:0; margin:0 0 16px; }
body .opsst-contact .opsst-contact__modes [role="tab"] { flex:none; min-height:36px; padding:6px 0 8px; border:0; border-bottom:3px solid transparent; border-radius:0; margin-bottom:-1px; background:transparent; color:var(--contact-ink); }
body .opsst-contact .opsst-contact__modes [role="tab"][aria-selected="true"] { border-bottom-color:currentColor; }
body .opsst-contact .opsst-contact__modes [role="tab"]:hover { border-bottom-color:currentColor; }
body .opsst-contact .opsst-contact__slots [aria-pressed="true"] { background:var(--gris,#f0f0f0); color:var(--noir,#282828); border-color:var(--gris,#f0f0f0); }
body .opsst-contact p { color:var(--contact-ink); font:400 14px/1.5 var(--font); margin:0 0 12px; opacity:1; }
body .opsst-contact .opsst-contact__status { margin:12px 0 0; padding:8px 0 0; border-top:1px solid var(--contact-rule); }
body .opsst-contact .opsst-contact__booking { display:grid; gap:10px; }
body .opsst-contact .opsst-contact__slots { display:flex; flex-wrap:wrap; gap:6px; }
body .opsst-contact [data-booking-review] { border-left:2px solid currentColor; padding-left:10px; }
body main .mail-form-section:has(.opsst-contact) { padding-top:36px; padding-bottom:36px; }
body main .mail-form-section__inner:has(.opsst-contact) { gap:24px; }
body main .nj-split:has(.opsst-contact) > div { padding-top:36px; padding-bottom:36px; }
body main .pub-contact-wrapper > .contact-section:has(.opsst-contact) { padding-top:36px; padding-bottom:36px; }
body main .pub-contact-wrapper:has(.opsst-contact) > .pub-section { padding-top:36px; padding-bottom:36px; }
body main .contact-section:has(.opsst-contact) > h2 { margin-bottom:16px; }
/* The floating widget must not cover fields or appointment controls. */
body:has(.opsst-contact[data-contact-visible]) #socialCapsule { visibility:hidden !important; }
@media (max-width:540px) {
 body .opsst-contact .opsst-contact__names { grid-template-columns:1fr; gap:10px; }
 body .opsst-contact .opsst-contact__modes { gap:20px; }
}

/* Approved UP-001 interaction baseline. */
body .opsst-contact{--contact-surface:#bb420f;--contact-accent:#1e3a5f;--contact-accent-hover:#294e78;--contact-accent-edge:#112842}
body .opsst-contact[data-contact-theme=blue]{--contact-surface:#152e4d;--contact-accent:#bf410e;--contact-accent-hover:#ce4b15;--contact-accent-edge:#8a2b06}

body main .opsst-contact .opsst-contact__modes{gap:5px;margin:0;padding:0;border:0;align-items:stretch}
body main .opsst-contact .opsst-contact__modes [role=tab]{padding:11px 16px;min-height:42px;position:relative;border:1px solid rgba(255,255,255,.27);border-radius:5px 5px 0 0;background:rgba(255,255,255,.06);margin:0 0 -1px;transition:background .14s,border-color .14s}
body main .opsst-contact .opsst-contact__modes [role=tab]:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.6)}
body main .opsst-contact .opsst-contact__modes [role=tab][aria-selected=true]{background:var(--contact-surface);border-bottom-color:var(--contact-surface);z-index:1;box-shadow:inset 0 2px 0 rgba(255,255,255,.88)}
body main .opsst-contact [role=tabpanel]{background:var(--contact-surface);border:1px solid rgba(255,255,255,.27);padding:22px;border-radius:0 5px 5px 5px;box-shadow:0 3px 0 rgba(0,0,0,.09)}
body main .opsst-contact form.opsst-contact__form{gap:13px}
body main .opsst-contact.opsst-contact input:not([type=hidden]),body main .opsst-contact.opsst-contact form.opsst-contact__form textarea{background:#f0f1f1;border:1px solid #9da8b0;border-top-color:#82919d;box-shadow:inset 0 2px 3px rgba(10,25,40,.12),0 1px 0 rgba(255,255,255,.1);border-radius:3px;transition:background .14s,box-shadow .14s,border-color .14s}
body main .opsst-contact.opsst-contact input:not([type=hidden]):hover,body main .opsst-contact.opsst-contact form.opsst-contact__form textarea:hover{background:#fff;border-color:#c6d0d8}
body main .opsst-contact.opsst-contact input:not([type=hidden]):focus,body main .opsst-contact.opsst-contact form.opsst-contact__form textarea:focus{background:#fff;border-color:#fff;outline:2px solid #fff;outline-offset:2px;box-shadow:inset 0 1px 2px rgba(10,25,40,.08),0 0 0 5px rgba(255,255,255,.12)}
body main .opsst-contact button.opsst-contact__primary{min-height:36px;padding:7px 14px;background:var(--contact-accent);border:1px solid rgba(255,255,255,.3);border-bottom-color:var(--contact-accent-edge);border-radius:3px;box-shadow:0 2px 0 var(--contact-accent-edge);transition:background .14s,transform .08s,box-shadow .08s}
body main .opsst-contact button.opsst-contact__primary:hover:not(:disabled){background:var(--contact-accent-hover);border-color:rgba(255,255,255,.3);border-bottom-color:var(--contact-accent-edge);transform:translateY(-1px);box-shadow:0 3px 0 var(--contact-accent-edge)}
body main .opsst-contact button.opsst-contact__primary:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px 0 var(--contact-accent-edge)}
body main .opsst-contact .opsst-contact__actions{margin-top:4px}
body main .opsst-contact form .opsst-contact__actions{justify-content:flex-end}
body main .opsst-contact .opsst-contact__slots{gap:8px}
body main .opsst-contact .opsst-contact__slots button{min-width:78px;min-height:36px;border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.06);border-radius:3px}
body main .opsst-contact .opsst-contact__slots button:hover{background:rgba(255,255,255,.16)}
body main .opsst-contact .opsst-contact__slots button[aria-pressed=true]{background:white;color:#1e3a5f;border-color:white;box-shadow:0 2px 0 rgba(0,0,0,.18)}
body main .opsst-contact .opsst-contact__slots button[aria-pressed=true]::after{content:' ✓';font-weight:700}
body main .opsst-contact [data-booking-review]{padding:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.35);border-left:3px solid white;border-radius:3px;margin:3px 0}
body main .opsst-contact .opsst-contact__booking{gap:14px}
body main .opsst-contact button:disabled{cursor:not-allowed;box-shadow:none;opacity:.48}
@media(max-width:420px){body main .opsst-contact [role=tabpanel]{padding:18px 16px}body main .opsst-contact .opsst-contact__modes [role=tab]{padding-inline:12px}}
@media(prefers-reduced-motion:reduce){body main .opsst-contact *{transition:none!important}}


/* Owner revision: quiet booking introduction; original theme colors restored. */
body main .opsst-contact [data-booking-intro],
body main .opsst-contact [data-booking-service]{display:none}


body main .opsst-contact [data-booking-review] ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
body main .opsst-contact [data-booking-review] li{margin:0;line-height:1.5;overflow-wrap:anywhere}
body main .opsst-contact [data-booking-review] strong{font-weight:700}


body main .opsst-contact [data-booking-panel] .opsst-contact__actions{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
body main .opsst-contact button[data-booking-back]{min-height:36px;padding:7px 14px;border:1px solid rgba(255,255,255,.6);border-radius:3px;background:transparent;color:#fff;text-decoration:none;line-height:1.4}
body main .opsst-contact button[data-booking-back]:hover:not(:disabled){background:rgba(10,25,40,.35);color:#fff;transform:translateY(-1px);box-shadow:0 2px 0 rgba(10,25,40,.4)}
body main .opsst-contact button[data-booking-back]:active:not(:disabled){transform:translateY(1px);box-shadow:none}
@media(max-width:420px){body main .opsst-contact [data-booking-panel] .opsst-contact__actions{display:grid;grid-template-columns:1fr}body main .opsst-contact [data-booking-panel] .opsst-contact__actions button{width:100%}}

body main :is(#formulaire,#formulaire-contact){scroll-margin-top:calc(var(--header-height,72px) + 16px)}
