/* ============================================================
   Italmeca S.r.l. — tema personalizzato su Bootstrap 5
   ============================================================ */

:root{
  --im-blue:      #0b2f5e;
  --im-blue-700:  #12437f;
  --im-blue-300:  #2f7fd4;
  --im-accent:    #ff7a18;
  --im-accent-700:#e5650a;
  --im-ink:       #12181f;
  --im-muted:     #5d6b7a;
  --im-line:      #e3e8ee;
  --im-bg-soft:   #f5f7fa;
  --im-radius:    14px;
  --im-shadow:    0 10px 30px rgba(11,47,94,.08);
  --im-shadow-lg: 0 18px 50px rgba(11,47,94,.16);
}

*{ scroll-behavior:smooth }

body{
  font-family:'Inter',system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--im-ink);
  background:#fff;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,h5,h6{ font-weight:700; letter-spacing:-.02em }
a{ text-decoration:none }
.text-muted-2{ color:var(--im-muted) }

/* ---------- Topbar ---------- */
.topbar{
  background:var(--im-blue);
  color:#cfe0f5;
  font-size:.83rem;
  padding:.45rem 0;
}
.topbar a{ color:#cfe0f5 }
.topbar a:hover{ color:#fff }

/* ---------- Navbar ---------- */
.nav-main{
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--im-line);
  padding:.65rem 0;
  transition:box-shadow .25s ease;
}
.nav-main.scrolled{ box-shadow:0 6px 24px rgba(11,47,94,.10) }

.navbar-brand{ display:flex; align-items:center; gap:.85rem }
.logo-img{
  height:46px;width:auto;display:block;
}
.logo-claim{
  font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--im-muted);padding-left:.85rem;border-left:1px solid var(--im-line);
  line-height:1.3;max-width:9rem;
}
/* Logo su fondo scuro: pastiglia bianca per garantire il contrasto */
.footer-logo{
  display:inline-block;background:#fff;border-radius:12px;padding:.7rem 1rem;
}
.footer-logo img{ height:42px;width:auto;display:block }

.nav-main .nav-link{
  font-weight:600;font-size:.95rem;color:#2b3542;padding:.5rem .9rem;border-radius:8px;
}
.nav-main .nav-link:hover{ color:var(--im-blue); background:var(--im-bg-soft) }
.nav-main .nav-link.active{ color:var(--im-blue-300) }
.dropdown-menu{
  border:1px solid var(--im-line);border-radius:12px;
  box-shadow:var(--im-shadow);padding:.4rem;
}
.dropdown-item{ border-radius:8px;font-size:.92rem;padding:.5rem .8rem }

