/* global.css — stili condivisi tra tutte le pagine */

/* ════════════════════════════════════
   RESET & VARIABILI
════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy:       #020817;
  --navy-dark:  #0A1530;
  --blue:       #0052CC;
  --blue-alt:   #0048FE;
  --blue-mid:   #2663EB;
  --banner-bg:  #1F43B6;
  --dark-card:  #232E72;
  --stats-bg:   #13121E;
  --slate:      #475467;
  --gray:       #63697C;
  --bg-hero:    #DEF2FF;
  --bg-card:    #DBEAFE;
  --bg-subtle:  #E2E8F0;
  --white:      #FFFFFF;
}

body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  color: var(--navy);
  background: var(--white);
  line-height: 1.6;
}

/* ════════════════════════════════════
   LAYOUT
════════════════════════════════════ */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 80px;
}

.container-wide {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 48px;
}

/* ════════════════════════════════════
   TIPOGRAFIA UTILITY
════════════════════════════════════ */
.overline {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--blue-mid);
  margin-bottom: 12px;
}

.accent { color: var(--blue); font-style: italic; }

/* ════════════════════════════════════
   BOTTONI
════════════════════════════════════ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 28px;
  border-radius: 50px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: opacity .2s, transform .15s;
}
.btn:hover      { opacity: .88; transform: translateY(-1px); }
.btn-primary    { background: var(--blue); color: var(--white); border: none; }
.btn-outline    { background: transparent; color: var(--navy); border: 1.5px solid var(--navy); }
.btn-white      { background: var(--white); color: var(--blue); border: none; }

/* ════════════════════════════════════
   HERO (base)
════════════════════════════════════ */
.hero {
  background: linear-gradient(to bottom, var(--white) 0%, var(--bg-hero) 100%);
  padding: 110px 0 80px;
  text-align: center;
}

.hero h1 {
  font-size: clamp(40px, 5vw, 60px);
  font-weight: 800;
  line-height: 1.15;
  color: var(--navy);
  max-width: 800px;
  margin: 0 auto 20px;
}

.hero p {
  font-size: 18px;
  color: var(--slate);
  max-width: 680px;
  margin: 0 auto 36px;
  line-height: 1.65;
}

.hero-ctas {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 64px;
}

/* ════════════════════════════════════
   INTESTAZIONE SEZIONE
════════════════════════════════════ */
.section-header {
  text-align: center;
  margin-bottom: 56px;
}

.section-header h2 {
  font-size: clamp(32px, 4vw, 44px);
  font-weight: 700;
  color: var(--navy);
  line-height: 1.2;
  margin-bottom: 14px;
}

.section-header p {
  font-size: 17px;
  color: var(--slate);
  max-width: 520px;
  margin: 0 auto;
}

.section-subtitle {
  font-size: 17px;
  color: var(--slate);
  max-width: 520px;
  margin: 0 auto;
}

/* ════════════════════════════════════
   GRIGLIE
════════════════════════════════════ */
.products-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

/* ════════════════════════════════════
   SEZIONI
════════════════════════════════════ */
.section-products {
  padding: 90px 0;
  background: var(--white);
}

.section-services {
  padding: 90px 0;
  background: var(--white);
}

/* ════════════════════════════════════
   CARD PRODOTTO
════════════════════════════════════ */
.product-card {
  background: var(--white);
  border: 1px solid var(--bg-subtle);
  border-radius: 16px;
  padding: 28px 28px 24px;
  transition: box-shadow .2s, transform .2s;
  text-align: left;
}

.product-card:hover {
  box-shadow: 0 8px 24px rgba(0,82,204,.10);
  transform: translateY(-2px);
}

.product-card h3 {
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--navy);
  margin-bottom: 8px;
}

.product-card p {
  font-size: 14px;
  color: var(--slate);
  line-height: 1.6;
}

/* ════════════════════════════════════
   ICONE (Font Awesome via ::before)
════════════════════════════════════ */
.product-card .card-icon {
  width: 44px;
  height: 44px;
  background: var(--bg-card);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  font-size: 19px;
  color: var(--navy);
}

