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

  .btn,.btn *{
    text-shadow:none !important;
    background-image:none !important;
  }

  .btn-primary,
  .btn.btn-primary,
  a.btn-primary,
  button.btn-primary,
  input.btn-primary,
  .nav > a.cta,
  .nav .cta,
  .hero-shell .btn-primary,
  .public-form button[type="submit"]{
    background:var(--brand) !important;
    background-color:var(--brand) !important;
    border:1px solid var(--brand-strong) !important;
    color:#fff !important;
    box-shadow:0 10px 24px rgba(var(--brand-rgb),.18) !important;
  }

  .btn-primary:hover,
  .btn.btn-primary:hover,
  a.btn-primary:hover,
  button.btn-primary:hover,
  input.btn-primary:hover,
  .nav > a.cta:hover,
  .nav .cta:hover,
  .hero-shell .btn-primary:hover,
  .public-form button[type="submit"]:hover{
    background:var(--brand-strong) !important;
    background-color:var(--brand-strong) !important;
    border-color:var(--brand-strong) !important;
    color:#fff !important;
  }

  .btn-secondary,
  .btn.btn-secondary,
  a.btn-secondary,
  button.btn-secondary,
  .btn-soft{
    background:var(--brand-wash) !important;
    background-color:var(--brand-wash) !important;
    border:1px solid rgba(var(--brand-rgb),.22) !important;
    color:var(--brand-strong) !important;
    box-shadow:none !important;
  }

  .btn-secondary:hover,
  .btn.btn-secondary:hover,
  a.btn-secondary:hover,
  button.btn-secondary:hover,
  .btn-soft:hover{
    background:var(--brand-ghost) !important;
    background-color:var(--brand-ghost) !important;
    border-color:rgba(var(--brand-rgb),.30) !important;
    color:var(--brand-strong) !important;
  }

  input,select,textarea{
    background:#fff !important;
    border:1px solid rgba(var(--brand-rgb),.20) !important;
    color:var(--ink-strong) !important;
  }

  input:focus,select:focus,textarea:focus{
    border-color:var(--brand) !important;
    box-shadow:0 0 0 4px rgba(var(--brand-rgb),.10) !important;
    outline:none !important;
  }

  a:not(.btn){ color:var(--brand-strong); }
  a:not(.btn):hover{ color:var(--brand); }

  footer,.site-footer,.public-footer{
    background:var(--footer-bg) !important;
    border-top:1px solid var(--line) !important;
    color:var(--ink) !important;
  }

  footer h2,footer h3,footer h4,footer .eyebrow,
  .site-footer h2,.site-footer h3,.site-footer h4,.site-footer .eyebrow,
  .public-footer h2,.public-footer h3,.public-footer h4,.public-footer .eyebrow{
    color:var(--brand-strong) !important;
  }

  /* FOOTER FINAL OVERRIDE — usa token tema (var --footer-bg, --brand-*, --ink, --card*) */
  .footer{
    margin-top:42px !important;
    padding:0 0 26px !important;
    background:var(--footer-bg) !important;
    border-top:1px solid var(--line) !important;
  }

  .footer-grid{
    display:grid !important;
    grid-template-columns:minmax(330px,1.18fr) minmax(160px,.58fr) minmax(170px,.62fr) minmax(170px,.62fr) !important;
    gap:24px !important;
    align-items:start !important;
    padding:30px !important;
    border-radius:30px !important;
    background:linear-gradient(135deg, var(--card), var(--card-soft)) !important;
    border:1px solid rgba(var(--brand-rgb), .14) !important;
    box-shadow:var(--shadow-soft) !important;
  }

  .footer-grid > div{
    min-width:0 !important;
  }

  .footer-grid > div:not(:first-child){
    padding-left:20px !important;
    border-left:1px solid rgba(var(--brand-rgb), .10) !important;
  }

  .footer-brand{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:14px !important;
  }

  .footer-logo img{
    width:128px !important;
    max-width:128px !important;
    height:auto !important;
  }

  .footer-brand-text{
    max-width:400px !important;
    font-size:14px !important;
    line-height:1.65 !important;
    color:var(--muted) !important;
  }

  .footer-cta-row{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:10px !important;
    margin-top:12px !important;
  }

  .footer-cta{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:40px !important;
    padding:0 16px !important;
    border-radius:999px !important;
    font-size:14px !important;
    font-weight:800 !important;
    text-decoration:none !important;
    border:1px solid rgba(var(--brand-rgb), .18) !important;
    background:var(--card) !important;
    color:var(--brand-strong) !important;
    white-space:nowrap !important;
  }

  .footer-cta-primary,
  .footer-cta-primary:visited,
  .footer-cta-primary:hover{
    background:var(--brand-strong) !important;
    color:#fff !important;
    border-color:var(--brand-strong) !important;
  }

  .footer h4{
    margin:0 0 14px !important;
    font-size:12px !important;
    text-transform:uppercase !important;
    letter-spacing:.16em !important;
    color:var(--brand-strong) !important;
    font-weight:800 !important;
  }

  .footer .stack{
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
  }

  .footer .stack a{
    padding:8px 0 !important;
    border-bottom:1px solid rgba(var(--brand-rgb), .07) !important;
    color:var(--ink) !important;
    text-decoration:none !important;
    font-size:14px !important;
  }

  .footer .stack a:last-child{
    border-bottom:0 !important;
  }

  .footer-bottom{
    margin-top:16px !important;
    display:flex !important;
    justify-content:space-between !important;
    gap:14px !important;
    color:var(--muted) !important;
    font-size:12px !important;
    padding:0 4px !important;
  }

  @media (max-width:900px){
    .footer-grid{
      grid-template-columns:1fr !important;
      padding:22px !important;
      gap:22px !important;
    }

    .footer-grid > div:not(:first-child){
      padding-left:0 !important;
      border-left:0 !important;
    }

    .footer-bottom{
      flex-direction:column !important;
    }
  }

  .footer-link-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border-radius:999px;
    margin-right:8px;
    background:rgba(var(--brand-rgb), .09);
    color:var(--brand-strong);
    font-size:12px;
    font-weight:800;
    flex:0 0 auto;
  }

  .footer .stack a{
    display:flex !important;
    align-items:center !important;
  }

  .footer-cta::before{
    content:"→";
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    border-radius:999px;
    margin-right:8px;
    background:rgba(var(--brand-rgb), .10);
    color:var(--brand-strong);
    font-size:12px;
  }

  .footer-cta-primary::before{
    background:rgba(255,255,255,.18);
    color:#fff;
  }

  /* /FOOTER FINAL OVERRIDE */

