*, *::before, *::after { box-sizing: border-box; }
html, body{
  margin:0;
  padding:0;
  background:
    radial-gradient(900px 520px at 12% 8%, rgba(79,140,255,.22), transparent 62%),
    radial-gradient(900px 620px at 88% 12%, rgba(160,110,255,.18), transparent 64%),
    radial-gradient(1000px 700px at 50% 110%, rgba(62,220,200,.12), transparent 55%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  background-color:#070A12;
}
img { max-width: 100%; display: block; }
a { color: inherit; }

:root{
  --bg0:#070A12;
  --bg1:#0B1020;
  --card:rgba(255,255,255,0.06);
  --border:rgba(255,255,255,0.10);
  --text:rgba(255,255,255,0.92);
  --muted:rgba(255,255,255,0.72);
  --shadow: 0 18px 55px rgba(0,0,0,0.45);
}

body{
  font-family:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  background:
    radial-gradient(900px 520px at 15% 10%, rgba(79, 140, 255, 0.18), transparent 62%),
    radial-gradient(900px 620px at 85% 15%, rgba(160, 110, 255, 0.16), transparent 64%),
    radial-gradient(1000px 700px at 50% 110%, rgba(62, 220, 200, 0.10), transparent 55%),
    linear-gradient(180deg, var(--bg0), var(--bg1)); padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:0.28;
  mix-blend-mode:screen;
  background:
    /* GRID LARGA */
    repeating-linear-gradient(90deg,
      rgba(56,189,248,0.28) 0px,
      rgba(56,189,248,0.28) 1px,
      transparent 1px,
      transparent 120px
    ),
    repeating-linear-gradient(0deg,
      rgba(99,102,241,0.25) 0px,
      rgba(99,102,241,0.25) 1px,
      transparent 1px,
      transparent 120px
    ),
    /* SOTTO-GRID (profondità) */
    repeating-linear-gradient(90deg,
      rgba(255,255,255,0.06) 0px,
      transparent 1px,
      transparent 24px
    ),
    repeating-linear-gradient(0deg,
      rgba(255,255,255,0.05) 0px,
      transparent 1px,
      transparent 24px
    ),
    /* vignette */
    radial-gradient(1200px 900px at 50% 0%,
      rgba(0,0,0,0.0),
      rgba(0,0,0,0.65)
    );
}

/* Container */
.container{ width:min(1120px,100% - 2.2rem); margin-inline:auto; }

/* Language visibility */
[data-lang="it"] .lang-en{ display:none !important; }
[data-lang="en"] .lang-it{ display:none !important; }
[data-lang="en"] p.lang-en{ display:block; }

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:20;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  background: rgba(7,10,18,0.62);
  border-bottom:1px solid var(--border);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding-block: .8rem;
}

.logo-img-full{ height:48px; width:auto; display:block; }

.nav{ display:flex; gap:1.2rem; font-size:.9rem; }
.nav a{ position:relative; text-decoration:none; color:rgba(203,213,245,0.95); }
.nav a::after{
  content:"";
  position:absolute;
  left:0; bottom:-5px;
  width:0; height:2px;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(99,102,241,1), rgba(6,182,212,1));
  transition: width .18s ease;
}
.nav a:hover::after{ width:100%; }

.lang-toggle{
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.06);
  color:var(--text);
  padding:.35rem .85rem;
  font-size:.8rem;
  cursor:pointer;
}

/* Hero */
.hero{ padding: 3.8rem 0 2.6rem; }
.hero-inner{ display:flex; justify-content:center; }
.hero-copy{ max-width: 720px; }

.hero h1{
  font-family:"Space Grotesk",system-ui,sans-serif;
  font-size: clamp(2.25rem, 3vw + 1.2rem, 3.05rem);
  line-height:1.12;
  margin:0 0 .9rem;
}

.accent-underline{ position:relative; display:inline-block; }
.accent-underline::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-5px;
  height:6px;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(99,102,241,.85), rgba(6,182,212,.85), rgba(236,72,153,.65));
}

.hero-text{
  font-size:1.02rem;
  color:rgba(255,255,255,0.86);
  line-height:1.65;
  margin: 0 0 1.1rem;
}

.hero-highlights{ display:flex; flex-wrap:wrap; gap:.5rem; margin: .7rem 0 1.25rem; }
.hero-highlights span{
  font-size:.82rem;
  border-radius:999px;
  padding:.35rem .75rem;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.14);
}

.hero-cta{ display:flex; flex-wrap:wrap; gap:.7rem; }

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.65rem 1.15rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.06);
  color:var(--text);
  font-size:.92rem;
  text-decoration:none;
  cursor:pointer;
  box-shadow: var(--shadow);
  transition: transform .12s ease, background .18s ease, border-color .18s ease;
}

