    /* =========================
      RESET / BASE
    ========================= */
    *{ box-sizing:border-box; }
    html,body{ margin:0; padding:0; }
    body{
     font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
     line-height:1.5;
     color:#111;
     background:#fff;
    }
    a{ color:inherit; }
    img{ max-width:100%; height:auto; display:block; }
    
    .container{
     width:min(1100px, 92%);
     margin:0 auto;
    }
    
    .section{ padding:22px 0; }
    .section-light{ background:#f7f9fb; }
     /* ===============================
      LOGHI PARTNER / USATO
      (Mac + iPad uniformati)
    ================================ */
    
    .used-logos img,
    .brand-logos img,
    .logo-grid img,
    .logos-grid img,
    .partner-logos img {
     width: 100%;
     max-height: 120px;   /* prova 110-140 se vuoi più grande/piccolo */
     height: auto;
     object-fit: contain;
     display: block;
     margin: 0 auto;
    }
   
    /* =========================
      HEADER TOP (barra blu)
    ========================= */
    .site-header{
     background:#1f5fa8;
     color:#fff;
    }
    .site-header .header-inner{
     display:flex;
     align-items:center;
     justify-content:space-between;
     gap:16px;
     padding:10px 14px;
    }
    
    /* switch lingua in alto a destra */
    .site-header .lang-switch{
     display:flex;
     align-items:center;
     justify-content:flex-end;
     gap:8px;
     font-size:14px;
     font-weight:700;
     white-space:nowrap;
    }
    .site-header .lang-switch a{
     color:#cfe6ff;
     text-decoration:none;
     opacity:.85;
    }
    .site-header .lang-switch a.active{
     opacity:1;
     text-decoration:underline;
    }
    .site-header .lang-switch span{ opacity:.6; }
    
    /* loghi + testo */
    .site-header .logo-box{
     display:flex;
     align-items:center;
     gap:16px;
     min-width:0;
    }
    .site-header .logo-box img{
     height:46px; /* base */
     width:auto;
    }
    .site-header .logo-box img.logo-regex{
     height:38px; /* RegEx un po' pi첫 piccolo */
    }
    .site-header .logo-text-wrap{
     display:flex;
     flex-direction:column;
     line-height:1.15;
    }
    .site-header .logo-text{
     font-weight:800;
     letter-spacing:.5px;
     font-size:20px;
    }
    .site-header .header-sub{
     font-size:13px;
     opacity:.9;
     margin-top:2px;
    }
    
    /* =========================
      NAVBAR
    ========================= */
    nav{
     background:#f0f2f6;
     border-bottom:1px solid #dde1ea;
    }
    .topbar{ padding:10px 0; }
    
    .brand{
     font-weight:800;
     color:#0b2f57;
     letter-spacing:.4px;
    }
    
    .navwrap{
     display:flex;
     align-items:center;
     justify-content:space-between;
     gap:14px;
    }
    
    .nav{
     display:flex;
     flex-wrap:wrap;
     gap:12px;
    }
    .nav a{
     color:#0b2f57;
     text-decoration:none;
     font-weight:700;
     padding:6px 8px;
     border-radius:8px;
    }
    .nav a:hover{ background:#e7ecf6; }
    .nav a.active{ background:#0c3c78; color:#fff; }
    
    .text-link{
     color:#0c3c78;
     font-weight:700;
     text-decoration:underline;
    }
    
    /* =========================
      HERO
    ========================= */
    main{ padding:26px 0; }
    
    .hero-wrapper{
     background:#f7f9fb;
     padding:26px 0;
     border-radius:14px;
    }
    .hero{
     display:grid;
     gap:10px;
    }
    .hero h1{
     margin:0;
     font-size:36px;
     line-height:1.12;
    }
    .hero p{
     margin:0;
     color:#333;
     max-width:820px;
    }
    
    /* bottoni */
    .btn{
     display:inline-block;
     padding:10px 14px;
     border-radius:10px;
     text-decoration:none;
     font-weight:800;
     border:1px solid transparent;
    }
    .btn-primary{
     background:#0c3c78;
     color:#fff;
    }
    .btn-primary:hover{ filter:brightness(.95); }
    .btn-secondary{
     background:#fff;
     border-color:#cfd7e6;
     color:#0b2f57;
    }
    .btn-secondary:hover{ background:#f3f6fb; }
    
    /* =========================
      GRID / CARD
    ========================= */
    .grid{
     display:flex;
     gap:18px;
     flex-wrap:wrap;
    }
    .grid .card{
     flex: 1 1 320px;
     background:#fff;
     border:1px solid #e2e2e2;
     border-radius:14px;
     padding:16px 18px;
     box-shadow:0 8px 18px rgba(0,0,0,.04);
    }
    .card h3{ margin:0 0 8px; }
    .card p{ margin:0; color:#333; }
    
    /* =========================
      REGEX MAP (se usato)
    ========================= */
    .regex-layout{
     display:grid;
     grid-template-columns: 1fr;
     gap:18px;
    }
    .regex-map img{
     width:100%;
     border-radius:12px;
     border:1px solid #e6e6e6;
    }
    .map-note{
     font-size:13px;
     color:#555;
     margin:10px 0 0;
    }
    
      /* PARTNER / BRANDS (Loghi) */
    .brand-section{ padding: 12px 0; }
    
    .brand-grid{
     display:grid;
     grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
     gap: 16px;
    }
    
    .brand-card{
     background:#fff;
     border:1px solid #e2e2e2;
     border-radius:14px;
     padding:12px 14px;
     box-shadow:0 8px 18px rgba(0,0,0,.04);
     display:block;     /* importante */
     height:auto;       /* importante */
     text-decoration:none;
    }
    
    .brand-logo-wrap{
     display:flex;
     align-items:center;
     justify-content:center;
     min-height:110px;  /* ok */
     height:auto;       /* importante */
    }
    
    .brand-logo-wrap img{
     max-height:90px;
     max-width:100%;
     width:auto;
     height:auto;
     object-fit:contain;
    }      
        /* SoluTop leggermente pi첫 piccolo */
        .brand-card img.solutop-logo{
         max-height:60px;
        }
    
    /* =========================
      CONTACT FORM (se usato)
    ========================= */
    .contact-form{
     margin-top:12px;
     display:grid;
     gap:10px;
     max-width:560px;
    }
    .contact-form label{
     font-weight:700;
    }
    .contact-form input,
    .contact-form textarea{
     width:100%;
     padding:10px 12px;
     border-radius:10px;
     border:1px solid #cfd7e6;
     font:inherit;
    }
    .contact-form textarea{ min-height:120px; }
    .contact-form button{
     padding:10px 14px;
     border-radius:10px;
     border:0;
     background:#0c3c78;
     color:#fff;
     font-weight:800;
     cursor:pointer;
    }
    .contact-form button:hover{ filter:brightness(.95); }
    
    /* =========================
      FOOTER (striscia azzurra + contenuto)
    ========================= */
    .site-footer{
     margin-top:28px;
     color:#fff;
     background:#0b2f57; /* blu scuro footer */
    }
    
    /* striscia ragione sociale (azzurra) */
    .site-footer .company-strip{
     background:#0c3c78;
     padding:10px 0;
     font-weight:800;
     letter-spacing:.2px;
    }
    
    /* riga contenuti */
    .site-footer .footer-inner{
     padding:18px 0;
    }
    .site-footer .footer-inner .container{
     display:flex;
     justify-content:space-between;
     gap:14px;
     flex-wrap:wrap;
     font-size:14px;
     opacity:.95;
    }
    .site-footer a{ color:#cfe6ff; text-decoration:underline; }
    
    /* =========================
      WHATSAPP FLOAT (tutte le pagine)
    ========================= */
    .whatsapp-float{
     position:fixed;
     right:18px;
     bottom:18px;
     z-index:9999;
    }
    .whatsapp-float a{
     width:54px;
     height:54px;
     border-radius:50%;
     display:flex;
     align-items:center;
     justify-content:center;
     text-decoration:none;
     font-weight:900;
     letter-spacing:.5px;
     background:#25D366;
     color:#fff;
     box-shadow:0 10px 22px rgba(0,0,0,.22);
    }
    .whatsapp-float a:hover{ filter:brightness(.95); }
    
    /* =========================
      RESPONSIVE
    ========================= */
    @media (max-width: 980px){
     .navwrap{ flex-direction:column; align-items:flex-start; }
     .site-header .header-inner{ flex-direction:column; align-items:flex-start; }
     .site-header .lang-switch{ justify-content:flex-start; }
    }
    
    @media (max-width: 520px){
     .site-header .logo-box{ flex-wrap:wrap; }
     .hero h1{ font-size:30px; }
    }
    /* ================================
  PARTNER TECNICI – MINI CSS
  ================================ */

/* sezione */
.brand-section {
 padding: 12px 0;
}

/* griglia */
.brand-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
 gap: 16px;
}

/* CARD */
.brand-card {
 background: #fff;
 border: 1px solid #e5e5e5;
 border-radius: 12px;
 padding: 12px;
 box-shadow: 0 6px 14px rgba(0,0,0,0.04);
 transition: transform .2s ease, box-shadow .2s ease;
 text-decoration: none;
}

.brand-card:hover {
 transform: translateY(-2px);
 box-shadow: 0 10px 22px rgba(0,0,0,0.06);
}

/* CONTENITORE LOGO */
.brand-logo-wrap {
 display: flex;
 align-items: center;
 justify-content: center;
 height: 90px;              /* <<< riduce altezza card */
}

/* LOGHI */
.brand-logo-wrap img {
 max-height: 55px;          /* <<< dimensione standard */
 max-width: 100%;
 width: auto;
 height: auto;
 object-fit: contain;
}

/* SOLUTOP leggermente più grande */
.brand-logo-wrap img.solutop-logo {
 max-height: 65px;
}

/* TOPCON leggermente più compatto */
.brand-logo-wrap img.topcon-logo {
 max-height: 50px;
}
/* =========================
  CONTACTS (form verticale)
  ========================= */
.contact-grid{
 display:grid;
 grid-template-columns: 1fr 1fr;
 gap: 22px;
 margin: 18px 0 34px;
}
.contact-card{
 background:#fff;
 border:1px solid #e7e7e7;
 border-radius:14px;
 padding:18px 18px;
 box-shadow:0 8px 18px rgba(0,0,0,.04);
}
.contact-details{ margin-top:12px; line-height:1.75; }

.contact-form{
 display:grid;
 grid-template-columns: 1fr 1fr;
 gap: 14px 16px;
 margin-top: 10px;
}
.contact-form label{ display:block; font-weight:600; }
.contact-form input,
.contact-form textarea{
 width:100%;
 margin-top:6px;
 padding:12px 12px;
 border:1px solid #d9d9d9;
 border-radius:10px;
 font-size:16px;
}
.contact-form textarea{ resize:vertical; min-height:160px; }
.contact-form .full{ grid-column: 1 / -1; }
.contact-form button{ justify-self:start; padding:10px 16px; }

@media (max-width: 980px){
 .contact-grid{ grid-template-columns:1fr; }
 .contact-form{ grid-template-columns:1fr; }
}

/* =========================
  USED PAGE (filtri / cards / modal)
  ========================= */
.filters{ display:flex; flex-wrap:wrap; gap:10px; margin:14px 0 10px; }
.chip{
 border:1px solid #d8d8d8;
 background:#fff;
 padding:8px 12px;
 border-radius:999px;
 cursor:pointer;
 font-size:14px;
}
.chip.active{ border-color:#1d4ed8; color:#1d4ed8; }

.used-section{ margin: 18px 0 26px; }
.used-grid{
 display:grid;
 grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
 gap: 14px;
 margin-top: 10px;
}
.used-card{
 background:#fff;
 border:1px solid #e7e7e7;
 border-radius:14px;
 padding:16px 16px;
 box-shadow:0 8px 18px rgba(0,0,0,.04);
}
.used-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.used-head h3{ margin:0; font-size:18px; }
.tag{
 font-size:12px;
 padding:6px 10px;
 border-radius:999px;
 border:1px solid #e5e5e5;
 background:#fafafa;
 white-space:nowrap;
}
.price{ font-weight:700; margin:10px 0 0; }
.actions{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }

.muted{ color:#666; }
.crumbs{ margin:10px 0 0; }
.crumbs .dot{ margin:0 8px; color:#999; }

/* Modal */
.modal{
 position:fixed; inset:0;
 background:rgba(0,0,0,.55);
 display:none;
 align-items:center;
 justify-content:center;
 padding:18px;
 z-index: 9999;
}
.modal.open{ display:flex; }
.modal-card{
 width:min(980px, 100%);
 background:#fff;
 border-radius:14px;
 overflow:hidden;
}
.modal-head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 padding:12px 14px;
 border-bottom:1px solid #eee;
}
.modal-close{
 border:0;
 background:transparent;
 font-size:22px;
 cursor:pointer;
 line-height:1;
}
.modal-body{
 display:grid;
 grid-template-columns: 1fr 1fr;
 gap: 16px;
 padding: 14px;
}
.modal-img img{
 width:100%;
 height:auto;
 border-radius:12px;
 border:1px solid #eee;
}
.modal-price{ font-weight:800; margin:8px 0; }
.specs{ margin:10px 0 0; padding-left:18px; }
.btnrow{ display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }

@media (max-width: 860px){
 .modal-body{ grid-template-columns:1fr; }
}

/* =========================
  PARTNER LOGOS (card più piccole)
  ========================= */
.brand-section{ padding: 12px 0; }
.brand-grid{
 display:grid;
 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
 gap: 16px;
}
.brand-card{
 background:#fff;
 border:1px solid #e2e2e2;
 border-radius:14px;
 padding:12px 14px;
 box-shadow:0 8px 18px rgba(0,0,0,.04);
 display:block;
 text-decoration:none;
}
.brand-logo-wrap{
 display:flex;
 align-items:center;
 justify-content:center;
 min-height: 110px;
}
.brand-logo-wrap img{
 max-height: 90px !important;
 max-width: 100% !important;
 height:auto !important;
 width:auto !important;
 object-fit:contain;
}
    /* ===============================
      USATO – layout card desktop/tablet
    ================================ */
    
    .used-grid{
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
     gap: 18px;
    }
    
    .used-card{
     background: #fff;
     border: 1px solid #e2e2e2;
     border-radius: 14px;
     padding: 16px;
     box-shadow: 0 8px 18px rgba(0,0,0,.04);
     display: flex;
     flex-direction: column;
    }
    
    .used-card .price{
     font-weight: 700;
     margin: 8px 0;
    }
    
    .used-card .actions{
     margin-top: auto;
     display: flex;
     gap: 8px;
     flex-wrap: wrap;
    }
    /* === FIX LOGHI BRAND (Products EN) === */
    
    .brand-strip {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
     gap: 24px;
    }
    
    .brand-item {
     background: #fff;
     border: 1px solid #e5e5e5;
     border-radius: 14px;
     padding: 18px;
     text-align: center;
    }
    
    /* contenitore logo */
    .brand-item a {
     display: flex;
     align-items: center;
     justify-content: center;
     min-height: 120px;
    }
    
    /* LOGHI – limite reale */
    .brand-item img {
     max-height: 80px;
     max-width: 100%;
     width: auto;
     height: auto;
     object-fit: contain;
    }
    
    /* testo sotto */
    .brand-item span {
     display: block;
     margin-top: 12px;
     font-size: 0.95rem;
     color: #333;
    }
    /* ==== FIX BOTTONI PRODOTTI / LASER / TOTAL STATION ==== */

.product-actions{
display:flex;
flex-wrap:wrap;
gap:10px;
align-items:center;
margin-top:14px;
}

.product-actions .btn{
display:inline-flex;
align-items:center;
justify-content:center;
padding:10px 16px;
line-height:1;
border-radius:12px;
text-decoration:none;
white-space:nowrap;
}

.btn-outline{
border:1px solid rgba(0,0,0,.25);
background:transparent;
}

.btn-ghost{
background:transparent;
border:0;
opacity:.9;
}
/* ===== LASER / TOTAL STATION BUTTON DESIGN ===== */

.laser-actions{
 display:flex;
 gap:14px;
 flex-wrap:wrap;
 align-items:center;
 margin-top:18px;
}

.laser-actions .btn{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 padding:11px 20px;
 border-radius:14px;
 font-weight:600;
 letter-spacing:.2px;
 text-decoration:none;
 transition:.25s;
}

/* Official hub */
.laser-actions .btn-secondary{
 border:1px solid rgba(0,0,0,.25);
 background:#f7f7f7;
 color:#222;
}

.laser-actions .btn-secondary:hover{
 background:#002f6c;
 color:white;
 border-color:#002f6c;
}

/* Request info */
.laser-actions .btn-primary{
 background:#002f6c;
 color:white;
 box-shadow:0 8px 18px rgba(0,47,108,.25);
}

.laser-actions .btn-primary:hover{
 background:#001f49;
}

/* Rental */
.laser-actions .btn-ghost{
 background:transparent;
 color:#555;
 border:0;
}

.laser-actions .btn-ghost:hover{
 color:#002f6c;
}

