/* =========================================================================
   Savorita Pagine legali (docs/legal-widget.md, mockups/legali/)

   Regole di scrittura (le stesse di savorita-onboarding-full):
   - ogni selettore parte da .sv-lgl.sv-lgl
   - la radice è il contenitore (svlgl): sotto 1000 l'impaginazione del
     telefono (indice in alto, apribile; società in fondo)
   - niente !important su display; tocco della 0.28.2 (docs/touch.md):
     :hover solo con il mouse, tranne chi annulla il :hover di kit e tema
   - salti alle sezioni: html ha già scroll-padding-top = header (shared.css),
     qui solo lo spazio in più (e la barra dell'indice sul telefono)
   - schede: la radice porta data-tab (lo mette la riga di script del
     widget); senza, si vede tutto, una scheda sotto l'altra
   ========================================================================= */

.sv-lgl.sv-lgl{
  --l-green:#087F23; --l-mint:#E8FFE5; --l-red:#EC1B30; --l-navy:#293241; --l-lilac:#F7F6FE;
  --l-ink:var(--l-navy); --l-muted:#5E7174; --l-line:#E3E8E4; --l-soft:#F5F8F5;
  --l-top:var(--sv-bar-h, 76px);
  --l-display:Nunito, "Nunito Sans", system-ui, sans-serif;
  --l-body:"Nunito Sans", Nunito, system-ui, sans-serif;
  --l-pad:clamp(16px, 5cqw, 64px);
  container-type:inline-size; container-name:svlgl;
  box-sizing:border-box; width:100%; margin:0;
  color:var(--l-ink); font-family:var(--l-body); font-size:16px;
  line-height:1.4; /* il kit dà al body un'interlinea fissa (30px) */
  text-align:left; -webkit-font-smoothing:antialiased;
}
.sv-lgl.sv-lgl *,
.sv-lgl.sv-lgl *::before,
.sv-lgl.sv-lgl *::after{ box-sizing:border-box; }
.sv-lgl.sv-lgl a{ color:var(--l-green); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; word-spacing:0; }
.sv-lgl.sv-lgl a:focus-visible,
.sv-lgl.sv-lgl button:focus-visible{ outline:2px solid var(--l-green); outline-offset:2px; }

/* schede: si vede solo quella scelta (data-tab sulla radice) */
.sv-lgl.sv-lgl[data-tab="en"] :is([data-lgl-for], [data-lgl-panel]):not([data-lgl-for="en"], [data-lgl-panel="en"]),
.sv-lgl.sv-lgl[data-tab="it"] :is([data-lgl-for], [data-lgl-panel]):not([data-lgl-for="it"], [data-lgl-panel="it"]),
.sv-lgl.sv-lgl[data-tab="buyer"] :is([data-lgl-for], [data-lgl-panel]):not([data-lgl-for="buyer"], [data-lgl-panel="buyer"]),
.sv-lgl.sv-lgl[data-tab="venditori"] :is([data-lgl-for], [data-lgl-panel]):not([data-lgl-for="venditori"], [data-lgl-panel="venditori"]){ display:none; }