.btn.primary{ background: linear-gradient(135deg, rgba(99,102,241,1), rgba(6,182,212,1)); border-color: transparent; }
.btn.ghost{ background: rgba(255,255,255,0.05); }
.btn.secondary{ background: rgba(255,255,255,0.06); }
.btn.phone-btn{ border-color: rgba(56,189,248,0.65); font-weight: 600; letter-spacing:.03em; }

.btn:hover{ transform: translateY(-1px); border-color: rgba(255,255,255,0.28); }
.btn:focus-visible{ outline: 2px solid rgba(6,182,212,1); outline-offset: 2px; }

/* Sections */
.section{ padding: 72px 0; }
.section-alt{ position:relative; }
.section-alt::before{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(900px 600px at 0% 0%, rgba(99,102,241,0.35), transparent 65%);
  opacity:.30;
  pointer-events:none;
}
.section-alt > .container{ position:relative; }

.section-head{ max-width: 44rem; margin-bottom: 1.6rem; }
.section-head h2{
  font-family:"Space Grotesk",system-ui,sans-serif;
  font-size:1.6rem;
  margin:0 0 .45rem;
}
.section-head p{ margin:0; color: rgba(203,213,245,0.92); }

/* Cards */
.cards-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; }
.card{
  background: rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 1.25rem 1.15rem;
  box-shadow: var(--shadow);
  transition: transform .16s ease, border-color .16s ease;
}
.card:hover{ transform: translateY(-3px); border-color: rgba(56,189,248,0.45); }
.card h3{ margin:0 0 .45rem; font-size:1.05rem; }
.card p{ margin:0 0 .7rem; color: rgba(255,255,255,0.78); font-size:.94rem; }

.card ul{ list-style:none; margin:0; padding:0; font-size:.86rem; color: rgba(255,255,255,0.68); }
.card li{ position:relative; padding-left: 1.05rem; margin-bottom:.25rem; }
.card li::before{
  content:"";
  position:absolute;
  left:0; top:.62em;
  width:6px; height:6px;
  border-radius:999px;
  background: linear-gradient(135deg, rgba(99,102,241,1), rgba(6,182,212,1));
}

/* Industries */
.industries-inner{ display:flex; flex-direction:column; gap:1.4rem; }
.industries-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.industry{
  background: rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  padding: 1rem;
}
.industry h3{ margin:0 0 .4rem; font-size:.98rem; }
.industry p{ margin:0; font-size:.86rem; color: rgba(203,213,245,0.92); }

/* About */
.about-inner{ display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap: 1.8rem; align-items:start; }
.about-inner p{ margin:0 0 .85rem; color: rgba(255,255,255,0.86); }
.about-inner p:last-of-type{ margin-bottom:0; }
.about-side{ display:grid; gap:.85rem; }
.stat-card{
  background: rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  padding: .95rem;
}
.stat-label{
  display:block;
  font-size:.75rem;
  color: rgba(255,255,255,0.62);
  text-transform:uppercase;
  letter-spacing:.16em;
  margin-bottom:.15rem;
}
.stat-value{
  display:block;
  font-family:"Space Grotesk",system-ui,sans-serif;
  font-size:1.2rem;
  margin-bottom:.1rem;
}
.stat-note{ display:block; font-size:.84rem; color: rgba(203,213,245,0.92); }

/* Contact */
.section-header{ margin-bottom: 1rem; }
.section-title{ margin:0; }
.section-subtitle{ margin:.45rem 0 0; color: rgba(203,213,245,0.92); }

.card--soft{
  background: rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 18px;
}

.card-title{ margin:0 0 10px; font-size: 1.05rem; }
.card-text{ margin:0; color: var(--muted); line-height: 1.55; }

.contact-layout{
  display:grid;
  grid-template-columns: 1.35fr 0.85fr;
  gap: 22px;
  align-items:start;
  margin-top: 16px;
}

.contact-card{
  background: rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 16px;
  position: sticky;
  top: 92px;
}

.contact-card-title{ margin:0; font-size:1.02rem; }
.contact-card-sub{ margin: 8px 0 12px; color: var(--muted); font-size:.92rem; line-height:1.35; }

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

.contact-inline-item{
  display:flex;
  gap:8px;
  align-items:baseline;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.10);
}

.contact-inline-label{ font-size:.86rem; opacity:.85; }
.contact-inline-value{ font-weight:600; letter-spacing:.2px; }
.contact-inline-call{ padding:10px 12px; border-radius:14px; white-space:nowrap; }

/* Form */
.contact-form{ display:flex; flex-direction:column; gap:.75rem; margin:0; }
.contact-form--compact .cf-grid{ display:grid; grid-template-columns:1fr; gap: 10px; }