/* STEP 00 — telaio pubblico: accessibilità, header/footer premium, responsive base. */
  :root{
    --portal-header-pad: clamp(10px, 1.2vw, 16px);
    --portal-shell-blur: 18px;
  }

  .skip-link{
    position:absolute;
    left:16px;
    top:-80px;
    z-index:99999;
    padding:12px 16px;
    border-radius:999px;
    background:var(--brand-strong);
    color:#fff !important;
    font-weight:800;
    box-shadow:var(--shadow-strong);
    transition:top .18s ease;
  }
  .skip-link:focus{top:14px;}

  .topbar{
    background:rgba(255,255,255,.82) !important;
    border-bottom:1px solid rgba(var(--brand-rgb),.12) !important;
    box-shadow:0 12px 34px rgba(15,23,42,.055) !important;
    -webkit-backdrop-filter:blur(var(--portal-shell-blur));
    backdrop-filter:blur(var(--portal-shell-blur));
  }

  .topbar-inner{
    min-height:auto !important;
    padding:var(--portal-header-pad) 0 !important;
  }

  .brand{
    min-width:0 !important;
    flex:0 0 auto !important;
  }

  .brand-logo{
    width:auto !important;
    height:auto !important;
    max-height:72px !important;
    max-width:min(260px, 26vw) !important;
    filter:drop-shadow(0 10px 22px rgba(15,107,75,.10));
  }

  .portal-topbar{
    align-items:center !important;
    grid-template-columns:minmax(240px,1.18fr) minmax(148px,.70fr) minmax(140px,.64fr) minmax(360px,auto) !important;
    gap:10px !important;
  }

  .portal-col-search input,
  .portal-col-stack select,
  .portal-col-stack input{
    border-color:rgba(var(--brand-rgb),.16) !important;
    background:rgba(255,255,255,.92) !important;
    box-shadow:0 8px 20px rgba(15,23,42,.035) !important;
  }

  .portal-col-search input:focus,
  .portal-col-stack select:focus,
  .portal-col-stack input:focus{
    border-color:var(--brand) !important;
    box-shadow:0 0 0 4px rgba(var(--brand-rgb),.10), 0 10px 22px rgba(15,23,42,.045) !important;
  }

  .portal-actions-row .btn,
  .portal-save-row .btn{
    white-space:nowrap !important;
  }

  .page{
    padding-top:clamp(18px,2.1vw,34px) !important;
  }

  .container{
    width:min(calc(100% - clamp(28px, 4vw, 56px)), var(--max)) !important;
  }

  .footer-grid{
    position:relative;
    overflow:hidden;
  }