/* ---------- apertura ---------- */
.sv-lgl.sv-lgl .lgl-head{
  background:radial-gradient(120% 140% at 90% 0%, var(--l-mint) 0%, #fff 55%, var(--l-lilac) 100%);
  border-bottom:1px solid var(--l-line);
  padding:clamp(28px, 5cqw, 56px) var(--l-pad) clamp(24px, 3.5cqw, 40px);
}
.sv-lgl.sv-lgl .lgl-head-in{ max-width:1200px; margin:0 auto; display:grid; gap:14px; justify-items:start; }
.sv-lgl.sv-lgl .lgl-eb{ display:flex; align-items:center; gap:10px; margin:0; font:800 12px/1 var(--l-display); letter-spacing:2.2px; text-transform:uppercase; color:var(--l-muted); }
.sv-lgl.sv-lgl .lgl-eb::before{ content:""; width:30px; height:4px; border-radius:2px; flex:none; background:linear-gradient(90deg, #1a9a3a 0 33.3%, #fff 33.3% 66.6%, var(--l-red) 66.6%); box-shadow:0 0 0 1px rgba(0,0,0,.08); }
.sv-lgl.sv-lgl h1{ margin:0; font:900 clamp(32px, 4.4cqw, 52px)/1.05 var(--l-display); letter-spacing:-.025em; color:var(--l-ink); text-transform:none; text-wrap:balance; }
.sv-lgl.sv-lgl .lgl-date{ display:inline-flex; align-items:center; gap:8px; margin:0; padding:7px 14px 7px 10px; border-radius:999px; background:#fff; border:1px solid var(--l-line); font-size:14px; color:var(--l-muted); box-shadow:0 1px 2px rgba(41,50,65,.05); }
.sv-lgl.sv-lgl .lgl-date b{ color:var(--l-ink); font-weight:800; }
.sv-lgl.sv-lgl .lgl-date svg{ width:18px; height:18px; color:var(--l-green); flex:none; }

/* schede (Privacy EN | IT, Termini Buyer | Venditori). I bottoni azzerano kit e tema. */
.sv-lgl.sv-lgl .lgl-tabs{ display:inline-grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:4px; padding:4px; margin-top:6px; border-radius:999px; background:rgba(41,50,65,.07); }
.sv-lgl.sv-lgl .lgl-tabs button{
  appearance:none; border:0; margin:0; cursor:pointer; white-space:normal; word-spacing:0; text-transform:none; letter-spacing:0; text-decoration:none; box-shadow:none;
  min-height:44px; padding:8px 20px; border-radius:999px; background:transparent; color:var(--l-ink);
  font:800 15px/1.15 var(--l-display); display:grid; justify-items:center; align-content:center; gap:2px;
}
.sv-lgl.sv-lgl .lgl-tabs button small{ font:700 11px/1 var(--l-body); letter-spacing:1px; text-transform:uppercase; color:var(--l-muted); }
/* annulla il :hover e il :focus verdi del kit: valgono anche al tocco */
.sv-lgl.sv-lgl .lgl-tabs button:hover,
.sv-lgl.sv-lgl .lgl-tabs button:focus{ background:transparent; color:var(--l-ink); }
.sv-lgl.sv-lgl .lgl-tabs button[aria-selected="true"],
.sv-lgl.sv-lgl .lgl-tabs button[aria-selected="true"]:hover,
.sv-lgl.sv-lgl .lgl-tabs button[aria-selected="true"]:focus{ background:#fff; color:var(--l-green); box-shadow:0 1px 3px rgba(41,50,65,.14); }
@media (hover: hover) and (pointer: fine){ .sv-lgl.sv-lgl .lgl-tabs button:not([aria-selected="true"]):hover{ background:rgba(255,255,255,.55); } }

/* ---------- corpo: indice · testo · società ---------- */
.sv-lgl.sv-lgl .lgl-body{
  max-width:1200px; margin:0 auto; padding:clamp(28px, 4cqw, 48px) var(--l-pad) 64px;
  display:grid; grid-template-columns:220px minmax(0,1fr) 240px; grid-template-areas:"toc doc co";
  gap:clamp(28px, 4cqw, 56px); align-items:start;
}
.sv-lgl.sv-lgl .lgl-body.no-toc{ grid-template-columns:minmax(0,1fr) 240px; grid-template-areas:"doc co"; }
.sv-lgl.sv-lgl .lgl-body.no-co{ grid-template-columns:220px minmax(0,1fr); grid-template-areas:"toc doc"; }
.sv-lgl.sv-lgl .lgl-body.no-toc.no-co{ grid-template-columns:minmax(0,1fr); grid-template-areas:"doc"; }
.sv-lgl.sv-lgl .lgl-toc{ grid-area:toc; position:sticky; top:calc(var(--l-top) + 20px); max-height:calc(100vh - var(--l-top) - 40px); overflow:auto; scrollbar-width:thin; }
.sv-lgl.sv-lgl .lgl-doc{ grid-area:doc; min-width:0; }
.sv-lgl.sv-lgl .lgl-co{ grid-area:co; position:sticky; top:calc(var(--l-top) + 20px); }

/* indice */
.sv-lgl.sv-lgl .lgl-toc-btn{ display:none; }
.sv-lgl.sv-lgl .lgl-toc-title{ margin:0 0 10px; font:800 12px/1 var(--l-display); letter-spacing:1.6px; text-transform:uppercase; color:var(--l-muted); }
.sv-lgl.sv-lgl .lgl-toc ol{ list-style:none; margin:0; padding:0; display:grid; gap:1px; border-left:2px solid var(--l-line); }
.sv-lgl.sv-lgl .lgl-toc li{ margin:0; padding:0; }
.sv-lgl.sv-lgl .lgl-toc ol a{ display:grid; grid-template-columns:22px 1fr; gap:4px; padding:6px 8px 6px 12px; margin-left:-2px; border-left:2px solid transparent; color:var(--l-muted); text-decoration:none; font-size:14px; line-height:1.3; }
.sv-lgl.sv-lgl .lgl-toc ol a > span:first-child{ font-weight:800; opacity:.7; font-variant-numeric:tabular-nums; }
.sv-lgl.sv-lgl .lgl-toc ol a[aria-current="true"]{ color:var(--l-green); border-left-color:var(--l-green); font-weight:700; background:linear-gradient(90deg, rgba(8,127,35,.07), transparent); }
.sv-lgl.sv-lgl .lgl-toc ol a.is-key{ color:var(--l-ink); font-weight:800; }
@media (hover: hover) and (pointer: fine){ .sv-lgl.sv-lgl .lgl-toc ol a:hover{ color:var(--l-ink); } }
.sv-lgl.sv-lgl .lgl-toc-foot{ margin:14px 0 0; padding-left:14px; }
.sv-lgl.sv-lgl .lgl-toc-foot a{ font-size:14px; font-weight:700; text-decoration:none; }

/* ---------- il testo: leggibile, righe corte ---------- */
.sv-lgl.sv-lgl .lgl-doc{ font-size:17px; line-height:1.68; color:#34404F; max-width:70ch; }
.sv-lgl.sv-lgl .lgl-doc h2{ margin:0 0 18px; font:900 clamp(20px, 2.2cqw, 26px)/1.2 var(--l-display); letter-spacing:-.01em; color:var(--l-ink); text-transform:none; text-wrap:balance; }
.sv-lgl.sv-lgl .lgl-doc h3{ display:flex; gap:12px; align-items:baseline; margin:44px 0 12px; font:800 21px/1.25 var(--l-display); color:var(--l-ink); text-transform:none; letter-spacing:0; scroll-margin-top:24px; text-wrap:balance; }
.sv-lgl.sv-lgl .lgl-doc h3 .n{ flex:none; min-width:30px; height:30px; padding:0 8px; border-radius:999px; display:inline-grid; place-items:center; background:var(--l-mint); color:var(--l-green); font:900 14px/1 var(--l-display); transform:translateY(-2px); }
.sv-lgl.sv-lgl .lgl-doc h4{ margin:28px 0 8px; font:800 17px/1.3 var(--l-display); color:var(--l-ink); text-transform:none; letter-spacing:0; }
.sv-lgl.sv-lgl .lgl-doc p{ margin:0 0 14px; }
.sv-lgl.sv-lgl .lgl-doc ul,
.sv-lgl.sv-lgl .lgl-doc ol{ margin:0 0 16px; padding-left:22px; }
.sv-lgl.sv-lgl .lgl-doc li{ margin:0 0 8px; padding-left:4px; }
.sv-lgl.sv-lgl .lgl-doc li::marker{ color:var(--l-green); }
.sv-lgl.sv-lgl .lgl-doc strong{ color:var(--l-ink); }
.sv-lgl.sv-lgl .lgl-doc :is(p, li){ overflow-wrap:anywhere; }
.sv-lgl.sv-lgl .lgl-panel > :first-child{ margin-top:0; }

/* Privacy §6: il diritto di opposizione, sempre aperto e staccato (GDPR art. 21.4) */
.sv-lgl.sv-lgl .lgl-key{ margin:40px 0; padding:22px 24px 10px; border-radius:18px; background:#F1FBF1; border:1.5px solid rgba(8,127,35,.35); box-shadow:0 10px 30px -18px rgba(8,127,35,.45); scroll-margin-top:24px; }
.sv-lgl.sv-lgl .lgl-key h3{ margin-top:4px; }
.sv-lgl.sv-lgl .lgl-doc .lgl-key-tag{ display:inline-flex; align-items:center; margin:0 0 8px; padding:5px 10px; border-radius:999px; background:var(--l-green); color:#fff; font:800 11px/1 var(--l-display); letter-spacing:1.2px; text-transform:uppercase; }

/* rimando alla Cookie Policy */
.sv-lgl.sv-lgl a[data-lgl="see"]{ display:flex; align-items:center; gap:14px; margin:36px 0 0; padding:16px 18px; border-radius:16px; background:var(--l-soft); border:1px solid var(--l-line); color:var(--l-ink); text-decoration:none; font-size:16px; line-height:1.35; }
.sv-lgl.sv-lgl a[data-lgl="see"] b{ display:block; font:800 16px/1.25 var(--l-display); }
.sv-lgl.sv-lgl a[data-lgl="see"] small{ color:var(--l-muted); font-size:14px; }
.sv-lgl.sv-lgl a[data-lgl="see"] i{ margin-left:auto; flex:none; width:36px; height:36px; border-radius:50%; background:#fff; border:1px solid var(--l-line); display:grid; place-items:center; color:var(--l-green); font-style:normal; font-weight:900; }
@media (hover: hover) and (pointer: fine){ .sv-lgl.sv-lgl a[data-lgl="see"]:hover{ border-color:rgba(8,127,35,.4); } }

/* crediti in fondo ai Termini */
.sv-lgl.sv-lgl .lgl-credits{ margin-top:56px; padding-top:28px; border-top:1px dashed var(--l-line); scroll-margin-top:24px; }
.sv-lgl.sv-lgl .lgl-credits h2{ font-size:22px; }

/* ---------- società ---------- */
.sv-lgl.sv-lgl .lgl-co-box{ padding:18px 18px 16px; border-radius:18px; background:var(--l-soft); border:1px solid var(--l-line); font-size:14px; line-height:1.5; color:var(--l-muted); }
.sv-lgl.sv-lgl .lgl-co-box h2{ margin:0 0 10px; font:800 12px/1 var(--l-display); letter-spacing:1.6px; text-transform:uppercase; color:var(--l-muted); }
.sv-lgl.sv-lgl .lgl-co-box p{ margin:0; }
.sv-lgl.sv-lgl .lgl-co-box .nm{ font:900 17px/1.25 var(--l-display); color:var(--l-ink); margin-bottom:6px; }
.sv-lgl.sv-lgl .lgl-co-box dl{ display:grid; grid-template-columns:auto 1fr; gap:3px 10px; margin:10px 0 12px; }
.sv-lgl.sv-lgl .lgl-co-box dt{ font-weight:700; color:var(--l-muted); margin:0; }
.sv-lgl.sv-lgl .lgl-co-box dd{ margin:0; color:var(--l-ink); font-variant-numeric:tabular-nums; }
.sv-lgl.sv-lgl .lgl-co-box a[data-lgl="mail"]{ display:flex; align-items:center; justify-content:center; min-height:44px; margin-top:12px; border-radius:999px; background:#fff; border:1px solid var(--l-line); color:var(--l-green); font:800 15px var(--l-display); text-decoration:none; }

/* ---------- cookie: il codice di CookieYes, com'è ---------- */
.sv-lgl.sv-lgl .lgl-cky{ min-width:0; }
.sv-lgl.sv-lgl .lgl-cky table{ width:100%; border-collapse:collapse; font-size:14px; line-height:1.4; }
.sv-lgl.sv-lgl .lgl-cset{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 16px; margin:28px 0 0; padding:16px 18px; border-radius:16px; background:var(--l-soft); border:1px solid var(--l-line); }
.sv-lgl.sv-lgl .lgl-cset p{ margin:0; flex:1 1 220px; font-size:15px; line-height:1.4; }
.sv-lgl.sv-lgl .lgl-cset button{ appearance:none; border:0; margin:0; cursor:pointer; white-space:normal; word-spacing:0; text-transform:none; letter-spacing:0; min-height:44px; padding:0 22px; border-radius:999px; background:var(--l-green); color:#fff; font:800 15px var(--l-display); }
.sv-lgl.sv-lgl .lgl-cset button:hover,
.sv-lgl.sv-lgl .lgl-cset button:focus{ background:var(--l-green); color:#fff; } /* annulla il :hover del kit: vale anche al tocco */
.sv-lgl.sv-lgl .lgl-missing{ margin:0; padding:14px 18px; border:2px dashed #C9D3CC; border-radius:12px; color:var(--l-muted); font:600 14px/1.4 var(--l-body); }

/* tocco: il premuto viene da shared.css (data-lgl e i bottoni); qui l'indice */
.sv-lgl.sv-lgl .lgl-toc ol a:active{ background:rgba(8,127,35,.08); }

/* ---------- telefono e tablet verticale: indice in alto, apribile ---------- */
@container svlgl (max-width:999px){
  .sv-lgl.sv-lgl .lgl-body,
  .sv-lgl.sv-lgl .lgl-body.no-co{ grid-template-columns:minmax(0,1fr); grid-template-areas:"toc" "doc" "co"; gap:0; padding-top:0; }
  .sv-lgl.sv-lgl .lgl-body.no-toc{ grid-template-columns:minmax(0,1fr); grid-template-areas:"doc" "co"; padding-top:28px; }
  .sv-lgl.sv-lgl .lgl-toc{
    position:sticky; top:var(--l-top); z-index:5; max-height:none; overflow:visible;
    margin:0 calc(-1 * var(--l-pad)) 22px; padding:10px var(--l-pad);
    background:rgba(255,255,255,.92); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); border-bottom:1px solid var(--l-line);
  }
  .sv-lgl.sv-lgl .lgl-toc-title{ display:none; }
  .sv-lgl.sv-lgl .lgl-toc-btn{
    appearance:none; display:flex; align-items:center; gap:10px; width:100%; min-height:46px; margin:0; padding:6px 8px 6px 14px;
    border:1px solid var(--l-line); border-radius:14px; background:#fff; color:var(--l-ink); cursor:pointer; text-align:left;
    white-space:normal; word-spacing:0; text-transform:none; letter-spacing:0; box-shadow:none; font:700 15px/1.2 var(--l-body);
  }
  .sv-lgl.sv-lgl .lgl-toc-btn:hover,
  .sv-lgl.sv-lgl .lgl-toc-btn:focus{ background:#fff; color:var(--l-ink); } /* annulla il :hover del kit */
  .sv-lgl.sv-lgl .lgl-toc-lbl{ flex:1; min-width:0; }
  .sv-lgl.sv-lgl .lgl-toc-btn small{ display:block; font:800 11px/1 var(--l-display); letter-spacing:1.2px; text-transform:uppercase; color:var(--l-muted); margin-bottom:3px; }
  .sv-lgl.sv-lgl .lgl-toc-btn .cur{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .sv-lgl.sv-lgl .lgl-toc-btn i{ flex:none; width:32px; height:32px; border-radius:10px; background:var(--l-mint); display:grid; place-items:center; transition:rotate .2s ease; }
  .sv-lgl.sv-lgl .lgl-toc-btn i::before{ content:""; width:8px; height:8px; border:solid var(--l-green); border-width:0 2px 2px 0; transform:translateY(-2px) rotate(45deg); }
  .sv-lgl.sv-lgl .lgl-toc.is-open .lgl-toc-btn i{ rotate:180deg; }
  .sv-lgl.sv-lgl .lgl-toc-panel{ display:none; }
  .sv-lgl.sv-lgl .lgl-toc.is-open .lgl-toc-panel{
    display:block; position:absolute; left:var(--l-pad); right:var(--l-pad); top:calc(100% - 4px);
    max-height:calc(100vh - var(--l-top) - 120px); max-height:calc(100dvh - var(--l-top) - 120px); overflow:auto; overscroll-behavior:contain;
    padding:12px 8px 14px; border-radius:16px; background:#fff; border:1px solid var(--l-line); box-shadow:0 24px 50px -20px rgba(41,50,65,.4);
  }
  .sv-lgl.sv-lgl .lgl-toc ol{ border-left:0; }
  .sv-lgl.sv-lgl .lgl-toc ol a{ min-height:44px; align-items:center; border-left:0; margin-left:0; border-radius:10px; padding:8px 10px; font-size:15px; }
  .sv-lgl.sv-lgl .lgl-toc ol a[aria-current="true"]{ background:#F1FBF1; }
  .sv-lgl.sv-lgl .lgl-toc-foot{ padding-left:10px; }
  .sv-lgl.sv-lgl .lgl-co{ position:static; margin-top:44px; }
  .sv-lgl.sv-lgl .lgl-tabs{ display:grid; width:100%; }
  .sv-lgl.sv-lgl .lgl-tabs button{ padding-inline:10px; }
  .sv-lgl.sv-lgl .lgl-doc{ font-size:16.5px; line-height:1.65; }
  .sv-lgl.sv-lgl .lgl-doc h3{ font-size:19px; margin-top:36px; scroll-margin-top:84px; }
  .sv-lgl.sv-lgl .lgl-key{ margin-inline:-6px; padding:18px 16px 6px; scroll-margin-top:84px; }
  .sv-lgl.sv-lgl .lgl-credits{ scroll-margin-top:84px; }
}

/* nell'editor l'indice non sta fermo (la pagina di Elementor scorre dentro un riquadro) */
.sv-lgl.sv-lgl.is-design :is(.lgl-toc, .lgl-co){ position:static; max-height:none; }

@media (prefers-reduced-motion: reduce){
  .sv-lgl.sv-lgl .lgl-toc-btn i{ transition:none; }
}
