/* Grafica pannello: struttura (da proposte/base.css) + tema Clean Pro (da proposte/b.css) */
/* Struttura comune alle proposte grafiche: i temi (a.css, b.css, c.css) definiscono solo token e stile. */
*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; min-height:100dvh; font:15px/1.5 var(--font); background:var(--bg); color:var(--ink); }
[hidden] { display:none !important; }

/* barra in alto + selettore proposte */
.top { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px clamp(16px, 4vw, 40px); }
.brand { display:inline-flex; align-items:center; gap:10px; color:var(--brand-ink, var(--ink)); text-decoration:none; font:700 19px/1 var(--font-display); letter-spacing:-.01em; }
.brand svg { width:30px; height:30px; flex:none; }
.brand b { color:var(--accent); font-weight:inherit; }
.switch { display:flex; gap:4px; padding:4px; border-radius:99px; background:var(--switch-bg); font-size:13px; }
.switch a { padding:5px 11px; border-radius:99px; color:var(--muted); text-decoration:none; font-weight:600; }
.switch a[aria-current] { background:var(--accent); color:var(--on-accent); }

main, .hero-in { width:min(920px, 100%); margin-inline:auto; padding-inline:clamp(14px, 4vw, 24px); }
main { padding-block:0 64px; }
.eyebrow { margin:0 0 10px; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
h1 { margin:0; font:800 clamp(30px, 6vw, 52px)/1.05 var(--font-display); letter-spacing:-.03em; text-wrap:balance; }
.sub { margin:12px 0 28px; color:var(--muted); font-size:clamp(15px, 2vw, 17px); text-wrap:pretty; }

.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(16px, 3vw, 28px); box-shadow:var(--shadow); }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap:16px; }
.wide { grid-column:1 / -1; }
label { display:block; margin-bottom:6px; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }

/* avanzamento: si accende da solo con :has() man mano che i campi vengono scelti */
.steps { display:flex; gap:6px; margin:0 0 22px; padding:0; list-style:none; }
.steps li { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; position:relative; padding-top:12px; font-size:12px; font-weight:600; color:var(--muted); }
.steps li::before { content:""; position:absolute; inset:0 0 auto; height:4px; border-radius:4px; background:var(--line);
                    transition:background .35s, box-shadow .35s; }
body:has(.ac[data-field=regione].done)   .steps [data-s=regione],
body:has(.ac[data-field=provincia].done) .steps [data-s=provincia],
body:has(.ac[data-field=comune].done)    .steps [data-s=comune],
body:has(.ac[data-field=via].done)       .steps [data-s=via],
body:has(.ac[data-field=civico].done)    .steps [data-s=civico] { color:var(--ink); }
body:has(.ac[data-field=regione].done)   .steps [data-s=regione]::before,
body:has(.ac[data-field=provincia].done) .steps [data-s=provincia]::before,
body:has(.ac[data-field=comune].done)    .steps [data-s=comune]::before,
body:has(.ac[data-field=via].done)       .steps [data-s=via]::before,
body:has(.ac[data-field=civico].done)    .steps [data-s=civico]::before { background:var(--grad); box-shadow:var(--glow); }
body:has(.ac[data-field=regione]:not(.done) input:not(:disabled))   .steps [data-s=regione],
body:has(.ac[data-field=provincia]:not(.done) input:not(:disabled)) .steps [data-s=provincia],
body:has(.ac[data-field=comune]:not(.done) input:not(:disabled))    .steps [data-s=comune],
body:has(.ac[data-field=via]:not(.done) input:not(:disabled))       .steps [data-s=via],
body:has(.ac[data-field=civico]:not(.done) input:not(:disabled))    .steps [data-s=civico] { color:var(--accent); }
body:has(.ac[data-field=regione]:not(.done) input:not(:disabled))   .steps [data-s=regione]::before,
body:has(.ac[data-field=provincia]:not(.done) input:not(:disabled)) .steps [data-s=provincia]::before,
body:has(.ac[data-field=comune]:not(.done) input:not(:disabled))    .steps [data-s=comune]::before,
body:has(.ac[data-field=via]:not(.done) input:not(:disabled))       .steps [data-s=via]::before,
body:has(.ac[data-field=civico]:not(.done) input:not(:disabled))    .steps [data-s=civico]::before {
  background:linear-gradient(90deg, var(--accent) 0 40%, var(--line) 40%); }
