/* =========================================================
   FurniLove – Opinie (gwiazdki, panel opinii, znaczek, formularz)
   Tokeny jak w pozostałych wtyczkach FurniLove
   ========================================================= */
.flo-pr,.flo-drawer,.flo-badge,.flo-form-wrap{
  --g:#a17c44; --g-d:#876230; --g-l:#c9a96a; --cream:#fbfaf3; --cream-2:#f4f0e6; --line:#ece7db;
  --ink:#1b1b1b; --soft:#4a4a4a; --muted:#6a6a6a; --star-off:#ddd4c2;
  font-family:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
.flo-drawer *,.flo-form-wrap *{ box-sizing:border-box; }
.flo-drawer [hidden],.flo-form-wrap [hidden]{ display:none !important; }
.flo-drawer svg,.flo-form-wrap svg,.flo-badge svg{ display:block; }

/* Gwiazdki z ułamkiem: --flo-r = średnia (np. 4.6) */
.flo-stars{
  --flo-r:5; display:inline-block; font-size:18px; line-height:1; letter-spacing:2px; white-space:nowrap;
  background:linear-gradient(90deg,var(--g) calc(var(--flo-r) / 5 * 100%),var(--star-off) 0);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.flo-stars::before{ content:"\2605\2605\2605\2605\2605"; }
.flo-stars--lg{ font-size:22px; }

/* ---- Pod nazwą produktu ---- */
.flo-pr{ margin:6px 0 14px; }
.flo-pr__btn{
  display:inline-flex; align-items:center; gap:8px; padding:4px 0; border:0; background:none; cursor:pointer;
  font:inherit; color:var(--ink);
}
.flo-pr__avg{ font-weight:700; font-size:15px; }
.flo-pr__count{ font-size:14px; color:var(--muted); text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:4px; transition:text-decoration-color .2s, color .2s; }
.flo-pr__btn:hover .flo-pr__count{ color:var(--ink); text-decoration-color:var(--g); }
.flo-pr__btn:focus-visible{ outline:2px solid var(--g-l); outline-offset:3px; border-radius:4px; }

/* ---- Pływający znaczek opinii o sklepie ---- */
.flo-badge{
  position:fixed; left:18px; bottom:18px; z-index:9980; display:flex; align-items:center; gap:10px;
  padding:9px 16px 9px 10px; border:1px solid var(--line); border-radius:999px; background:#fff; cursor:pointer;
  box-shadow:0 10px 30px rgba(27,27,27,.14); font:inherit; color:var(--ink); text-align:left;
  transition:transform .2s ease, box-shadow .2s ease, bottom .25s ease;
}
.flo-badge:hover{ transform:translateY(-2px); box-shadow:0 14px 34px rgba(27,27,27,.18); }
.flo-badge__star{
  width:36px; height:36px; border-radius:50%; background:var(--g); color:#fff; font-size:19px; line-height:1;
  display:inline-flex; align-items:center; justify-content:center;
}
.flo-badge__avg{ font-size:20px; font-weight:700; letter-spacing:-.01em; }
.flo-badge__txt{ display:flex; flex-direction:column; line-height:1.2; }
.flo-badge__txt b{ font-size:13px; font-weight:700; }
.flo-badge__txt small{ font-size:12px; color:var(--muted); }

/* ---- Panel boczny ---- */
.flo-drawer{ position:fixed; inset:0; z-index:99998; }
.flo-drawer__overlay{ position:absolute; inset:0; background:rgba(20,18,14,.45); animation:flo-fade .2s ease; }
.flo-drawer__panel{
  position:absolute; top:0; right:0; bottom:0; width:min(460px,100%); background:#fff; display:flex; flex-direction:column;
  box-shadow:-20px 0 60px rgba(0,0,0,.18); animation:flo-slide .28s cubic-bezier(.2,.8,.2,1);
}
.flo-drawer__head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:22px 24px 16px; border-bottom:1px solid var(--line); }
.flo-eyebrow{ margin:0 0 6px; font-size:.72rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--g); }
.flo-drawer__head h2{ margin:0; font-family:"Playfair Display",Georgia,serif; font-size:1.55rem; line-height:1.15; color:var(--ink); }
.flo-drawer__close{
  flex:0 0 auto; width:40px; height:40px; border-radius:50%; border:1px solid var(--line); background:#fff;
  font-size:1.5rem; line-height:1; cursor:pointer; color:var(--ink);
}
.flo-drawer__close:hover{ background:var(--cream); }
.flo-drawer__body{ flex:1 1 auto; overflow:auto; padding:20px 24px 28px; }
.flo-preview-note{ margin:0 0 14px; padding:8px 12px; background:#fff7e0; border:1px solid #f0dda6; border-radius:8px; font-size:12.5px; color:#7a5d1e; }

.flo-sum{ display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:center; padding:18px; background:var(--cream); border:1px solid var(--line); border-radius:14px; }
.flo-sum__avg{ display:flex; flex-direction:column; align-items:center; gap:6px; min-width:104px; }
.flo-sum__avg b{ font-family:"Playfair Display",Georgia,serif; font-size:2.6rem; line-height:1; color:var(--ink); }
.flo-sum__avg small{ font-size:12px; color:var(--muted); text-align:center; }
.flo-sum__dist{ list-style:none; margin:0; padding:0; display:grid; gap:5px; }
.flo-sum__dist li{ display:grid; grid-template-columns:22px 1fr 26px; align-items:center; gap:8px; font-size:12.5px; color:var(--soft); }
.flo-sum__dist li span:first-child{ font-weight:600; }
.flo-bar{ height:6px; border-radius:99px; background:var(--cream-2); overflow:hidden; }
.flo-bar i{ display:block; height:100%; background:var(--g); border-radius:99px; }
.flo-sum__dist li span:last-child{ text-align:right; color:var(--muted); }

.flo-trust{ display:flex; gap:10px; align-items:flex-start; margin:16px 0 6px; font-size:12.5px; line-height:1.5; color:var(--muted); }
.flo-trust svg{ flex:0 0 auto; width:18px; height:18px; color:var(--g); margin-top:1px; }

.flo-list{ list-style:none; margin:0; padding:0; }
.flo-item{ padding:18px 0; border-bottom:1px solid var(--line); }
.flo-item:last-child{ border-bottom:0; }
.flo-item__top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.flo-item__date{ font-size:12px; color:var(--muted); }
.flo-item__text{ margin:0 0 10px; font-size:14.5px; line-height:1.6; color:var(--soft); white-space:pre-line; }
.flo-item__who{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:13px; }
.flo-item__who b{ color:var(--ink); }
.flo-verified{ display:inline-flex; align-items:center; gap:4px; padding:3px 8px 3px 6px; border-radius:99px; background:#eef6ee; color:#2f6b3a; font-size:11.5px; font-weight:600; }
.flo-verified svg{ width:13px; height:13px; }
.flo-test{ padding:2px 7px; border-radius:99px; background:#fff1d6; color:#8a5a00; font-size:10.5px; font-weight:700; letter-spacing:.06em; }
.flo-more{
  display:block; width:100%; margin-top:14px; min-height:44px; border:1px solid var(--ink); background:#fff; color:var(--ink);
  font:inherit; font-weight:600; font-size:14px; cursor:pointer; transition:background .2s,color .2s;
}
.flo-more:hover{ background:var(--ink); color:#fff; }
body.flo-lock{ overflow:hidden; }

@keyframes flo-fade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes flo-slide{ from{ transform:translateX(100%); } to{ transform:none; } }

/* ---- Formularz opinii (/opinia/) ---- */
.flo-form-wrap{ max-width:720px; margin:0 auto; padding:10px 20px 60px; color:var(--ink); }
.flo-form-head{ text-align:center; margin-bottom:26px; }
.flo-title{ font-family:"Playfair Display",Georgia,serif; font-weight:700; font-size:clamp(1.8rem,4vw,2.6rem); line-height:1.1; margin:0 0 12px; }
.flo-lead{ margin:0 auto; max-width:560px; color:var(--muted); font-size:1.02rem; line-height:1.6; }
.flo-msg{ text-align:center; padding:26px; background:var(--cream); border:1px solid var(--line); border-radius:16px; line-height:1.6; }
.flo-errors{ margin:0 0 18px; padding:12px 16px; border:1px solid #e7b4b4; background:#fff4f4; border-radius:10px; color:#8a2d2d; font-size:14px; }
.flo-errors ul{ margin:0; padding-left:18px; }
.flo-card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px 22px; margin-bottom:16px; box-shadow:0 1px 3px rgba(27,27,27,.04); }
.flo-card--plain{ background:var(--cream); }
.flo-card__head{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.flo-card__head h2{ margin:0; font-size:1.1rem; font-weight:700; line-height:1.25; }
.flo-card__head p{ margin:2px 0 0; font-size:13.5px; color:var(--muted); }
.flo-card__img{ width:64px; height:64px; object-fit:cover; border-radius:10px; border:1px solid var(--line); flex:0 0 auto; }
.flo-card__icon{ width:48px; height:48px; border-radius:50%; background:var(--cream); border:1px solid var(--line); color:var(--g); display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.flo-card__icon svg{ width:24px; height:24px; }

.flo-rate{ border:0; margin:0 0 12px; padding:0; }
.flo-rate__stars{ display:inline-flex; flex-direction:row-reverse; gap:4px; }
.flo-rate__stars input{ position:absolute; opacity:0; width:1px; height:1px; }
.flo-rate__stars label{ font-size:36px; line-height:1; color:var(--star-off); cursor:pointer; transition:color .15s, transform .15s; }
.flo-rate__stars label:hover,.flo-rate__stars label:hover ~ label,
.flo-rate__stars input:checked ~ label{ color:var(--g); }
.flo-rate__stars label:hover{ transform:scale(1.08); }
.flo-rate__stars input:focus-visible + label{ outline:2px solid var(--g-l); outline-offset:2px; border-radius:4px; }

.flo-field{ display:block; margin:0; }
.flo-field > span{ display:block; margin-bottom:6px; font-size:13.5px; font-weight:600; }
.flo-field em{ font-style:normal; font-weight:400; color:var(--muted); }
.flo-field textarea,.flo-field input{
  width:100%; padding:12px 14px; border:1px solid rgba(43,45,47,.35); border-radius:4px; background:#fff;
  font:inherit; font-size:15px; color:var(--ink); resize:vertical;
}
.flo-field textarea:focus,.flo-field input:focus{ outline:none; border-color:var(--g); box-shadow:0 0 0 3px rgba(161,124,68,.15); }
.flo-check{ display:flex; gap:10px; align-items:flex-start; margin:16px 0 18px; font-size:13.5px; line-height:1.5; color:var(--soft); }
.flo-check input{ margin-top:3px; accent-color:var(--g); width:18px; height:18px; flex:0 0 auto; }
.flo-btn{
  display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 30px; border:1px solid transparent;
  font:inherit; font-size:16px; font-weight:600; cursor:pointer; text-decoration:none !important; transition:background .2s,color .2s;
}
.flo-btn--gold{ background:var(--g); color:#fff !important; width:100%; }
.flo-btn--gold:hover{ background:var(--g-d); }
.flo-btn--outline{ background:#fff; color:var(--ink) !important; border-color:var(--ink); }
.flo-btn--outline:hover{ background:var(--ink); color:#fff !important; }
.flo-form-wrap .screen-reader-text,.flo-drawer .screen-reader-text,.flo-pr .screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

@media (max-width:600px){
  .flo-badge{ left:12px; bottom:12px; padding:6px 12px 6px 6px; gap:8px; }
  .flo-badge__star{ width:30px; height:30px; font-size:16px; }
  .flo-badge__avg{ font-size:17px; }
  .flo-badge__txt small{ display:none; }
  .flo-drawer__panel{ width:100%; top:auto; height:92vh; border-radius:20px 20px 0 0; animation:flo-up .3s ease; }
  .flo-sum{ grid-template-columns:1fr; gap:14px; }
  .flo-card{ padding:18px 16px; }
  .flo-rate__stars label{ font-size:40px; }
}
@keyframes flo-up{ from{ transform:translateY(100%); } to{ transform:none; } }
@media (prefers-reduced-motion:reduce){
  .flo-drawer *,.flo-badge{ animation:none !important; transition:none !important; }
}
