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

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

    @media (max-width: 820px){
      .topbar-inner{
        display: flex !important;
        flex-direction: column;
        align-items: stretch !important;
        gap: 12px !important;
        padding-top: 10px;
        padding-bottom: 10px;
      }

      .brand{
        justify-content: center;
      }

      .nav{
        justify-content: flex-start;
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
        scrollbar-width: none;
        -ms-overflow-style: none;
      }

      .nav::-webkit-scrollbar{
        display: none;
      }

      .nav > a{
        flex: 0 0 auto;
      }
    }

    @media (max-width: 560px){
      .topbar-inner{
        min-height: unset !important;
      }

      .nav{
        gap: 8px;
      }

      .nav > a{
        min-height: 38px;
        padding: 0 11px;
        font-size: 12px;
      }

      .nav > a.cta{
        padding: 0 12px;
      }
    }

    .topbar{
      position: sticky;
      top: 0;
      z-index: 5000 !important;
    }

    .leaflet-container{
      z-index: 1 !important;
    }

    .leaflet-pane,
    .leaflet-tile,
    .leaflet-marker-icon,
    .leaflet-marker-shadow,
    .leaflet-overlay-pane,
    .leaflet-shadow-pane,
    .leaflet-marker-pane,
    .leaflet-tooltip-pane,
    .leaflet-popup-pane{
      z-index: 1 !important;
    }

    .leaflet-top,
    .leaflet-bottom,
    .leaflet-control{
      z-index: 2 !important;
    }

    .leaflet-control-container{
      z-index: 2 !important;
    }

    /* ===== SELECT: stesso look degli input ===== */
    .public-form select,
    select.ui-input,
    select{
      -webkit-appearance: none;
      appearance: none;
      background-color: #ffffff !important;
      color: var(--ink-strong) !important;
      border: 1px solid var(--line) !important;
      border-radius: 14px !important;
      min-height: 46px;
      width: 100%;
      padding: 0 44px 0 14px !important;
      box-shadow: none !important;
      background-image: linear-gradient(45deg, transparent 50%, var(--brand-strong) 50%),
                        linear-gradient(135deg, var(--brand-strong) 50%, transparent 50%);
      background-position: calc(100% - 20px) calc(50% - 3px),
                           calc(100% - 14px) calc(50% - 3px);
      background-size: 6px 6px, 6px 6px;
      background-repeat: no-repeat;
    }

    .public-form select:hover,
    select.ui-input:hover,
    select:hover{
      border-color: #d7b2aa !important;
      background-color: #ffffff !important;
    }

    .public-form select:focus,
    select.ui-input:focus,
    select:focus{
      outline: none !important;
      border-color: var(--brand) !important;
      box-shadow: 0 0 0 4px rgba(216, 78, 46, .10) !important;
      background-color: #ffffff !important;
    }

    .public-form select option,
    select option{
      color: var(--ink-strong);
      background: #ffffff;
    }

  
  /* Fine tuning finale portale */
  .portal-alert-save-box{
    background: var(--card-soft) !important;
    background-image: none !important;
    border: 1px solid var(--line) !important;
    box-shadow: var(--shadow-soft) !important;
  }
  .portal-alert-save-box,
  .portal-alert-save-box p,
  .portal-alert-save-box div,
  .portal-alert-save-box span{
    color: var(--ink) !important;
  }
  .portal-alert-save-box-title{
    color: var(--ink-strong) !important;
    font-weight: 800 !important;
  }

  /* Popup/preview mappa leaflet */
  .leaflet-popup-content-wrapper,
  .leaflet-popup-tip{
    background: var(--card) !important;
    color: var(--ink) !important;
    box-shadow: var(--shadow-soft) !important;
    border: 1px solid var(--line) !important;
  }

  .leaflet-popup-content,
  .leaflet-popup-content p,
  .leaflet-popup-content div,
  .leaflet-popup-content span{
    color: var(--ink) !important;
  }

  .leaflet-popup-content h1,
  .leaflet-popup-content h2,
  .leaflet-popup-content h3,
  .leaflet-popup-content h4,
  .leaflet-popup-content strong{
    color: var(--ink-strong) !important;
  }

  .leaflet-popup-content .btn,
  .leaflet-popup-content a.btn,
  .leaflet-popup-content .btn-primary,
  .leaflet-popup-content a.btn-primary{
    background: var(--brand) !important;
    background-image: none !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;
  }

  .leaflet-popup-content .btn:hover,
  .leaflet-popup-content a.btn:hover,
  .leaflet-popup-content .btn-primary:hover,
  .leaflet-popup-content a.btn-primary:hover{
    background: var(--brand-strong) !important;
    background-image: none !important;
    background-color: var(--brand-strong) !important;
    border-color: var(--brand-strong) !important;
    color: #fff !important;
  }

  /* Se qualche sticky usa classi comuni */
  .portal-sticky-col,
  .portal-sticky-box,
  .results-sticky,
  .filters-sticky,
  .map-sticky{
    top: calc(var(--topbar-h) + 34px) !important;
  }


    @media (min-width: 861px){
      .footer{
        margin-top:48px !important;
        padding:28px 0 36px !important;
      }

      .footer-grid{
        display:grid !important;
        grid-template-columns:1.4fr .8fr .8fr !important;
        gap:28px !important;
        align-items:start !important;
        padding:24px !important;
        border-radius:24px !important;
      }

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

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

      .footer-brand-text{
        max-width:360px !important;
        font-size:14px !important;
        line-height:1.55 !important;
      }
    }

