.sfrr-widget{
  max-width:720px; margin:0 auto; background:#F6F3ED; color:#23262B;
  font-family:'Public Sans', -apple-system, sans-serif; padding:32px 20px 40px;
  border-radius:20px; box-sizing:border-box;
}
.sfrr-widget *{ font-family: inherit; box-sizing:border-box; }
.sfrr-eyebrow{
  display:flex; align-items:center; gap:10px; font-size:12.5px; letter-spacing:.09em;
  text-transform:uppercase; color:#4A6672; font-weight:700; margin-bottom:10px;
}
.sfrr-eyebrow::before{
  content:''; width:7px; height:7px; border-radius:50%; background:#4A6672; flex-shrink:0;
}
.sfrr-title{
  font-family:'Fraunces', serif; font-weight:600; font-size:clamp(26px, 4vw, 34px);
  line-height:1.15; letter-spacing:-.01em; margin:0 0 10px;
}
.sfrr-sub{ color:#5B5F66; font-size:15.5px; line-height:1.55; max-width:52ch; margin:0 0 28px; }
.sfrr-card{
  background:#FFFDF9; border:1px solid #DAD3C6; border-radius:14px;
  padding:28px 26px 26px; box-shadow:0 1px 2px rgba(35,38,43,.04), 0 12px 28px -18px rgba(35,38,43,.18);
  min-height:80px;
}
.sfrr-points{ display:flex; gap:7px; margin-bottom:22px; }
.sfrr-point{ flex:1; height:4px; border-radius:3px; background:#E8E3D8; position:relative; overflow:hidden; }
.sfrr-point.done, .sfrr-point.active{ background:#4A6672; }
.sfrr-point.active::after{
  content:''; position:absolute; inset:0; background:#4A6672;
  animation:sfrr-pulse 1.4s ease-in-out infinite;
}
@keyframes sfrr-pulse{ 0%,100%{opacity:1;} 50%{opacity:.45;} }
.sfrr-step-label{
  font-size:12px; letter-spacing:.07em; text-transform:uppercase; color:#8B8E93;
  font-weight:700; margin-bottom:6px;
}
.sfrr-question{ font-family:'Fraunces', serif; font-weight:600; font-size:21px; line-height:1.3; margin:0 0 18px; }
.sfrr-options{ display:flex; flex-direction:column; gap:9px; margin-bottom:22px; }
.sfrr-option{
  text-align:left; border:1px solid #DAD3C6; background:#fff; border-radius:10px;
  padding:13px 16px; font-size:15px; color:#23262B; cursor:pointer;
  transition:border-color .15s ease, background .15s ease; display:flex; align-items:center;
  gap:12px; line-height:1.4; width:100%;
}
.sfrr-option:hover{ border-color:#4A6672; }
.sfrr-option .sfrr-mark{
  width:18px; height:18px; border-radius:5px; border:1.5px solid #DAD3C6; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; transition:all .15s ease;
}
.sfrr-option[data-type="radio"] .sfrr-mark{ border-radius:50%; }
.sfrr-option.selected{ border-color:#4A6672; background:#DCE6E8; }
.sfrr-option.selected .sfrr-mark{ background:#4A6672; border-color:#4A6672; }
.sfrr-option.selected .sfrr-mark::after{ content:''; width:6px; height:6px; background:#fff; border-radius:50%; }
.sfrr-option[data-type="radio"].selected .sfrr-mark::after{ border-radius:50%; }
.sfrr-option[data-type="check"].selected .sfrr-mark::after{
  width:8px; height:5px; border-radius:0; background:transparent;
  border-left:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(-45deg) translate(1px,-1px);
}
.sfrr-nav{ display:flex; justify-content:space-between; align-items:center; gap:12px; }
.sfrr-btn{
  font-family:'Public Sans', sans-serif; font-weight:700; font-size:14.5px; border-radius:9px;
  padding:11px 20px; cursor:pointer; border:none; transition:opacity .15s ease, transform .1s ease;
}
.sfrr-btn:active{ transform:scale(.98); }
.sfrr-btn-primary{ background:#23262B; color:#fff; margin-left:auto; }
.sfrr-btn-primary:disabled{ opacity:.35; cursor:not-allowed; }
.sfrr-btn-ghost{ background:transparent; color:#5B5F66; }
.sfrr-btn-ghost:disabled{ visibility:hidden; }
.sfrr-result{ display:none; }
.sfrr-stamp-row{ display:flex; justify-content:center; margin-bottom:18px; }
.sfrr-stamp{
  width:118px; height:118px; border-radius:50%; border:3px solid currentColor; display:flex;
  align-items:center; justify-content:center; flex-direction:column; text-align:center;
  transform:rotate(-6deg) scale(.4); opacity:0;
  animation:sfrr-stamp-in .45s cubic-bezier(.2,1.4,.4,1) forwards; animation-delay:.1s;
}
@keyframes sfrr-stamp-in{ to{ transform:rotate(-6deg) scale(1); opacity:1; } }
.sfrr-stamp-word{
  font-family:'Fraunces', serif; font-weight:700; font-size:16px; letter-spacing:.03em;
  text-transform:uppercase; line-height:1.15;
}
.sfrr-stamp-sub{ font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; margin-top:3px; opacity:.8; }
.sfrr-verdict-title{ font-family:'Fraunces', serif; font-weight:600; font-size:23px; text-align:center; margin:0 0 8px; }
.sfrr-verdict-desc{ text-align:center; color:#5B5F66; font-size:15px; line-height:1.55; max-width:46ch; margin:0 auto 22px; }
.sfrr-reasons{ background:#F6F3ED; border:1px solid #E8E3D8; border-radius:10px; padding:16px 18px; margin-bottom:22px; }
.sfrr-reasons-label{ font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:#8B8E93; font-weight:700; margin-bottom:10px; }
.sfrr-reasons ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.sfrr-reasons li{ font-size:14px; line-height:1.5; color:#23262B; display:flex; gap:9px; }
.sfrr-reasons li::before{ content:'—'; color:#8B8E93; flex-shrink:0; }
.sfrr-cta-row{ display:flex; gap:10px; flex-wrap:wrap; }
.sfrr-cta{
  flex:1; min-width:180px; text-align:center; text-decoration:none; background:#23262B;
  color:#fff; font-weight:700; font-size:14.5px; padding:13px 18px; border-radius:9px;
}
.sfrr-contractor-form{
  border:1px solid #DAD3C6; border-radius:12px; padding:18px; margin-bottom:16px; background:#fff;
}
.sfrr-restart{
  display:block; margin:0 auto; text-align:center; background:transparent; color:#5B5F66; font-weight:600; font-size:13.5px;
  padding:13px 14px; border-radius:9px; border:1px solid #DAD3C6; cursor:pointer;
}
.sfrr-fine-print{ text-align:center; font-size:12px; color:#8B8E93; margin-top:16px; line-height:1.5; }
.sfrr-error-box{
  display:none; background:#FDECEC; border:1px solid #E4A0A0; color:#7A1F1F;
  border-radius:10px; padding:16px 18px; font-size:13.5px; line-height:1.6;
}
.sfrr-error-box strong{ display:block; margin-bottom:6px; font-size:13.5px; }
@media (max-width:480px){
  .sfrr-card{ padding:22px 18px 20px; }
  .sfrr-cta-row{ flex-direction:column; }
}