/* ---------- Bottoni ---------- */
.btn{ border-radius:10px;font-weight:600;padding:.6rem 1.15rem }
.btn-accent{
  background:var(--im-accent);border:0;color:#fff;
  box-shadow:0 6px 18px rgba(255,122,24,.32);
}
.btn-accent:hover{ background:var(--im-accent-700);color:#fff }
.btn-blue{ background:var(--im-blue);border:0;color:#fff }
.btn-blue:hover{ background:var(--im-blue-700);color:#fff }
.btn-outline-light-blue{ border:1.5px solid rgba(255,255,255,.55);color:#fff }
.btn-outline-light-blue:hover{ background:#fff;color:var(--im-blue) }

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;color:#fff;
  background:
    radial-gradient(1100px 500px at 78% 12%, rgba(47,127,212,.55), transparent 60%),
    linear-gradient(135deg,#071f3e 0%,#0b2f5e 45%,#123e78 100%);
  padding:5.5rem 0 5rem;
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:radial-gradient(70% 70% at 30% 40%,#000,transparent);
}
.hero .container{ position:relative;z-index:2 }
.hero h1{ font-size:clamp(2.1rem,4.2vw,3.5rem);line-height:1.08 }
.hero .lead{ color:#c8dcf5;font-size:1.08rem;max-width:44ch }
.eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:#7fb6f2;background:rgba(127,182,242,.12);
  border:1px solid rgba(127,182,242,.28);
  border-radius:999px;padding:.35rem .9rem;margin-bottom:1.1rem;
}
.hero-img{
  border-radius:18px;background:#fff;padding:1rem;
  box-shadow:var(--im-shadow-lg);
}
.hero-stats{ border-top:1px solid rgba(255,255,255,.15);margin-top:2.6rem;padding-top:1.6rem }
.hero-stats .num{ font-size:1.9rem;font-weight:800;color:#fff;line-height:1 }
.hero-stats .lbl{ font-size:.8rem;color:#9dbfe6;text-transform:uppercase;letter-spacing:.08em }

/* ---------- Sezioni ---------- */
.section{ padding:4.5rem 0 }
.section-soft{ background:var(--im-bg-soft) }
.section-title{ max-width:660px;margin:0 auto 2.8rem;text-align:center }
.section-title .eyebrow{ color:var(--im-blue-300);background:rgba(47,127,212,.09);border-color:rgba(47,127,212,.2) }
.section-title h2{ font-size:clamp(1.65rem,3vw,2.3rem) }
.section-title p{ color:var(--im-muted);margin-bottom:0 }

/* ---------- Card prodotto ---------- */
.card-prod{
  height:100%;border:1px solid var(--im-line);border-radius:var(--im-radius);
  background:#fff;overflow:hidden;transition:.25s ease;
}
.card-prod:hover{ transform:translateY(-5px);box-shadow:var(--im-shadow-lg);border-color:transparent }
.card-prod .thumb{
  height:190px;display:grid;place-items:center;background:var(--im-bg-soft);padding:1rem;
}
.card-prod .thumb img{ max-height:100%;max-width:100%;object-fit:contain;mix-blend-mode:multiply }
.card-prod .body{ padding:1.3rem }
.badge-sigla{
  display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.1em;
  color:#fff;border-radius:6px;padding:.22rem .6rem;margin-bottom:.7rem;
}
.card-prod h3{ font-size:1.08rem;margin-bottom:.5rem }
.card-prod p{ font-size:.92rem;color:var(--im-muted);margin-bottom:1rem }
.card-prod .more{ font-weight:700;font-size:.9rem;color:var(--im-blue-300) }
.card-prod .more i{ transition:transform .2s }
.card-prod:hover .more i{ transform:translateX(4px) }

/* ---------- Card servizio ---------- */
.card-serv{
  height:100%;background:#fff;border:1px solid var(--im-line);
  border-radius:var(--im-radius);padding:1.7rem;transition:.25s ease;
}
.card-serv:hover{ box-shadow:var(--im-shadow);border-color:rgba(47,127,212,.35);transform:translateY(-3px) }
.card-serv .ico{
  width:50px;height:50px;border-radius:12px;display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(11,47,94,.94),rgba(47,127,212,.9));
  color:#fff;font-size:1.3rem;margin-bottom:1rem;
}
.card-serv h3{ font-size:1.05rem }
.card-serv p{ font-size:.92rem;color:var(--im-muted);margin-bottom:0 }

/* ---------- Feature list ---------- */
.feat-list{ list-style:none;padding:0;margin:0 }
.feat-list li{ position:relative;padding-left:1.9rem;margin-bottom:.7rem;color:#374453 }
.feat-list li::before{
  content:"\F26E";font-family:"bootstrap-icons";position:absolute;left:0;top:-.05rem;
  color:var(--im-accent);font-size:1.05rem;
}

/* ---------- Tabelle tecniche ---------- */
.tab-tech{ border:1px solid var(--im-line);border-radius:var(--im-radius);overflow:hidden }
.tab-tech table{ margin:0;font-size:.875rem;white-space:nowrap }
.tab-tech thead th{
  background:var(--im-blue);color:#fff;font-weight:600;
  border:0;padding:.75rem .9rem;position:sticky;top:0;
}
.tab-tech tbody td{ padding:.6rem .9rem;border-color:var(--im-line);vertical-align:middle }
.tab-tech tbody tr:nth-child(odd){ background:#fafbfd }
.tab-tech tbody td:first-child{ font-weight:600;color:#26313d;white-space:normal;min-width:200px }

/* ---------- Pagina interna / breadcrumb ---------- */
.page-head{
  background:linear-gradient(135deg,#0b2f5e 0%,#123e78 100%);
  color:#fff;padding:3.2rem 0 2.6rem;
}
.page-head h1{ font-size:clamp(1.8rem,3.4vw,2.6rem);margin-bottom:.5rem }
.page-head p{ color:#bcd4f0;margin:0;max-width:62ch }
.breadcrumb{ margin:0 0 .8rem;font-size:.85rem }
.breadcrumb a{ color:#9dbfe6 }
.breadcrumb-item+.breadcrumb-item::before{ color:#6f93bd }
.breadcrumb-item.active{ color:#e7f0fb }

/* ---------- CTA ---------- */
.cta-band{
  background:linear-gradient(135deg,var(--im-accent) 0%,#ff9d4d 100%);
  color:#fff;border-radius:18px;padding:2.6rem;
}
.cta-band h2{ color:#fff }

/* ---------- Form ---------- */
.form-control,.form-select{
  border-radius:10px;border:1px solid var(--im-line);padding:.7rem .9rem;font-size:.95rem;
}
.form-control:focus,.form-select:focus{
  border-color:var(--im-blue-300);box-shadow:0 0 0 .2rem rgba(47,127,212,.15);
}
.form-label{ font-weight:600;font-size:.88rem;margin-bottom:.35rem }

/* ---------- Footer ---------- */
.site-footer{ background:#08203f;color:#fff;padding:3.5rem 0 2rem;margin-top:0 }
.site-footer h6{
  text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;
  color:#7fb6f2;margin-bottom:1rem;
}
.site-footer a{ color:#c3d6ee }
.site-footer a:hover{ color:#fff }
.site-footer li{ margin-bottom:.45rem }
.contatti-list i{ color:#7fb6f2;width:1.2rem;display:inline-block }

/* ---------- Back to top ---------- */
.btn-top{
  position:fixed;right:1.2rem;bottom:1.2rem;width:44px;height:44px;border-radius:12px;
  background:var(--im-blue);color:#fff;display:grid;place-items:center;
  opacity:0;pointer-events:none;transition:.25s;z-index:900;box-shadow:var(--im-shadow);
}
.btn-top.show{ opacity:1;pointer-events:auto }
.btn-top:hover{ background:var(--im-accent);color:#fff }

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease }
.reveal.visible{ opacity:1;transform:none }

@media (max-width:991.98px){
  .logo-img{ height:38px }
  .hero{ padding:3.5rem 0 }
  .section{ padding:3.2rem 0 }
  .nav-main .nav-link{ padding:.6rem .4rem }
  .btn-accent{ margin-top:.6rem }
}