.card-icon::before {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  display: block;
  line-height: 1;
}
/* Solid */
.card-icon.icon-wave::before       { content: "\f83e"; font-weight: 900; }
.card-icon.icon-brain::before      { content: "\f5dc"; font-weight: 900; }
.card-icon.icon-palette::before    { content: "\f53f"; font-weight: 900; }
.card-icon.icon-code::before       { content: "\f121"; font-weight: 900; }
.card-icon.icon-camera::before     { content: "\f030"; font-weight: 900; }
.card-icon.icon-filter::before     { content: "\f0b0"; font-weight: 900; }
.card-icon.icon-sliders::before    { content: "\f1de"; font-weight: 900; }
.card-icon.icon-chart::before      { content: "\f201"; font-weight: 900; }
.card-icon.icon-network::before    { content: "\f6ff"; font-weight: 900; }
.card-icon.icon-landmark::before   { content: "\f66f"; font-weight: 900; }
.card-icon.icon-graduation::before { content: "\f19d"; font-weight: 900; }
.card-icon.icon-scissors::before   { content: "\f0c4"; font-weight: 900; }
.card-icon.icon-sparkles::before   { content: "\f0d0"; font-weight: 900; }
.card-icon.icon-car::before        { content: "\f1b9"; font-weight: 900; }
.card-icon.icon-leaf::before       { content: "\f06c"; font-weight: 900; }
.card-icon.icon-heart::before      { content: "\f004"; font-weight: 900; }
.card-icon.icon-search::before     { content: "\f002"; font-weight: 900; }
.card-icon.icon-robot::before      { content: "\f544"; font-weight: 900; }
/* Regular */
.card-icon.icon-image::before      { content: "\f03e"; font-weight: 400; }
.card-icon.icon-lightbulb::before  { content: "\f0eb"; font-weight: 400; }
.card-icon.icon-file-image::before { content: "\f1c5"; font-weight: 400; }

/* ════════════════════════════════════
   BANNER DARK
════════════════════════════════════ */
.banner-dark {
  background: var(--banner-bg);
  padding: 72px 0;
  text-align: center;
}

.banner-dark .overline { color: #93C5FD; }
.banner-dark .accent   { color: #93C5FD; font-style: italic; }

.banner-dark h2 {
  font-size: clamp(28px, 3.5vw, 42px);
  font-weight: 700;
  color: var(--white);
  margin-bottom: 20px;
  line-height: 1.25;
}

.banner-dark p {
  font-size: 17px;
  color: #BFDBFE;
  max-width: 760px;
  margin: 0 auto 36px;
}

/* ════════════════════════════════════
   RESPONSIVE
════════════════════════════════════ */
@media (max-width: 900px) {
  .container, .container-wide { padding: 0 24px; }
  .products-grid  { grid-template-columns: 1fr 1fr; }
  .services-grid  { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  .products-grid  { grid-template-columns: 1fr; }
  .services-grid  { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════
   PAGINA: Solutions › Cultural Heritage (page-id-476)
   "Application evidence": le tre immagini devono stare affiancate
   su tre colonne di uguale larghezza. Il container Elementor usa
   width: 33.333% su ciascuna colonna più un gap di 18px, che non
   viene sottratto dalla larghezza: le tre colonne insieme superano
   il 100% e la terza va a capo da sola. Si forza una griglia a tre
   colonne uguali, che risolve il problema alla radice.
════════════════════════════════════ */
body.page-id-476 .elementor-element-0000007.e-con {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
body.page-id-476 .elementor-element-0000007.e-con > .elementor-element-0000002,
body.page-id-476 .elementor-element-0000007.e-con > .elementor-element-0000004,
body.page-id-476 .elementor-element-0000007.e-con > .elementor-element-0000006 {
  width: 100% !important;
  flex: none !important;
}
@media (max-width: 767px) {
  body.page-id-476 .elementor-element-0000007.e-con {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
/* L'ID Elementor 0000004 è duplicato in un altro blocco della pagina:
   la colonna "Transparency" eredita da lì sfondo/padding/min-height,
   che la rendono più alta delle altre due. Si azzerano qui. */
body.page-id-476 .elementor-element-0000007.e-con > .elementor-element-0000004 {
  background: none !important;
  min-height: 0 !important;
  padding: 0 !important;
}