.steps i { font-style:normal; opacity:.6; margin-right:4px; }
@media (max-width:560px) { .steps em { display:none; } .steps i { opacity:1; } }

/* campi con suggerimenti */
.ac { position:relative; }
.ac input, dialog input:not([type=checkbox]) {
  width:100%; padding:13px 40px 13px 14px; font:inherit; font-size:16px; color:var(--ink);
  background:var(--field); border:1px solid var(--field-line); border-radius:calc(var(--radius) * .6);
  transition:border-color .2s, box-shadow .2s, background .2s; }
.ac input::placeholder, dialog input::placeholder { color:var(--placeholder, var(--muted)); opacity:.7; }
.ac input:disabled { opacity:.45; cursor:not-allowed; }
.ac input:focus, dialog input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 4px var(--focus); }
.ac.done input { border-color:var(--ok); padding-left:38px;
  background:var(--field) no-repeat 13px 50% / 16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E"); }
.ac .clear { position:absolute; right:6px; top:50%; translate:0 -50%; padding:6px 9px; border:0; border-radius:8px; background:none;
             color:var(--muted); font-size:20px; line-height:1; cursor:pointer; }
.ac .clear:hover { background:var(--hl); color:var(--ink); }
.ac ul { position:absolute; z-index:20; inset:calc(100% + 6px) 0 auto; margin:0; padding:6px; list-style:none;
         background:var(--menu); border:1px solid var(--line); border-radius:calc(var(--radius) * .6); box-shadow:var(--shadow-menu);
         max-height:min(300px, 45vh); overflow-y:auto; overscroll-behavior:contain;
         -webkit-backdrop-filter:var(--menu-blur, none); backdrop-filter:var(--menu-blur, none);
         animation:pop .16s ease-out; transform-origin:top; }
.ac li { padding:9px 12px; border-radius:8px; cursor:pointer; }
.ac li.active, .ac li:hover { background:var(--hl); }
.ac li mark { background:none; color:var(--accent); font-weight:700; }
.ac li.info { color:var(--muted); cursor:default; background:none; font-size:13px; }
.ac li small { margin-left:6px; color:var(--muted); }
@media (pointer:coarse) { .ac li { padding:13px 14px; } }

.err { margin-top:14px; color:var(--ko); font-weight:600; }
.muted { color:var(--muted); }

/* esito */
#esito:not(:empty) { margin-top:28px; }
.banner { position:relative; display:grid; gap:2px; padding:16px 20px 16px 58px; margin-bottom:16px; border-radius:var(--radius);
          font:700 18px/1.3 var(--font-display); animation:rise .45s cubic-bezier(.2,.8,.2,1) both; }
.banner::before { content:""; position:absolute; left:18px; top:18px; width:26px; height:26px; border-radius:50%;
                  background:currentColor; -webkit-mask:var(--ico) center / 16px no-repeat, linear-gradient(#000 0 0);
                  -webkit-mask-composite:xor; mask:var(--ico) center / 16px no-repeat exclude, linear-gradient(#000 0 0); }
.banner small { font:400 14px/1.4 var(--font); color:var(--ink); opacity:.8; }
.banner.ok   { background:var(--ok-bg); color:var(--ok);
               --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E"); }
.banner.ko   { background:var(--ko-bg); color:var(--ko);
               --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E"); }
.banner.wait { background:var(--wait-bg); color:var(--wait);
               --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M12 6v7l4 2'/%3E%3C/svg%3E"); }
.banner .link-contatti { justify-self:start; margin-top:8px; padding:0; border:0; background:none; font:600 14px var(--font);
                         color:var(--accent); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }

.profili { display:grid; gap:16px; }
.profilo { --tec:var(--accent); position:relative; overflow:hidden; container-type:inline-size;
           padding:clamp(16px, 3vw, 24px); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
           box-shadow:var(--shadow); animation:rise .5s cubic-bezier(.2,.8,.2,1) both; }
.profilo:nth-child(2) { animation-delay:.08s; } .profilo:nth-child(3) { animation-delay:.16s; } .profilo:nth-child(n+4) { animation-delay:.24s; }
.profilo[data-tec=FTTH]  { --tec:var(--c-ftth); }
.profilo[data-tec=FWA]   { --tec:var(--c-fwa); }
.profilo[data-tec=EVDSL] { --tec:var(--c-evdsl); }
.profilo[data-tec=FTTC]  { --tec:var(--c-fttc); }
.profilo.ko { --tec:var(--ko); } .profilo.wait { --tec:var(--wait); }
.p-head { display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px; margin-bottom:18px; }
.p-id { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.p-tec { padding:3px 10px; border-radius:99px; font-size:12px; font-weight:800; letter-spacing:.06em; color:var(--tec);
         background:color-mix(in srgb, var(--tec) 14%, transparent); border:1px solid color-mix(in srgb, var(--tec) 35%, transparent); }
.p-nome { font:700 clamp(17px, 2.6vw, 21px)/1.2 var(--font-display); letter-spacing:-.01em; overflow-wrap:anywhere; }
.p-right { margin-left:auto; }
.p-pcn { font-size:12px; color:var(--muted); }
.p-pcn b { padding:4px 9px; border-radius:7px; background:var(--hl); color:var(--ink); font:600 12px/1 ui-monospace, "SF Mono", Menlo, Consolas, monospace; overflow-wrap:anywhere; }
.p-pcn b:empty { display:none; }

/* velocita' con barra: scala radice quadrata (20 Mbps resta visibile, 1000 Mbps = piena) */
.p-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap:14px 22px; }
.p-grid label { margin-bottom:2px; }
.p-grid b { display:block; font:800 clamp(26px, 5vw, 36px)/1.1 var(--font-display); letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.p-grid b span { font:600 13px var(--font); color:var(--muted); letter-spacing:0; }
.p-grid > div { --v:0; }
.profilo > .p-grid > div:nth-child(1) { --v:var(--down); }
.profilo > .p-grid > div:nth-child(2) { --v:var(--up); }
.p-grid.small > div:nth-child(1) { --v:var(--ldown); }
.p-grid.small > div:nth-child(2) { --v:var(--lup); }
/* come la linea in cima alla scheda: trasparente ai lati, colore pieno al centro */
.p-grid > div:nth-child(-n+2)::after { content:""; display:block; height:2px; margin-top:10px;
  background:linear-gradient(90deg, transparent, var(--tec), transparent) no-repeat 0 0 / var(--w, 0%) 100%,
             linear-gradient(90deg, transparent, var(--track) 20% 80%, transparent);
  --w:calc(min(var(--v) / 10, 100) * 1%); animation:fill 1s .25s cubic-bezier(.2,.8,.2,1) both; }
@supports (width:calc(sqrt(4) * 1%)) { .p-grid > div:nth-child(-n+2)::after { --w:calc(min(sqrt(var(--v) / 1000), 1) * 100%); } }
.p-linea { margin-top:20px; padding-top:16px; border-top:1px dashed var(--line); }
.p-ltit { margin-bottom:10px; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.p-grid.small b { font-size:clamp(18px, 3.4vw, 22px); }
.p-foot { display:flex; justify-content:flex-end; margin-top:18px; }
.pill { display:inline-block; max-width:100%; padding:6px 12px; border-radius:99px; font-size:13px; font-weight:700; text-align:right; }
.pill.ok { background:var(--ok-bg); color:var(--ok); } .pill.ko { background:var(--ko-bg); color:var(--ko); } .pill.wait { background:var(--wait-bg); color:var(--wait); }
@container (max-width:380px) { .p-right { margin-left:0; } .p-foot { justify-content:flex-start; } .pill { text-align:left; } }

/* contatti */
.btn-contatti { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:6px; width:100%; margin-top:22px; padding:18px;
                font:inherit; font-size:15px; color:var(--ink); background:var(--cta-bg); border:1px dashed var(--cta-line);
                border-radius:var(--radius); cursor:pointer; transition:transform .2s, background .2s, border-color .2s; }
.btn-contatti b { color:var(--accent); }
.btn-contatti b::after { content:" →"; display:inline-block; transition:translate .2s; }
.btn-contatti:hover { border-style:solid; border-color:var(--accent); transform:translateY(-1px); }
.btn-contatti:hover b::after { translate:4px 0; }

dialog { width:min(660px, calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:0; border:1px solid var(--line); border-radius:var(--radius);
         background:var(--surface-solid, var(--surface)); color:var(--ink); box-shadow:0 30px 80px rgba(0,0,0,.35); }
dialog[open] { animation:pop .22s cubic-bezier(.2,.8,.2,1); }
dialog::backdrop { background:var(--backdrop); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
dialog form, .dlg-ok { padding:clamp(18px, 4vw, 28px); }
.dlg-head { display:flex; align-items:center; justify-content:space-between; }
.dlg-head h2, .dlg-ok h2 { margin:0; font:800 22px/1.2 var(--font-display); letter-spacing:-.02em; }
.dlg-x { padding:4px 10px; border:0; border-radius:8px; background:none; color:var(--muted); font-size:26px; line-height:1; cursor:pointer; }
.dlg-x:hover { background:var(--hl); }
.dlg-sub { margin:6px 0 18px; color:var(--muted); font-size:14px; }
dialog input:not([type=checkbox]) { padding-right:14px; }
fieldset { margin:18px 0 0; padding:0; border:0; }
legend { margin-bottom:10px; padding:0; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.chk { display:flex; align-items:flex-start; gap:10px; margin:14px 0 0; font-size:15px; font-weight:500; letter-spacing:0; text-transform:none; color:var(--ink); cursor:pointer; }
.chk input { flex:none; width:20px; height:20px; margin:1px 0 0; accent-color:var(--accent); }
.hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.dlg-foot { display:flex; justify-content:flex-end; margin-top:20px; }
.btn-primario { min-width:170px; padding:13px 22px; border:0; border-radius:99px; font:700 15px var(--font); color:var(--on-accent);
                background:var(--grad); box-shadow:var(--glow); cursor:pointer; transition:transform .2s, filter .2s; }
.btn-primario:hover { transform:translateY(-1px); filter:brightness(1.08); }
.btn-primario:disabled { opacity:.6; cursor:default; transform:none; }
.dlg-ok h2::before { content:"✓"; display:grid; place-items:center; width:48px; height:48px; margin-bottom:14px; border-radius:50%;
                     background:var(--ok-bg); color:var(--ok); font-size:24px; }

.foot { padding:24px 16px 32px; text-align:center; font-size:12px; color:var(--muted); }

@keyframes rise { from { opacity:0; transform:translateY(14px) scale(.985); } }
@keyframes pop  { from { opacity:0; transform:scale(.97); } }
@keyframes fill { from { background-size:0% 100%, auto; } }
@media (max-width:520px) { .btn-primario { width:100%; } }
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } }
/* Proposta B — "Clean Pro": chiaro, istituzionale da operatore, ombre morbide e fascia blu in testa */
:root {
  color-scheme:light;
  --font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display:"Segoe UI Variable Display", "SF Pro Display", system-ui, sans-serif;
  --bg:#f3f6fb; --ink:#0f1a33; --muted:#5d6b88; --line:#e3e8f1;
  --surface:#fff; --menu:#fff; --field:#f8fafd; --field-line:#d9e0ec; --hl:#eef3ff; --track:#edf1f7;
  --accent:#1463ff; --on-accent:#fff; --focus:rgba(20,99,255,.15);
  --grad:linear-gradient(100deg, #1463ff, #3b82f6); --glow:0 6px 16px rgba(20,99,255,.28);
  --ok:#0f8a5f; --ok-bg:#e5f6ee; --ko:#c2261d; --ko-bg:#fdecea; --wait:#9a6100; --wait-bg:#fff4dc;
  --c-ftth:#1463ff; --c-fwa:#0891b2; --c-evdsl:#ea580c; --c-fttc:#d97706;
  --radius:16px; --shadow:0 1px 2px rgba(15,26,51,.04), 0 8px 24px rgba(15,26,51,.06); --shadow-menu:0 16px 40px rgba(15,26,51,.14);
  --switch-bg:rgba(255,255,255,.14); --cta-bg:#fff; --cta-line:#b7c7ef; --backdrop:rgba(15,26,51,.4);
}
/* fascia blu con griglia a puntini, la scheda di ricerca ci si sovrappone */
.bg { position:absolute; inset:0 0 auto; z-index:-1; height:clamp(340px, 52vw, 420px);
      background:radial-gradient(rgba(255,255,255,.16) 1px, transparent 1.5px) 0 0 / 22px 22px,
                 radial-gradient(ellipse at 85% 0%, #4f8bff 0%, transparent 55%),
                 linear-gradient(160deg, #0b3fd1, #1463ff 55%, #2d7bff);
      clip-path:ellipse(120% 100% at 50% 0%); }
body { position:relative; }
.top { --ink:#fff; --muted:rgba(255,255,255,.75); --accent:#fff; --on-accent:#0b3fd1; color:#fff; }
.brand b { color:#a9c6ff; }
.hero { color:#fff; padding-block:clamp(8px, 4vw, 28px) 4px; }
.hero .eyebrow { color:#bcd3ff; }
.hero .sub { color:rgba(255,255,255,.82); }
.hero-in { text-align:center; }
.hero .sub { margin-inline:auto; max-width:46ch; }
.search { border:0; box-shadow:0 2px 4px rgba(15,26,51,.04), 0 24px 60px rgba(11,63,209,.18); }
.profilo { border-top:4px solid var(--tec); }
.p-tec { color:#fff; background:var(--tec); border-color:transparent; }
.banner { border:1px solid color-mix(in srgb, currentColor 20%, transparent); }
.btn-primario { border-radius:12px; }
.brand { --logo-1:#7fb0ff; --logo-2:#0b3fd1; }

/* nuova ricerca: attivo solo quando c'e' qualcosa da azzerare */
.search-foot { display:flex; justify-content:flex-end; margin-top:18px; }
.btn-nuova { display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border:1px solid var(--field-line); border-radius:99px;
             background:var(--field); color:var(--ink); font:600 14px var(--font); cursor:pointer; transition:border-color .2s, background .2s, opacity .2s; }
.btn-nuova svg { width:16px; height:16px; transition:rotate .4s; }
.btn-nuova:hover { border-color:var(--accent); background:var(--hl); }
.btn-nuova:hover svg { rotate:-180deg; }
.search:not(:has(.ac.done, .ac input:not(:placeholder-shown))) .btn-nuova { opacity:.4; pointer-events:none; }
@media (max-width:520px) { .btn-nuova { width:100%; justify-content:center; } }

/* intestazione bianca con il marchio SpeedMap (icona SVG + scritta): la fascia blu parte sotto */
.top { position:relative; background:#fff; box-shadow:0 1px 0 rgba(15,26,51,.06); color:#0f1a33; }
.brand { color:#0f1a33; font:800 24px/1 var(--font-display); letter-spacing:-.03em; }
.brand img { display:block; width:36px; height:36px; flex:none; }
.brand b { color:#1463ff; }
.brand small { margin-left:1px; font-size:.68em; font-weight:600; letter-spacing:0; color:#5d6b88; }
@media (max-width:520px) { .brand { font-size:21px; } .brand img { width:30px; height:30px; } }
.bg { height:clamp(400px, calc(52vw + 60px), 480px); }

/* piè di pagina con i dati della società; link legali nel piè di pagina e nel consenso privacy */
.foot p { margin:0 auto 6px; max-width:80ch; text-wrap:balance; }
.foot p:last-child { margin-bottom:0; }
.foot b { color:var(--ink); font-weight:600; }
.foot a { color:inherit; text-underline-offset:2px; }
.foot a:hover { color:var(--accent); }
.chk a { color:var(--accent); text-underline-offset:2px; }

/* pagina informativa (cookie policy) */
.pagina-doc main { padding-block:clamp(20px, 4vw, 40px) 48px; }
.doc { max-width:760px; margin-inline:auto; line-height:1.65; }
.doc h1 { font-size:clamp(28px, 5vw, 40px); }
.doc h2 { margin:28px 0 6px; font:700 18px/1.3 var(--font-display); }
.doc p { margin:0 0 10px; max-width:68ch; }
.doc a { color:var(--accent); text-underline-offset:2px; }
.doc code { font-size:.92em; padding:1px 6px; border-radius:6px; background:var(--hl); }
.doc-agg { color:var(--muted); font-size:13px; margin-top:8px !important; }
.doc-tab { overflow-x:auto; margin:12px 0 4px; border:1px solid var(--line); border-radius:12px; }
.doc-tab table { width:100%; min-width:560px; border-collapse:collapse; font-size:14px; }
.doc-tab th, .doc-tab td { padding:10px 14px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); }
.doc-tab th { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); background:var(--field); }
.doc-tab tr:last-child td { border-bottom:0; }
.doc-back { margin-top:28px !important; }

/* banner consenso cookie: Accetta e Rifiuta con lo stesso peso */
.cookie-banner { position:fixed; z-index:50; left:50%; translate:-50% 0; bottom:calc(16px + env(safe-area-inset-bottom, 0px));
                 width:min(760px, calc(100% - 24px)); display:flex; flex-wrap:wrap; align-items:center; gap:14px 20px;
                 padding:16px 18px; border-radius:16px; background:var(--surface); color:var(--ink);
                 box-shadow:0 2px 6px rgba(15,26,51,.08), 0 20px 50px rgba(15,26,51,.22); border:1px solid var(--line); }
.cookie-banner p { flex:1 1 320px; margin:0; font-size:14px; line-height:1.5; color:var(--muted); }
.cookie-banner p b { color:var(--ink); margin-right:6px; }
.cookie-banner a { color:var(--accent); text-underline-offset:2px; white-space:nowrap; }
.cookie-azioni { display:flex; gap:10px; flex:0 0 auto; }
.cookie-azioni button { min-width:112px; padding:10px 18px; border-radius:12px; border:0; cursor:pointer;
                        font:600 14px var(--font); background:var(--accent); color:var(--on-accent); }
.cookie-azioni button:hover { filter:brightness(1.08); }
.cookie-azioni button:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
@media (max-width:520px) { .cookie-azioni { width:100%; } .cookie-azioni button { flex:1; } }

/* pagine pubbliche per regione / provincia / comune (web/seo.py) e link alle regioni in home */
.briciole { max-width:760px; margin:0 auto 14px; font-size:13px; color:var(--muted); overflow-wrap:anywhere; }
.briciole a { color:inherit; text-underline-offset:2px; }
.briciole a:hover { color:var(--accent); }
.briciole [aria-current] { color:var(--ink); font-weight:600; }
.pagina-seo .doc ul { padding-left:20px; margin:0 0 10px; }
.pagina-seo .doc li { margin-bottom:4px; }
.tec-griglia { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:12px; margin:20px 0; }
.tec-scheda { --tec:var(--accent); display:grid; gap:4px; align-content:start; padding:14px 16px; border:1px solid var(--line);
              border-radius:calc(var(--radius) * .7); background:var(--field); }
.tec-scheda b { font:800 24px/1.15 var(--font-display); letter-spacing:-.02em; white-space:nowrap; }
.tec-scheda b small { display:block; font:600 12px/1.4 var(--font); letter-spacing:0; color:var(--muted); }
.tec-scheda span:not(.tec-badge) { font-size:13px; color:var(--muted); }
.tec-scheda i { height:5px; margin-top:6px; border-radius:5px; background:linear-gradient(90deg, var(--tec) 0 var(--p), var(--line) var(--p)); }
.tec-badge { --tec:var(--accent); justify-self:start; display:inline-block; margin:0 4px 2px 0; padding:2px 8px; border-radius:99px;
             font-size:11px; font-weight:800; letter-spacing:.06em; color:var(--tec);
             background:color-mix(in srgb, var(--tec) 14%, transparent); border:1px solid color-mix(in srgb, var(--tec) 35%, transparent); }
[data-tec=ftth] { --tec:var(--c-ftth); } [data-tec=fwa] { --tec:var(--c-fwa); }
[data-tec=evdsl] { --tec:var(--c-evdsl); } [data-tec=vdsl] { --tec:var(--c-fttc); }
.seo-cta { margin:22px 0 8px !important; }
.seo-cta .btn-primario { display:inline-block; text-decoration:none; color:var(--on-accent); }
.doc-tab .seo-tab { min-width:0; }
.seo-tab .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.doc ul.seo-link, .seo-home .seo-link { display:flex; flex-wrap:wrap; gap:6px 18px; padding:0; list-style:none; }
.seo-link small { color:var(--muted); }
.seo-home { margin-top:36px; color:var(--muted); font-size:14px; }
.seo-home h2 { margin:0 0 6px; font:700 17px/1.3 var(--font-display); color:var(--ink); }
.seo-home p { margin:0 0 10px; max-width:68ch; }
.seo-home a { color:var(--accent); text-underline-offset:2px; }
.seo-home .seo-link:empty { display:none; }
