:root{
  --pm-brand:#1F7A8C;
  --pm-dark:#012B39;
  --pm-bg:#F7F9FE;
  --pm-line:#DBDFEA;
  --pm-text:#012B39;
  --pm-muted:#5a6a74;
  --pm-danger:#b00020;
}

.pm940-review-card{
  max-width: 760px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--pm-line);
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(2,43,58,.06);
  padding: 18px 18px 16px;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--pm-text);
}

.pm940-row{ margin: 12px 0; }

.pm940-label{
  display:block;
  font-size:.95rem;
  margin-bottom:8px;
  color: var(--pm-muted);
  font-weight: 700;
}

.pm940-input, .pm940-textarea{
  width:100%;
  border:2px solid var(--pm-line);
  border-radius: 12px;
  padding: 14px 12px;
  outline: none;
  box-sizing: border-box;
  background: #fff;
  color: var(--pm-text);
  transition: border-color .15s ease, box-shadow .15s ease;
  caret-color: var(--pm-brand);
}

.pm940-input:hover, .pm940-textarea:hover{ border-color: #c9d9e4; }
.pm940-input:focus, .pm940-textarea:focus{
  border-color: var(--pm-brand);
  box-shadow: 0 0 0 3px rgba(31,122,140,.10);
}

.pm940-input[readonly]{
  background: var(--pm-bg);
  color:#44525a;
}

.pm940-textarea{
  min-height: 190px;
  resize: vertical;
  line-height: 1.35;
  white-space: pre-wrap;
}

/* Stars */
.pm940-stars-row{
  margin-bottom: 34px;
  margin-top: 18px;
}

.pm940-stars{
  display:flex;
  gap: 6px;
  align-items:center;
  user-select:none;
}

.pm940-star-btn{
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;

  /* smoother */
  will-change: transform;
}

.pm940-star-btn:focus{ outline: none !important; }

.pm940-star-btn:focus,
.pm940-star-btn:focus-visible,
.pm940-star-btn:active{
  outline: none !important;
  box-shadow: none !important;
}

.pm940-star-svg{
  width: 32px;
  height: 32px;
  display:block;
  fill: var(--pm-brand);
  opacity: .20;

  will-change: transform, opacity;
  transform: translateZ(0);
  transform-origin: center;
  transition: opacity 120ms ease, transform 120ms ease;
}

.pm940-star-btn.is-filled .pm940-star-svg{
  opacity: 1;
  transform: scale(1.06);
}

.pm940-star-btn:hover .pm940-star-svg{
  transform: scale(1.10);
}
.pm940-star-btn:active .pm940-star-svg{
  transform: scale(1.04);
}

/* note always visible */
.pm940-stars-note{
  margin-top: 8px;
  font-size: .85rem;
  color: var(--pm-muted);
  line-height: 1.15;
  min-height: 1.1em;
  display:block;
}

/* Button */
.pm940-actions{
  display:flex;
  justify-content:flex-end;
  gap: 10px;
  margin-top: 14px;
}

.pm940-btn{
  border:0;
  border-radius: 12px;
  padding: 12px 16px;
  font-weight: 800;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  appearance:none;
  -webkit-appearance:none;
}

/* remove any focus outline / “red border” around the submit button */
.pm940-btn:focus,
.pm940-btn:focus-visible,
.pm940-btn:active{
  outline: none !important;
  box-shadow: none !important;
}

/* ✅ EXTRA KILL-SWITCH (themes zetten soms border/box-shadow op button:focus-visible) */
.pm940-review-card button,
.pm940-review-card button:focus,
.pm940-review-card button:focus-visible,
.pm940-review-card button:active{
  outline: none !important;
  box-shadow: none !important;
}

/* ✅ SPECIFIEK: maak zeker dat er NOOIT een border/ring zichtbaar is op de submitknop */
.pm940-review-card .pm940-btn-primary,
.pm940-review-card .pm940-btn-primary:focus,
.pm940-review-card .pm940-btn-primary:focus-visible,
.pm940-review-card .pm940-btn-primary:active{
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}

.pm940-btn-primary{
  background: var(--pm-brand) !important;
  color:#fff !important;
}

.pm940-btn-primary:hover{
  background:#2b91a8 !important;
}

.pm940-btn[disabled]{
  opacity:.65;
  cursor:not-allowed;
}

/* Feedback */
.pm940-feedback{
  margin-top: 12px;
  font-size: .95rem;
  display:none;
}
.pm940-feedback.err{ display:block; color: var(--pm-danger); }

/* Thank you centered */
.pm940-thanks{
  padding: 10px 4px 6px;
  color: var(--pm-text);
  text-align: center;
}
.pm940-thanks h4{
  margin: 0 0 10px;
  font-size: 1.05rem;
  color: var(--pm-dark);
}
.pm940-thanks p{
  margin: 0 0 10px;
  color:#33434c;
  line-height: 1.35;
}
.pm940-thanks p:last-child{ margin-bottom: 0; }

/* Badge link underline */
.pm940-reviews-underline{
  color: var(--pm-dark);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.pm940-reviews-underline:hover{
  color: var(--pm-brand);
}