.form-group{ display:flex; flex-direction:column; gap:.25rem; }
.form-label, .form-label-inline{ font-size:.84rem; color: rgba(203,213,245,0.92); }
.form-checkbox-row{ flex-direction:row; align-items:flex-start; gap:.55rem; }
.form-checkbox{ margin-top:.25rem; }

.form-input{
  width:100%;
  border-radius: 12px;
  border:1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.05);
  color: var(--text);
  padding: .6rem .75rem;
  font-size:.92rem;
}

.form-input:focus{
  outline:none;
  border-color: rgba(140,190,255,0.45);
  box-shadow: 0 0 0 4px rgba(120,170,255,0.12);
}

.field-error{
  margin: 6px 0 0;
  font-size:.82rem;
  line-height:1.2;
  color: rgba(255,140,170,0.95);
}

.is-invalid{
  border-color: rgba(255,120,160,0.55) !important;
  box-shadow: 0 0 0 4px rgba(255,120,160,0.10);
}

.cf-actions{ display:flex; flex-direction:column; gap:8px; margin-top: 8px; }
.form-feedback{ margin:0; font-size:.85rem; }
.form-feedback.success{ color: rgba(120,255,200,0.95); }
.form-feedback.error{ color: rgba(255,140,170,0.95); }

.cf-submit.is-loading{ opacity:.85; }

/* Footer */
.site-footer{ border-top:1px solid rgba(255,255,255,0.10); margin-top: 1.4rem; }
.footer-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding: 1rem 0 1.2rem;
  font-size:.82rem;
  color: rgba(255,255,255,0.62);
}

.footer-logo{ height: 32px; width:auto; display:block; }
.footer-logo-link{ display:inline-flex; align-items:center; }

.to-top{
  text-decoration:none;
  font-size:.9rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.14);
  padding:.35rem .7rem;
  background: rgba(255,255,255,0.06);
}

/* Modal */
.modal-backdrop{
  position:fixed;
  inset:0;
  display:none;
  justify-content:center;
  align-items:center;
  padding: 1.2rem;
  background: rgba(0,0,0,0.55);
  z-index: 60;
}

.modal-backdrop[aria-hidden="false"]{ display:flex; }

.modal-card{
  width: min(560px, 100%);
  background: rgba(10,14,26,0.92);
  border:1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  box-shadow: 0 30px 120px rgba(0,0,0,0.65);
  padding: 18px;
}

.modal-head{ margin-bottom: 10px; }
.modal-title{ margin: 0 0 6px; font-size: 1.1rem; }
.modal-subtitle{ margin: 0; color: rgba(203,213,245,0.92); font-size: .92rem; line-height: 1.35; }

.modal-close{
  position:absolute;
  transform: translateY(-4px);
  right: 22px;
  top: 18px;
  border:none;
  background: rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.12);
  color: var(--text);
  width: 36px;
  height: 36px;
  border-radius: 12px;
  cursor:pointer;
}

/* Responsive */
@media (max-width: 980px){
  .cards-grid{ grid-template-columns: repeat(2,minmax(0,1fr)); }
  .industries-grid{ grid-template-columns: repeat(2,minmax(0,1fr)); }
  .about-inner{ grid-template-columns: 1fr; }
  .contact-layout{ grid-template-columns: 1fr; }
  .contact-card{ position: relative; top:auto; }
}

@media (max-width: 780px){
  .nav{ display:none; }
  .hero{ padding-top: 3.1rem; }
}

@media (max-width: 640px){
  .container{ width: min(100% - 1.6rem, 620px); }
  .cards-grid{ grid-template-columns: 1fr; }
  .industries-grid{ grid-template-columns: 1fr; }
}



/* ===== OPACITY BOOST: CARDS & CONTACTS ===== */

/* Global cards */
.card,
.industry,
.stat-card,
.card--soft{
  background: rgba(10,14,26,0.82) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  backdrop-filter: blur(14px) saturate(120%);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
}

/* Cards hover stays elegant */
.card:hover{
  border-color: rgba(56,189,248,0.55) !important;
}

/* Contact side card */
.contact-card{
  background: rgba(10,14,26,0.88) !important;
  border: 1px solid rgba(255,255,255,0.16) !important;
  backdrop-filter: blur(16px) saturate(130%);
  -webkit-backdrop-filter: blur(16px) saturate(130%);
}

/* Inline contact pills */
.contact-inline-item{
  background: rgba(10,14,26,0.80) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
}

/* Contact form itself */
.contact-form{
  background: rgba(10,14,26,0.92) !important;
  border-radius: 18px;
  padding: 16px;
  border: 1px solid rgba(255,255,255,0.16);
  backdrop-filter: blur(18px) saturate(135%);
  -webkit-backdrop-filter: blur(18px) saturate(135%);
}

/* Inputs more solid */
.form-input{
  background: rgba(5,8,16,0.90) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
}
