/* Cookie consent banner and preferences modal.
   Colours, radii and type all come from the shared core tokens, so this reads
   as part of the site rather than as a third-party widget dropped on top. */

.cc-banner{position:fixed;left:20px;bottom:20px;z-index:120;width:min(380px,calc(100vw - 40px));
  padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-lg);font-size:var(--fs-sm);color:var(--muted)}
.cc-banner .cc-title{font-size:var(--fs-md);color:var(--ink);margin:0 0 10px}
.cc-banner .cc-body{margin:0 0 16px;line-height:1.7}
.cc-banner a{color:var(--teal);font-weight:600;text-decoration:underline}
.cc-actions{display:flex;gap:10px}
.cc-actions .cc-btn{flex:1}

.cc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 16px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-sm);
  font-weight:700;cursor:pointer}
.cc-btn:hover{border-color:var(--teal)}
.cc-btn-primary{background:var(--teal);border-color:var(--teal);color:var(--bg)}
.cc-btn-primary:hover{background:var(--teal-deep);border-color:var(--teal-deep)}
.cc-btn-quiet{width:100%;margin-top:10px;background:transparent;border-color:transparent;
  color:var(--muted);font-weight:600}
.cc-btn-quiet:hover{color:var(--teal);border-color:var(--line)}

.cc-overlay{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;
  padding:24px;background:color-mix(in srgb,var(--navy) 55%,transparent)}
.cc-modal{width:min(560px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:26px;
  background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
  font-size:var(--fs-sm);color:var(--muted)}
.cc-modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}
.cc-modal .cc-title{font-size:var(--fs-lg);color:var(--ink);margin:0}
.cc-close{background:transparent;border:0;color:var(--muted);font-size:26px;line-height:1;
  padding:0 4px;cursor:pointer}
.cc-close:hover{color:var(--ink)}

.cc-group{padding:18px 0;border-top:1px solid var(--line)}
.cc-group-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}
.cc-group h3{margin:0;font-size:var(--fs-base);color:var(--ink)}
.cc-group p{margin:0;line-height:1.7}
.cc-always{font-size:var(--fs-xs);font-weight:700;color:var(--teal);background:var(--teal-soft);
  border-radius:var(--r-pill);padding:4px 10px;white-space:nowrap}

/* The analytics switch. It is unchecked on load and stays unchecked through
   «Solo necessari» — a pre-ticked box is not consent. */
.cc-switch{position:relative;flex-shrink:0;width:44px;height:26px;cursor:pointer}
.cc-switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.cc-slider{position:absolute;inset:0;background:var(--line);border-radius:var(--r-pill);
  transition:background .15s ease;pointer-events:none}
.cc-slider::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;
  background:var(--surface);border-radius:50%;box-shadow:var(--shadow);transition:transform .15s ease}
.cc-switch input:checked + .cc-slider{background:var(--teal)}
.cc-switch input:checked + .cc-slider::after{transform:translateX(18px)}
.cc-switch input:focus-visible + .cc-slider{outline:2px solid var(--teal);outline-offset:2px}

.cc-modal-foot{display:flex;gap:10px;padding-top:18px;border-top:1px solid var(--line)}
.cc-modal-foot .cc-btn{flex:1}

@media(max-width:520px){
  .cc-banner{left:12px;right:12px;bottom:12px;width:auto;padding:18px}
  .cc-actions{flex-direction:column}
  .cc-modal-foot{flex-direction:column}
}

@media(prefers-reduced-motion:reduce){
  .cc-slider,.cc-slider::after{transition:none}
}

/* The way back into the choice, on every footer's copyright line («© 2026
   Custodo  Preferenze cookie»): the line's own size and colour, no underline,
   like the footer's other links — it is a footer item, not a call to action. */
.cc-footer-link{margin:0 0 0 18px;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer}
.cc-footer-link:hover{color:var(--teal)}
.cc-footer-link:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:2px}
/* A footer with no copyright line (the API reference's) keeps it as a line of its own. */
.cc-footer-line{margin:18px 0 0;padding:0}
.cc-footer-line button{background:none;border:0;padding:0;font:inherit;font-size:var(--fs-xs);
  color:var(--muted);text-decoration:underline;cursor:pointer}
.cc-footer-line button:hover{color:var(--teal)}
