/* Le recensioni sul sito (assets/js/recensioni.js, 28 set 2026): sezioni e finestra.
   Colori del marchio, niente variabili di una pagina sola. */
.rec-sez { padding: 56px 0 64px; position: relative; z-index: 5; }
/* in home, sul telefono, la scena 3D e' fissa dietro: come le altre sezioni (site.css),
   un fondo scuro semitrasparente */
@media (max-width: 768px) { #recensioni.rec-sez { background: rgba(8, 12, 20, .43); -webkit-backdrop-filter: blur(1px); backdrop-filter: blur(1px); } }
.rec-wrap { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.rec-testa { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; }
.rec-testa h2 { margin: 0; font-size: clamp(1.3rem, 2.4vw, 1.7rem); color: #fff; }
.rec-media { display: inline-flex; align-items: center; gap: 10px; color: #b8c2d6; font-size: .95rem; text-decoration: none; }
.rec-media b { color: #fbbf24; letter-spacing: 2px; font-size: 1.05rem; }
a.rec-media:hover { color: #fff; }
.rec-scrivi { display: inline-flex; align-items: center; gap: 8px; padding: 11px 22px; border: 0; border-radius: 999px; cursor: pointer;
  font: 600 .95rem/1.2 inherit; font-family: inherit; color: #fff; background: linear-gradient(135deg, #7c3aed, #2563eb);
  box-shadow: 0 10px 26px -10px rgba(124, 58, 237, .9); text-decoration: none; }
.rec-scrivi:hover, .rec-scrivi:focus-visible { filter: brightness(1.12); }
.rec-vuota { margin: 14px 0 0; color: #9aa3b8; }
.rec-det { margin-top: 18px; }
.rec-det > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 8px; color: #8ab4ff; font-weight: 600; padding: 6px 0; }
.rec-det > summary::-webkit-details-marker { display: none; }
.rec-det > summary::before { content: "\25B8"; transition: transform .2s ease; display: inline-block; }
.rec-det[open] > summary::before { transform: rotate(90deg); }
.rec-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; margin-top: 16px; }
.rec-card { margin: 0; padding: 18px 20px; border-radius: 14px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); }
.rec-stelle { color: #fbbf24; letter-spacing: 2px; margin-bottom: 8px; }
.rec-testo { margin: 0 0 10px; color: #dfe6f3; line-height: 1.6; font-size: .95rem; white-space: pre-line; }
.rec-autore { color: #9aa3b8; font-size: .85rem; }
.rec-autore strong { color: #fff; }
.rec-autore a { color: inherit; }
.rec-fonte { margin: 16px 0 0; color: #7d879c; font-size: .8rem; line-height: 1.5; }

/* la finestra */
.rec-dlg { margin: auto; width: min(560px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 0; border: 1px solid rgba(139, 92, 246, .35);
  border-radius: 16px; background: #0f1320; color: #e2e8f0; box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .9); }
.rec-dlg::backdrop { background: rgba(3, 5, 12, .72); backdrop-filter: blur(3px); }
.rec-form, .rec-ok { padding: 22px 22px 20px; position: relative; }
.rec-dlg-t { margin: 0 34px 16px 0; font-size: 1.25rem; color: #fff; }
.rec-x { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .06);
  color: #cbd5e1; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.rec-voto { border: 0; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px; }
.rec-voto legend { margin-bottom: 4px; }
.rec-st { cursor: pointer; font-size: 1.9rem; line-height: 1; color: #3b4256; padding: 2px; }
.rec-st input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rec-voto:has(.rec-st:nth-of-type(1) input:checked) .rec-st:nth-of-type(-n+1),
.rec-voto:has(.rec-st:nth-of-type(2) input:checked) .rec-st:nth-of-type(-n+2),
.rec-voto:has(.rec-st:nth-of-type(3) input:checked) .rec-st:nth-of-type(-n+3),
.rec-voto:has(.rec-st:nth-of-type(4) input:checked) .rec-st:nth-of-type(-n+4),
.rec-voto:has(.rec-st:nth-of-type(5) input:checked) .rec-st:nth-of-type(-n+5) { color: #fbbf24; }
.rec-st:has(input:focus-visible) { outline: 2px solid #93b8fb; outline-offset: 2px; border-radius: 6px; }
.rec-campo { display: flex; flex-direction: column; gap: 5px; margin-bottom: 12px; }
.rec-eti { font-size: .82rem; color: #a5b0c6; font-weight: 600; }
.rec-campo input, .rec-campo textarea { width: 100%; box-sizing: border-box; padding: 10px 12px; border-radius: 9px; border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .04); color: #fff; font: inherit; font-size: .95rem; }
.rec-campo textarea { resize: vertical; min-height: 110px; }
.rec-campo input:focus, .rec-campo textarea:focus { outline: none; border-color: #8b5cf6; }
.rec-aiuto { font-size: .76rem; color: #7d879c; line-height: 1.4; }
.rec-err { font-size: .8rem; color: #f87171; }
.rec-esca { position: absolute !important; left: -10000px; width: 1px; height: 1px; opacity: 0; }
.rec-cons { display: flex; gap: 10px; align-items: flex-start; font-size: .85rem; color: #cbd5e1; line-height: 1.45; margin: 6px 0 10px; flex-wrap: wrap; }
.rec-cons input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.rec-cons > span:first-of-type { flex: 1 1 200px; }
.rec-cons a { color: #a5a0ff; }
.rec-cons .rec-err { flex-basis: 100%; }
.rec-nota { margin: 4px 0 14px; font-size: .76rem; color: #7d879c; line-height: 1.5; }
.rec-azioni { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.rec-btn, .rec-btn2 { padding: 10px 20px; border-radius: 999px; font: 600 .92rem/1.2 inherit; font-family: inherit; cursor: pointer; }
.rec-btn { border: 0; color: #fff; background: linear-gradient(135deg, #7c3aed, #2563eb); }
.rec-btn[disabled] { opacity: .6; cursor: default; }
.rec-btn2 { border: 1px solid rgba(255, 255, 255, .22); background: transparent; color: #e2e8f0; }
.rec-ok-t { font-size: 1.3rem; font-weight: 700; color: #fff; margin: 0 0 6px; }
.rec-google { margin: 18px 0; padding: 14px 16px; border-radius: 12px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); }
.rec-google .rec-eti { display: block; margin: 0 0 10px; }
.rec-ok > .rec-btn2 { margin-top: 6px; }
@media (max-width: 600px) { .rec-sez { padding: 44px 0 52px; } .rec-form, .rec-ok { padding: 18px 16px 16px; } }
