.pc-quote-add,
.pc-quote-fab,
.pc-quote-submit {
  align-items: center;
  background: oklch(0.55 0.19 340);
  border: 0;
  border-radius: 8px;
  color: oklch(1 0 0);
  cursor: pointer;
  display: inline-flex;
  font: 650 14px/1.2 system-ui, sans-serif;
  justify-content: center;
  min-height: 44px;
  padding: 10px 16px;
}

.pc-quote-add:hover,
.pc-quote-fab:hover,
.pc-quote-submit:hover { background: oklch(0.49 0.19 340); }
.pc-quote-add:focus-visible,
.pc-quote-fab:focus-visible,
.pc-quote-submit:focus-visible,
.pc-quote-dialog button:focus-visible,
.pc-quote-dialog input:focus-visible,
.pc-quote-dialog textarea:focus-visible { outline: 3px solid oklch(0.8 0.11 225); outline-offset: 2px; }
.eca-product-card .pc-quote-add { margin: 12px 0 0; width: 100%; }

.pc-quote-fab {
  bottom: 20px;
  box-shadow: 0 4px 8px oklch(0.19 0.018 340 / 0.18);
  gap: 10px;
  position: fixed;
  right: 20px;
  z-index: 40;
}

.pc-quote-count {
  align-items: center;
  background: oklch(1 0 0);
  border-radius: 999px;
  color: oklch(0.35 0.15 340);
  display: inline-flex;
  font-size: 12px;
  height: 22px;
  justify-content: center;
  min-width: 22px;
}

.pc-quote-dialog {
  background: oklch(1 0 0);
  border: 0;
  border-radius: 12px;
  color: oklch(0.19 0.018 340);
  margin: auto 0 0 auto;
  max-height: min(760px, calc(100vh - 24px));
  max-width: 520px;
  padding: 0;
  width: min(100%, 520px);
}

.pc-quote-dialog::backdrop { background: oklch(0.1 0 0 / 0.55); }
.pc-quote-head { align-items: flex-start; border-bottom: 1px solid oklch(0.88 0.008 340); display: flex; justify-content: space-between; padding: 20px; }
.pc-quote-head strong { display: block; font: 700 20px/1.2 system-ui, sans-serif; }
.pc-quote-head span { color: oklch(0.47 0.018 340); display: block; font: 400 14px/1.4 system-ui, sans-serif; margin-top: 4px; }
.pc-quote-close { background: transparent; border: 0; border-radius: 6px; color: inherit; cursor: pointer; font-size: 28px; height: 40px; width: 40px; }
.pc-quote-body { max-height: calc(100vh - 120px); overflow: auto; padding: 20px; }
.pc-quote-items { border-bottom: 1px solid oklch(0.88 0.008 340); margin-bottom: 20px; padding-bottom: 20px; }
.pc-quote-item { align-items: center; display: grid; gap: 10px; grid-template-columns: 48px 1fr 36px; margin-top: 10px; }
.pc-quote-item:first-child { margin-top: 0; }
.pc-quote-item img,
.pc-quote-placeholder { background: oklch(0.94 0.008 340); border-radius: 8px; height: 48px; object-fit: cover; width: 48px; }
.pc-quote-item a { color: inherit; font: 600 14px/1.35 system-ui, sans-serif; text-decoration: none; }
.pc-quote-item button { background: transparent; border: 0; border-radius: 6px; color: oklch(0.47 0.018 340); cursor: pointer; font-size: 22px; height: 36px; }
.pc-quote-empty { color: oklch(0.47 0.018 340); display: flex; flex-direction: column; font: 400 14px/1.5 system-ui, sans-serif; padding: 14px 0; }
.pc-quote-empty strong { color: oklch(0.19 0.018 340); }
.pc-quote-form { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.pc-quote-form label { color: oklch(0.31 0.018 340); display: grid; font: 600 13px/1.4 system-ui, sans-serif; gap: 6px; }
.pc-quote-form input,
.pc-quote-form textarea { background: oklch(1 0 0); border: 1px solid oklch(0.77 0.01 340); border-radius: 8px; color: oklch(0.19 0.018 340); font: 400 16px/1.4 system-ui, sans-serif; min-height: 44px; padding: 9px 11px; }
.pc-quote-message,
.pc-consent,
.pc-quote-feedback,
.pc-quote-submit { grid-column: 1 / -1; }
.pc-consent { align-items: start; display: grid !important; font-weight: 400 !important; grid-template-columns: 20px 1fr; }
.pc-consent input { min-height: 18px; width: 18px; }
.pc-consent a { color: oklch(0.42 0.12 225); }
.pc-honeypot { left: -10000px; position: absolute; }
.pc-quote-feedback { color: oklch(0.4 0.12 150); font: 600 13px/1.4 system-ui, sans-serif; min-height: 18px; }
.pc-quote-feedback.is-error { color: oklch(0.46 0.18 25); }
.pc-quote-submit:disabled { cursor: not-allowed; opacity: 0.55; }
.pc-product-specs { display: grid; margin: 0; }
.pc-product-specs div { border-bottom: 1px solid oklch(0.88 0.008 340); display: grid; gap: 16px; grid-template-columns: minmax(120px, .7fr) 1fr; padding: 12px 0; }
.pc-product-specs dt { font-weight: 650; }
.pc-product-specs dd { margin: 0; }
.pc-product-gallery { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.pc-product-gallery img { aspect-ratio: 1; border-radius: 10px; height: 100%; object-fit: cover; width: 100%; }

@media (min-width: 700px) {
  .pc-quote-dialog { border-radius: 12px 0 0 12px; height: 100vh; margin: 0 0 0 auto; max-height: none; }
  .pc-quote-body { max-height: calc(100vh - 86px); }
}

@media (max-width: 520px) {
  .pc-quote-fab { bottom: 12px; right: 12px; }
  .pc-quote-form { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .pc-quote-add,
  .pc-quote-fab,
  .pc-quote-submit { transition: none; }
}
