/**
 * WC Advanced Reviews — struttura comune del widget (.rw).
 * Le variabili --rw-* sono impostate inline dal compilatore di stili;
 * qui c'è solo l'ossatura, condivisa da tutte le skin.
 * Responsive tramite container query (si adatta alla larghezza del contenitore,
 * non della finestra: è l'unica scelta corretta per un widget).
 */

.rw{
  font-family:var(--rw-font,system-ui,-apple-system,"Segoe UI",Arial,sans-serif);
  font-size:var(--rw-fs,16px);
  background:var(--rw-bg,#fff); color:var(--rw-text,#1b2733);
  border-radius:var(--rw-radius,12px); padding:clamp(16px,3cqw,30px);
  line-height:1.55; container-type:inline-size;
}
.rw *{box-sizing:border-box}
.rw p{max-width:none; margin:0}

/* stelle */
.rw-stars{position:relative; display:inline-block; white-space:nowrap; letter-spacing:.12em; font-size:1em}
.rw-stars i{font-style:normal; color:var(--rw-border,#e6e9ee)}
.rw-stars b{position:absolute; left:0; top:0; overflow:hidden; white-space:nowrap; color:var(--rw-star,#16324f); font-weight:400}
.rw-num{font-weight:700; font-size:.82em; color:var(--rw-text); margin-left:6px; font-variant-numeric:tabular-nums}

/* riepilogo */
.rw-sum{display:grid; gap:clamp(14px,2.5cqw,26px); margin-bottom:22px}
.rw-sum-score{display:flex; align-items:center; gap:16px}
.rw-avg{font-size:2.9em; line-height:1; font-weight:800; color:var(--rw-primary); letter-spacing:-.03em; font-variant-numeric:tabular-nums}
.rw-avg small{font-size:.42em; font-weight:600; color:var(--rw-muted); letter-spacing:0}
.rw-avg-side{display:grid; gap:4px}
.rw-count{font-size:.78em; color:var(--rw-muted)}
.rw-dist{display:grid; gap:6px; min-width:0}
.rw-drow{display:grid; grid-template-columns:38px 1fr 34px; gap:9px; align-items:center; font-size:.76em; color:var(--rw-muted)}
.rw-dbar{height:8px; background:var(--rw-border); border-radius:99px; overflow:hidden}
.rw-dbar span{display:block; height:100%; background:var(--rw-star); border-radius:99px; transition:width .5s cubic-bezier(.2,.7,.3,1)}
.rw-drow em{font-style:normal; text-align:right; font-variant-numeric:tabular-nums}

/* sintesi */
.rw-synth{border:1px solid var(--rw-border); border-radius:calc(var(--rw-radius) + 2px); background:var(--rw-card); padding:16px 18px; margin-bottom:20px}
.rw-synth-h{display:flex; align-items:center; gap:8px; font-weight:700; font-size:.92em; margin-bottom:8px}
.rw-synth-h .rw-spark{width:20px; height:20px; flex:none; border-radius:6px; display:grid; place-items:center; background:color-mix(in srgb,var(--rw-primary) 16%,transparent); color:var(--rw-primary); font-size:.7em}
.rw-synth p{font-size:.88em; line-height:1.6; color:var(--rw-text)}
.rw-synth small{display:block; margin-top:9px; font-size:.72em; color:var(--rw-muted)}

/* toolbar */
.rw-bar{display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:space-between; margin-bottom:18px}
.rw-chips{display:flex; flex-wrap:wrap; gap:6px}
.rw-chip{font:inherit; font-size:.76em; padding:5px 12px; border-radius:99px; cursor:pointer; border:1px solid var(--rw-border); background:transparent; color:var(--rw-muted)}
.rw-chip:hover{border-color:var(--rw-primary); color:var(--rw-primary)}
.rw-chip[aria-pressed="true"]{background:var(--rw-primary); border-color:var(--rw-primary); color:var(--rw-card)}
.rw-sort{font:inherit; font-size:.76em; padding:6px 9px; border-radius:8px; border:1px solid var(--rw-border); background:var(--rw-card); color:var(--rw-text)}

/* lista */
.rw-list{display:grid; grid-template-columns:repeat(var(--rw-cols,1),minmax(0,1fr)); gap:var(--rw-gap,16px)}
@container (max-width:640px){ .rw-list{grid-template-columns:1fr !important} }

/* card */
.rw-card{background:var(--rw-card); border:1px solid var(--rw-border); border-radius:var(--rw-radius); padding:clamp(14px,2.2cqw,22px); display:flex; flex-direction:column; gap:11px; transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s}
.rw-card:hover{transform:translateY(-2px); box-shadow:0 10px 26px -18px rgba(0,0,0,.55)}
.rw-card.is-hidden{display:none}
.rw-head{display:flex; gap:11px; align-items:center}
.rw-av{width:40px; height:40px; flex:none; border-radius:99px; display:grid; place-items:center; font-size:.8em; font-weight:700; letter-spacing:.02em; color:#fff; background:var(--rw-avatar,var(--rw-primary))}
.rw-who{min-width:0; flex:1}
.rw-name{font-weight:700; font-size:.92em; line-height:1.25}
.rw-loc{font-weight:500; color:var(--rw-muted)}
.rw-meta{font-size:.75em; color:var(--rw-muted); margin-top:1px; display:flex; flex-wrap:wrap; gap:6px; align-items:center}
.rw-vb{font-size:.72em; font-weight:600; color:var(--rw-accent); display:inline-flex; align-items:center; gap:4px; white-space:nowrap}
.rw-vb::before{content:"✓"; font-size:.9em; font-weight:800}
.rw-t{font-size:1.02em; font-weight:700; margin:0; line-height:1.32; font-family:inherit; text-transform:none; letter-spacing:normal; color:var(--rw-text)}
.rw-body{font-size:.9em; color:var(--rw-text); opacity:.92}
.rw-sub{display:grid; gap:6px; padding:11px 0; border-top:1px solid var(--rw-border); border-bottom:1px solid var(--rw-border)}
.rw-srow{display:grid; grid-template-columns:1fr 64px 26px; gap:8px; align-items:center; font-size:.75em; color:var(--rw-muted)}
.rw-sbar{height:6px; background:var(--rw-border); border-radius:99px; overflow:hidden}
.rw-sbar span{display:block; height:100%; background:var(--rw-primary)}
.rw-photos{display:flex; gap:7px; flex-wrap:wrap}
.rw-ph{width:64px; height:64px; border-radius:calc(var(--rw-radius) * .5); overflow:hidden; border:1px solid var(--rw-border); cursor:zoom-in; flex:none}
.rw-ph img{width:100%; height:100%; object-fit:cover; display:block}
.rw-reply{background:color-mix(in srgb,var(--rw-primary) 8%,transparent); border-left:2px solid var(--rw-primary); border-radius:0 8px 8px 0; padding:10px 13px; font-size:.83em}
.rw-reply b{display:block; font-size:.86em; font-weight:700; color:var(--rw-primary); margin-bottom:3px}
.rw-foot{display:flex; gap:16px; align-items:center; justify-content:space-between; font-size:.75em; color:var(--rw-muted); margin-top:auto; padding-top:6px}
.rw-help{font:inherit; font-size:1em; background:none; border:none; color:inherit; cursor:pointer; display:inline-flex; gap:6px; align-items:center; padding:0}
.rw-help .rw-ico{font-size:1.05em}
.rw-help:hover{color:var(--rw-accent)}
.rw-help[aria-pressed="true"]{color:var(--rw-accent); font-weight:700}
.rw-empty{padding:34px; text-align:center; color:var(--rw-muted); font-size:.85em}

/* lightbox foto */
.rw-lightbox{position:fixed; inset:0; z-index:99999; display:grid; place-items:center; background:rgba(10,12,16,.82); padding:24px; border:none}
.rw-lightbox::backdrop{background:rgba(10,12,16,.82)}
.rw-lightbox img{max-width:92vw; max-height:88vh; border-radius:8px; box-shadow:0 20px 60px -20px rgba(0,0,0,.7)}
.rw-lightbox-close{position:absolute; top:18px; right:22px; width:40px; height:40px; border-radius:99px; border:none; background:#fff; color:#111; font-size:20px; cursor:pointer}

/* ---- modulo "lascia una recensione" (pop-up) ---- */
.rw-form-wrap{margin-top:22px;padding-top:20px;border-top:1px solid var(--rw-border)}
.rw-cta{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:space-between}
.rw-cta-lead{font-size:1em;font-weight:600;color:var(--rw-text);margin:0}
.rw-form-open{
  font:inherit;font-size:.9em;font-weight:700;padding:11px 24px;border-radius:99px;cursor:pointer;
  border:1px solid var(--rw-primary);background:var(--rw-primary);color:var(--rw-card);
}
.rw-form-open:hover{background:var(--rw-accent);border-color:var(--rw-accent)}
.rw-modal{
  border:none;border-radius:16px;padding:0;width:min(560px,94vw);max-height:92vh;
  background:var(--rw-card);color:var(--rw-text);box-shadow:0 30px 90px -24px rgba(0,0,0,.55);
}
.rw-modal::backdrop{background:rgba(8,12,16,.58)}
.rw-modal.rw-modal-fallback{position:fixed;inset:0;margin:auto;z-index:99999;height:max-content}
.rw-modal-x{
  position:absolute;top:12px;right:14px;width:34px;height:34px;border:none;border-radius:9px;
  background:transparent;color:var(--rw-muted);font-size:22px;line-height:1;cursor:pointer;
}
.rw-modal-x:hover{background:color-mix(in srgb,var(--rw-muted) 16%,transparent);color:var(--rw-text)}
.rw-form{display:grid;gap:14px;max-width:none;margin:0;padding:26px 24px;position:relative;overflow:auto}
.rw-form-h{font-size:1.1em;font-weight:700;margin:0 34px 2px 0;color:var(--rw-text)}
.rw-hint{font-size:.75em;color:var(--rw-muted)}
.rw-form input[type=file]{font:inherit;font-size:.85em;color:var(--rw-text)}
.rw-field{display:grid;gap:5px}
.rw-field label{font-size:.85em;font-weight:600;color:var(--rw-text);display:grid;gap:5px}
.rw-flabel{font-size:.85em;font-weight:600;color:var(--rw-text)}
.rw-two{grid-template-columns:1fr 1fr;gap:12px}
@container (max-width:480px){.rw-two{grid-template-columns:1fr}}
.rw-form input[type=text],.rw-form input[type=email],.rw-form textarea{
  font:inherit;font-size:.92em;padding:9px 11px;border:1px solid var(--rw-border);border-radius:8px;
  background:var(--rw-card);color:var(--rw-text);width:100%;
}
.rw-form textarea{resize:vertical;min-height:90px}
.rw-star-input{display:inline-flex;gap:4px;font-size:1.5em;line-height:1}
.rw-star-pick{background:none;border:none;cursor:pointer;color:var(--rw-border);padding:0 1px;line-height:1;transition:color .1s}
.rw-star-pick.on{color:var(--rw-star)}
.rw-anon{display:flex;gap:8px;align-items:center;font-size:.85em;color:var(--rw-muted);font-weight:500}
.rw-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden}
.rw-form-foot{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.rw-submit{
  font:inherit;font-size:.9em;font-weight:700;padding:11px 26px;border-radius:99px;cursor:pointer;
  border:1px solid var(--rw-primary);background:var(--rw-primary);color:var(--rw-card);
}
.rw-submit:hover{background:var(--rw-accent);border-color:var(--rw-accent)}
.rw-submit:disabled{opacity:.6;cursor:default}
.rw-form-msg{font-size:.85em;color:var(--rw-accent);font-weight:600}
.rw-form-note{font-size:.78em;color:var(--rw-muted);margin:0}
.rw-form-done{
  margin-top:18px;padding:16px 18px;border-radius:10px;font-weight:600;
  background:color-mix(in srgb,var(--rw-primary) 10%,transparent);color:var(--rw-primary);
}

/* ============================================================
   BLINDATURA CONTRO IL TEMA
   Il tema del sito può iniettare colori (pulsanti, testo) dentro
   al widget. Qui ri-affermiamo i colori con specificità .rw così
   restano leggibili e coerenti su qualunque tema, chiaro o scuro.
   ============================================================ */
.rw .rw-name,.rw .rw-t,.rw .rw-body,.rw .rw-num,.rw .rw-form-h{color:var(--rw-text)}
.rw .rw-meta,.rw .rw-loc,.rw .rw-count,.rw .rw-drow,.rw .rw-prod,.rw .rw-foot,.rw .rw-form-note,.rw .rw-anon{color:var(--rw-muted)}
.rw .rw-avg{color:var(--rw-primary)}
.rw .rw-chip{
  background:transparent;color:var(--rw-muted);border:1px solid var(--rw-border);
  -webkit-appearance:none;appearance:none;box-shadow:none;text-shadow:none;
}
.rw .rw-chip:hover,.rw .rw-chip:focus,.rw .rw-chip:active{
  background:transparent;color:var(--rw-primary);border-color:var(--rw-primary);box-shadow:none;
}
.rw .rw-chip[aria-pressed="true"]{
  background:var(--rw-primary);color:var(--rw-card);border-color:var(--rw-primary);
}
.rw .rw-help,.rw .rw-form-open,.rw .rw-submit,.rw .rw-more{-webkit-appearance:none;appearance:none;text-shadow:none}
/* Il pulsante "Utile" e le stelle del form: neutralizziamo con forza gli stili
   pulsante del tema (che li coloravano di rosa). */
.rw .rw-help{
  background:transparent !important;color:var(--rw-muted) !important;border:none !important;
  box-shadow:none !important;padding:0 !important;border-radius:0 !important;min-height:0 !important;
}
.rw .rw-help:hover,.rw .rw-help[aria-pressed="true"]{background:transparent !important;color:var(--rw-accent) !important}
.rw .rw-star-pick{background:transparent !important;border:none !important;box-shadow:none !important;padding:0 1px !important}
.rw .rw-star-pick.on{color:var(--rw-star) !important}
.rw .rw-modal-x{background:transparent !important;box-shadow:none !important}

@media (prefers-reduced-motion:reduce){
  .rw *{animation:none !important; transition:none !important}
}
