  /* ================= QUOTE MODAL (product-details.html) ================= */

  .qm-backdrop {
    position:fixed; inset:0; background:rgba(15,10,6,.6); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
    z-index:1200; opacity:0; pointer-events:none; transition:opacity .45s cubic-bezier(.4,0,.2,1);
  }
  .qm-backdrop.is-open { opacity:1; pointer-events:auto; }

  .qm-modal {
    position:fixed; inset:0; z-index:1201; display:flex; align-items:center; justify-content:center;
    padding:32px; box-sizing:border-box; pointer-events:none; cursor:pointer;
  }
  .qm-modal.is-open { pointer-events:auto; }

  .qm-panel {
    position:relative; background:#F9F7F1; width:min(720px, 100%); height:min(86vh, 800px);
    box-shadow:0 40px 90px rgba(28,19,12,.45), 0 4px 18px rgba(28,19,12,.18);
    opacity:0; transform:translateY(28px) scale(.96); cursor:default;
    transition:opacity .4s cubic-bezier(.4,0,.2,1), transform .5s cubic-bezier(.22,1,.36,1);
  }
  .qm-modal.is-open .qm-panel { opacity:1; transform:translateY(0) scale(1); }

  .qm-close {
    position:absolute; top:14px; right:14px; z-index:2; width:38px; height:38px;
    border:1px solid #D8CBA0; background:#FBFAF6; color:#1C130C; font-size:21px; line-height:1;
    cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:background .3s cubic-bezier(.4,0,.2,1), color .3s ease, border-color .3s ease, transform .35s cubic-bezier(.34,1.56,.64,1);
  }
  .qm-close:hover { background:#1C130C; color:#F8F2E4; border-color:#1C130C; transform:rotate(90deg); }
  .qm-close:active { transform:rotate(90deg) scale(.9); }

  .qm-iframe { width:100%; height:100%; border:none; display:block; background:#F9F7F1; }

  .qm-loading {
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:16px; background:#F9F7F1; transition:opacity .3s ease; z-index:1;
  }
  .qm-loading.is-hidden { opacity:0; pointer-events:none; }
  .qm-spinner {
    width:28px; height:28px; border:2px solid #E0D3AE; border-top-color:#A6821D; border-radius:50%;
    animation:qmSpin .8s linear infinite;
  }
  .qm-loading span.qm-label { font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:#9A8B6C; }
  @keyframes qmSpin { to { transform:rotate(360deg); } }

  body.qm-lock { overflow:hidden; }

  @media (max-width: 640px) {
    .qm-modal { padding:0; }
    .qm-panel { width:100%; height:100%; max-height:none; }
    .qm-close { top:12px; right:12px; }
  }
