/* Auto-generated by scripts/css_mechanical_split.py
   Source: portal-base-public.css
   Part 3/3 - load order critical.
   Do not reorder or merge without re-running the splitter. */

  .footer-grid:before{
    content:"";
    position:absolute;
    inset:-1px auto auto -1px;
    width:46%;
    height:4px;
    background:linear-gradient(90deg,var(--brand),rgba(var(--brand-rgb),.12));
    border-top-left-radius:30px;
    pointer-events:none;
  }
  .footer .stack a{
    transition:color .16s ease, transform .16s ease, border-color .16s ease;
  }
  .footer .stack a:hover{
    transform:translateX(3px);
  }

  @media (max-width:1280px){
    .portal-topbar{
      grid-template-columns:minmax(220px,1fr) minmax(132px,.62fr) minmax(132px,.62fr) 1fr !important;
    }
    .brand-logo{max-width:min(220px, 25vw) !important; max-height:64px !important;}
  }

  @media (max-width:860px){
    .container{width:min(calc(100% - 28px), var(--max)) !important;}
    .topbar{position:sticky !important;}
    .brand-logo{max-width:min(72vw, 300px) !important; max-height:72px !important;}
    .mobile-menu-card{
      border-radius:24px !important;
      background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(246,251,248,.96)) !important;
      box-shadow:0 18px 44px rgba(15,23,42,.10) !important;
    }
    .mobile-menu-actions{grid-template-columns:1fr !important;}
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto !important;}
    *,*:before,*:after{transition:none !important; animation:none !important;}
  }

/* GDPR P1 / A.3 — riga checkbox consenso privacy nei form pubblici.
   Sovrascrive le regole .public-form label (display:block + uppercase +
   letter-spacing) per la label del consenso: deve essere leggibile in
   normal case accanto alla checkbox, NON come header di campo. */
.consent-row{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  margin-top:18px;
  padding:12px 14px;
  background:rgba(15,23,42,0.03);
  border:1px solid rgba(15,23,42,0.08);
  border-radius:10px;
}
/* Override critico: .public-form input ha "width:100% !important" che
   ingrandisce anche la checkbox al 100% del .consent-row, spingendo la
   label all'estremo destro. Forziamo dimensioni esatte. */
.consent-row input[type="checkbox"],
.public-form .consent-row input[type="checkbox"]{
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  padding:0 !important;
  margin:2px 0 0 0 !important;
  flex:0 0 18px !important;
  border:1px solid #94a3b8 !important;
  background:#fff !important;
  border-radius:4px !important;
  accent-color:var(--accent, #d44a2c);
  cursor:pointer;
  box-sizing:border-box !important;
}
.consent-row label,
.public-form .consent-row label{
  display:inline !important;
  margin:0 !important;
  padding:0 !important;
  font-size:13px !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  font-family:inherit !important;
  color:#374151 !important;
  line-height:1.5 !important;
  cursor:pointer;
}
.consent-row label a{
  color:var(--accent, #d44a2c);
  text-decoration:underline;
  font-weight:600;
}
.consent-row label a:hover{
  text-decoration:none;
}
.consent-error{
  margin-top:6px;
  color:#b91c1c;
  font-size:12px;
}

/* Focus tastiera (WCAG): link pagine legali, bottoni, logo */
.legal-page a:focus-visible,
.topbar .brand:focus-visible,
.btn:focus-visible,
button:focus-visible{
  outline:2px solid var(--brand, #0f6b4d);
  outline-offset:3px;
}