.nav-toggle,
  .mobile-menu-panel{
    display:none;
  }

  @media (max-width: 860px){
    .topbar{
      padding-top:10px !important;
      padding-bottom:10px !important;
    }

    .topbar-inner{
      min-height:auto !important;
      display:flex !important;
      flex-direction:column !important;
      align-items:center !important;
      justify-content:flex-start !important;
      gap:12px !important;
      flex-wrap:nowrap !important;
    }

    .brand{
      width:100% !important;
      justify-content:center !important;
      margin:0 !important;
    }

    .brand img{
      max-width:min(88vw, 520px) !important;
      height:auto !important;
      max-height:92px !important;
    }

    #portalGlobalTopbarForm,
    form#portalGlobalTopbarForm,
    .nav.portal-topbar{
      display:none !important;
    }

    .nav-toggle{
      display:flex !important;
      align-items:center !important;
      justify-content:center !important;
      min-height:42px !important;
      padding:0 16px !important;
      border-radius:999px !important;
      border:1px solid rgba(var(--brand-rgb),.24) !important;
      background:#fff !important;
      color:var(--brand-strong) !important;
      font-weight:700 !important;
      font-size:15px !important;
      margin:0 auto !important;
      box-shadow:0 8px 22px rgba(15,23,42,.06) !important;
    }

    .mobile-menu-panel{
      display:none;
      width:100%;
    }

    .mobile-menu-panel.is-open{
      display:block !important;
    }

    .mobile-menu-card{
      margin-top:10px;
      border:1px solid rgba(var(--brand-rgb),.16);
      border-radius:24px;
      background:rgba(255,255,255,.96);
      box-shadow:0 18px 40px rgba(15,23,42,.08);
      padding:14px;
    }

    .mobile-menu-filters{
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
    }

    .mobile-menu-filters input,
    .mobile-menu-filters select{
      width:100%;
      min-height:46px;
      height:46px;
      border-radius:999px;
      padding:0 14px;
      border:1px solid rgba(var(--brand-rgb),.16);
      background:#fff;
      color:var(--ink-strong);
      font-size:14px;
      box-sizing:border-box;
      outline:none;
      appearance:none;
      -webkit-appearance:none;
    }

    .mobile-menu-filters .btn{
      width:100% !important;
      min-height:46px !important;
      justify-content:center !important;
      text-align:center !important;
      padding:0 14px !important;
      box-sizing:border-box !important;
    }

    .mobile-menu-user{
      margin-top:12px;
      text-align:center;
      font-weight:800;
      color:var(--ink-strong);
      font-size:15px;
      line-height:1.35;
    }

    .mobile-menu-actions{
      margin-top:12px;
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
    }

    .mobile-menu-actions .btn{
      width:100% !important;
      min-height:46px !important;
      justify-content:center !important;
      text-align:center !important;
      padding:0 14px !important;
      box-sizing:border-box !important;
    }
  }

html, body{ color:var(--ink) !important; background:var(--page-bg) !important; }
  body, p, li, span, label, small, input, select, textarea{ color:var(--ink) !important; }
  h1,h2,h3,h4,h5,h6,strong{ color:var(--ink-strong) !important; }
  .muted,.lead,.ui-subtle,.helptext,.hint{ color:var(--muted) !important; }
  .eyebrow,.kicker,.section-kicker{ color:var(--brand-strong) !important; }

  .hero-shell{
    background:var(--hero-bg) !important;
    border:1px solid var(--line) !important;
    box-shadow:var(--shadow-soft) !important;
  }

  .card,.soft-card,.public-card,.ui-card,.ui-panel,.section .card{
    background:var(--card) !important;
    border:1px solid var(--line) !important;
    box-shadow:var(--shadow-soft) !important;
  }

  .soft-card{ background:var(--card-soft) !important; }

  .pill,.badge,.tag{
    background:var(--brand-ghost) !important;
    border:1px solid rgba(var(--brand-rgb),.18) !important;
    color:var(--brand-strong) !important;
  }

