/* Phénix Recyclage — formulaire isolé v23. Aucun style global modifié. */
dialog.pr-contact-dialog, dialog.pr-contact-dialog * , .pr-contact-standalone, .pr-contact-standalone * { box-sizing: border-box; }
dialog.pr-contact-dialog { position:fixed; inset:0; border:0; padding:0; margin:auto; width:min(660px,calc(100vw - 30px)); max-width:660px; max-height:calc(100vh - 30px); max-height:calc(100dvh - 30px); overflow:hidden; border-radius:18px; box-shadow:0 24px 78px rgba(10,24,42,.35); background:#fff; color:#18324b; font:normal 15px/1.5 Arial,Helvetica,sans-serif; text-align:left; }
dialog.pr-contact-dialog::backdrop { background:rgba(4,21,37,.64); }
.pr-contact-panel { width:100%; max-height:calc(100vh - 30px); max-height:calc(100dvh - 30px); overflow-y:auto; overscroll-behavior:contain; background:#fff; }
.pr-contact-header { background:linear-gradient(110deg,#f7d62a,#ffe56a); padding:25px 30px 22px; position:relative; }
.pr-contact-title { color:#083f65 !important; font:700 27px/1.2 Arial,Helvetica,sans-serif !important; margin:0 55px 6px 0 !important; padding:0 !important; text-align:left !important; border:0 !important; text-transform:none !important; }
.pr-contact-subtitle { color:#28445b !important; font:normal 14px/1.5 Arial,Helvetica,sans-serif !important; padding:0 !important; margin:0 !important; }
.pr-contact-close { position:absolute; top:17px; right:18px; display:grid; place-items:center; border:0 !important; background:rgba(255,255,255,.84) !important; color:#073b62 !important; width:38px; height:38px; border-radius:50% !important; font:26px/1 Arial,sans-serif !important; cursor:pointer; transform:none !important; box-shadow:none !important; padding:0 !important; }
.pr-contact-close:hover,.pr-contact-close:focus-visible { background:#fff !important; outline:2px solid #0a4b75; outline-offset:2px; transform:none !important; }
.pr-contact-form { background:#fff !important; margin:0 !important; padding:26px 30px 30px !important; width:100%; border:0 !important; box-shadow:none !important; font-family:Arial,Helvetica,sans-serif !important; }
.pr-contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 19px; }
.pr-contact-field { display:flex; flex-direction:column; min-width:0; gap:6px; margin:0 !important; text-align:left; }
.pr-contact-full { grid-column:1/-1; }
.pr-contact-label { color:#1e4261 !important; display:block; margin:0 !important; padding:0 !important; font:700 13px/1.4 Arial,Helvetica,sans-serif !important; }
.pr-contact-optional { color:#718196; font-size:12px; font-weight:400; }
.pr-contact-field input,.pr-contact-field textarea { box-sizing:border-box; width:100% !important; max-width:100%; min-width:0; margin:0 !important; border:1px solid #bfcfdd !important; border-radius:9px !important; background:#fff !important; box-shadow:none !important; color:#1d3448 !important; padding:11px 12px !important; font:normal 15px/1.45 Arial,Helvetica,sans-serif !important; height:auto !important; min-height:44px; outline:none; transform:none !important; }
.pr-contact-field textarea { min-height:126px; resize:vertical; }
.pr-contact-field input:focus,.pr-contact-field textarea:focus { border-color:#0b527a !important; outline:3px solid rgba(9,103,152,.13); outline-offset:0; }
.pr-contact-trap { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.pr-contact-consent { display:flex; gap:10px; align-items:flex-start; margin-top:20px; color:#526577; font:normal 12px/1.5 Arial,Helvetica,sans-serif; }
.pr-contact-consent input { margin:2px 0 0 !important; width:17px; height:17px; flex:none; accent-color:#0a476d; }
.pr-contact-actions { margin-top:22px; display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; }
.pr-contact-required { font:normal 12px Arial,sans-serif; color:#64788a; }
.pr-contact-send { background:#073f67 !important; border:0 !important; color:#fff !important; border-radius:9px !important; padding:13px 24px !important; font:700 15px Arial,sans-serif !important; min-height:45px; min-width:170px; cursor:pointer; box-shadow:none !important; transform:none !important; }
.pr-contact-send:hover,.pr-contact-send:focus-visible { background:#075986 !important; box-shadow:none !important; transform:none !important; }
.pr-contact-send:disabled { opacity:.7; cursor:wait; }
.pr-contact-error { color:#822b26; background:#fff1f0; border:1px solid #efb8b5; border-radius:9px; padding:12px; margin-top:16px; font:normal 13px/1.5 Arial,sans-serif; }
.pr-contact-error[hidden],.pr-contact-success[hidden] { display:none !important; }
.pr-contact-success { position:relative; margin:18px 30px 0; background:#e8f6eb; border:1px solid #77b58b; color:#216136; border-radius:9px; font:700 15px/1.4 Arial,sans-serif; padding:13px 17px; text-align:center; }
.pr-contact-standalone { margin:0; min-height:100vh; padding:20px 12px; background:linear-gradient(125deg,#f6d52a,#fff5b5); font-family:Arial,Helvetica,sans-serif; }
.pr-contact-standalone .pr-contact-panel { max-height:none; max-width:660px; border-radius:16px; overflow:hidden; box-shadow:0 12px 35px #122b4330; margin:0 auto; }
.pr-contact-standalone .pr-contact-header { max-width:none; }
@media(max-width:600px) {
 dialog.pr-contact-dialog { width:100vw !important; max-width:none !important; height:100vh !important; height:100dvh !important; max-height:none !important; margin:0 !important; border-radius:0 !important; }
 dialog.pr-contact-dialog .pr-contact-panel { height:100vh; height:100dvh; max-height:none; border-radius:0; }
 .pr-contact-header { padding:25px 18px 20px; }
 .pr-contact-form { padding:21px 18px 26px !important; }
 .pr-contact-fields { grid-template-columns:minmax(0,1fr); gap:14px; }
 .pr-contact-full { grid-column:auto; }
 .pr-contact-actions { display:block; }
 .pr-contact-send { width:100%; margin-top:14px; }
 .pr-contact-success { margin:14px 18px 0; }
 .pr-contact-standalone { padding:0; }
 .pr-contact-standalone .pr-contact-panel { border-radius:0; }
}


/* V24 : defilement mobile fiable, sans affecter les CSS du site historique.
   Une seule surface de defilement dans le dialogue; la page directe reste scrollable. */
@media (max-width: 600px) {
  dialog.pr-contact-dialog {
    /* La fenetre, pas son contenu interne, prend en charge le geste vertical. */
    display: none;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    inset: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100vh !important;
    max-height: 100vh !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }
  dialog.pr-contact-dialog[open] { display: block !important; }
  dialog.pr-contact-dialog > .pr-contact-panel {
    height: auto !important;
    min-height: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior: auto;
    touch-action: pan-y;
  }
  /* Si le formulaire s'ouvre comme une page autonome, le document doit
     pouvoir defiler meme si un navigateur reutilise des styles anterieurs. */
  html:has(body.pr-contact-standalone),
  body.pr-contact-standalone {
    height: auto !important;
    min-height: 100% !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    touch-action: pan-y !important;
    -webkit-overflow-scrolling: touch;
  }
  body.pr-contact-standalone .pr-contact-panel {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}
