/*
Theme Name: Astra Child - GIOVE network Technology in Order
Theme URI: https://demo.giovenetwork.it
Description: Tema child Astra per GIOVE network. Design bianco/blu elegante e tecnologico, con HERO ampia, sezioni servizi, metodo, supporto e contatti.
Author: GIOVE network
Template: astra
Version: 2.3.0
Text Domain: gn-order
*/
:root {
  --gn-blue:#1769e8; --gn-blue-deep:#0f51bd; --gn-navy:#102349; --gn-text:#53627c;
  --gn-light:#f6f8fc; --gn-border:#e2eaf6; --gn-footer:#081b3a; --gn-white:#ffffff;
  --gn-shadow:0 12px 36px rgba(25,47,89,.06); --gn-max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.gn-order{margin:0;background:#fff;color:var(--gn-navy);font-family:"Inter","Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
body.gn-order a{text-decoration:none;color:inherit}
.gn-container{width:calc(100% - 80px);max-width:var(--gn-max);margin:0 auto}
.gn-label{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gn-blue);margin:0 0 19px}
.gn-h1{margin:0 0 20px;font-size:clamp(2.9rem,4.25vw,4.2rem);font-weight:700;letter-spacing:-.055em;line-height:1.1;color:var(--gn-navy)}
.gn-h2{margin:0 0 16px;font-size:clamp(1.9rem,3vw,2.55rem);font-weight:700;letter-spacing:-.045em;line-height:1.18;color:var(--gn-navy)}
.gn-lead{font-size:1.08rem;line-height:1.72;color:var(--gn-text);margin:0;max-width:535px}
.gn-btns{display:flex;gap:17px;flex-wrap:wrap;margin-top:34px}
.gn-btn{height:52px;padding:0 26px;display:inline-flex;align-items:center;justify-content:center;gap:15px;border-radius:5px;border:1px solid transparent;font-weight:600;font-size:.93rem;transition:.2s}
.gn-btn::after{content:"→";font-size:1.08rem}
.gn-btn-primary{background:var(--gn-blue);color:#fff!important;box-shadow:0 9px 18px rgba(23,105,232,.18)}
.gn-btn-primary:hover{background:var(--gn-blue-deep);transform:translateY(-1px)}
.gn-btn-outline{color:var(--gn-blue)!important;border-color:#86b2fb;background:#fff}
.gn-btn-outline:hover{border-color:var(--gn-blue);background:#f4f8ff}
.gn-section{padding:86px 0}
.gn-soft{background:var(--gn-light)}
.gn-center{text-align:center}
.gn-center .gn-lead{margin-inline:auto}

/* header */
.gn-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--gn-border)}
.gn-header-inner{display:flex;align-items:center;min-height:calc(var(--gn-header-logo-height,51px) + 31px);gap:38px;padding-block:8px}
.gn-logo img{height:var(--gn-header-logo-height,51px);max-width:none;width:auto;display:block;transition:height .2s ease}
.gn-nav{margin-left:auto}
.gn-nav ul{display:flex;align-items:center;list-style:none;padding:0;margin:0;gap:32px}
.gn-nav a{font-size:.92rem;color:var(--gn-navy);font-weight:500;display:block;padding:30px 0;position:relative}
.gn-nav a:hover,.gn-nav .current-menu-item>a{color:var(--gn-blue)}
.gn-nav .current-menu-item>a:after{content:"";height:2px;background:var(--gn-blue);left:0;right:0;bottom:21px;position:absolute}
.gn-header-cta{height:48px;font-size:.87rem;margin-left:12px;padding:0 20px}
.gn-toggle{display:none;margin-left:auto;border:1px solid var(--gn-border);height:45px;width:48px;background:#fff;border-radius:5px;padding:11px;cursor:pointer}
.gn-toggle span{display:block;height:2px;margin:5px 0;background:var(--gn-navy)}

/* full width hero */
.gn-hero{position:relative;min-height:552px;overflow:hidden;border-bottom:1px solid var(--gn-border);background:white}
.gn-hero-media{position:absolute;inset:0 0 0 42%;z-index:0}
.gn-hero-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.gn-hero:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#fff 0%,#fff 32%,rgba(255,255,255,.94) 40%,rgba(255,255,255,.32) 57%,rgba(255,255,255,0) 76%)}
.gn-hero-content{min-height:552px;display:flex;align-items:center;position:relative;z-index:2}
.gn-hero-copy{max-width:580px}

/* positioning strip */
.gn-positioning{padding:40px 0 38px;background:#fff;border-bottom:1px solid var(--gn-border)}
.gn-position-title{text-align:center;font-weight:700;font-size:1.24rem;line-height:1.5;color:var(--gn-navy);max-width:700px;margin:0 auto 30px}
.gn-values{display:grid;grid-template-columns:repeat(3,1fr);max-width:900px;margin:0 auto}
.gn-value{display:flex;align-items:center;gap:21px;padding:0 36px;border-right:1px solid var(--gn-border)}
.gn-value:last-child{border:0}
.gn-value svg{width:47px;height:47px;flex:0 0 auto;stroke:var(--gn-blue);fill:none;stroke-width:1.7}
.gn-value b{font-size:.9rem;display:block;margin-bottom:5px}
.gn-value small{display:block;font-size:.8rem;color:var(--gn-text);line-height:1.5}

/* services */
.gn-services{padding:58px 0 62px;background:var(--gn-light);border-bottom:1px solid var(--gn-border)}
.gn-services-heading{text-align:center;margin:0 auto 34px}
.gn-services-heading .gn-label{margin-bottom:10px}
.gn-services-heading h2{font-size:2rem;margin:0;letter-spacing:-.04em}
.gn-grid-services{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gn-service{display:block;background:#fff;border:1px solid var(--gn-border);border-radius:7px;padding:27px 27px 25px;min-height:255px;transition:.2s;color:inherit!important;text-decoration:none!important}
.gn-service:hover{transform:translateY(-2px);box-shadow:var(--gn-shadow);border-color:#bdd5fc}
.gn-icon{display:flex;width:51px;height:51px;align-items:center;justify-content:center;color:var(--gn-blue);margin-bottom:20px}
.gn-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.65}
.gn-service h3{font-size:1.1rem;margin:0 0 13px;color:var(--gn-navy)}
.gn-service p{font-size:.9rem;line-height:1.62;color:var(--gn-text);margin:0 0 18px}
.gn-link{font-size:.87rem;color:var(--gn-blue)!important;font-weight:600}

/* method */
.gn-method{background:#fff;padding:61px 0 56px}
.gn-method-heading{text-align:center;margin-bottom:37px}
.gn-method-heading .gn-label{margin-bottom:9px}
.gn-method-heading h2{font-size:2rem;margin:0}
.gn-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.gn-step{position:relative;padding:0 33px 0 57px;min-height:122px}
.gn-step:not(:last-child):after{content:"→";position:absolute;right:0;top:35px;color:var(--gn-navy)}
.gn-step .gn-icon{position:absolute;left:0;top:4px;width:39px;height:39px}
.gn-step strong{display:block;color:var(--gn-blue);font-size:.93rem;margin-bottom:5px}
.gn-step h3{font-size:.88rem;margin:0 0 7px;color:var(--gn-navy)}
.gn-step p{font-size:.78rem;line-height:1.5;color:var(--gn-text);margin:0}

/* editorial feature rows */
.gn-editorial{padding-bottom:54px;background:#fff}
.gn-feature-row{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;background:#f7f9fd;overflow:hidden;border-radius:5px;margin-bottom:14px}
.gn-feature-row:nth-child(2){grid-template-columns:1fr 1fr}
.gn-feature-image{min-height:226px}
.gn-feature-image img{height:100%;width:100%;object-fit:cover;display:block}
.gn-feature-copy{padding:38px 48px}
.gn-feature-copy .gn-label{margin-bottom:12px}
.gn-feature-copy h2{font-size:1.7rem;margin:0 0 12px;letter-spacing:-.04em;line-height:1.2}
.gn-feature-copy p{font-size:.9rem;color:var(--gn-text);line-height:1.58;margin:0 0 16px}
.gn-feature-reverse .gn-feature-copy{order:1}
.gn-feature-reverse .gn-feature-image{order:2}

/* CTA */
.gn-cta{padding:28px 0;background:#f2f7ff;border-block:1px solid var(--gn-border)}
.gn-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:34px}
.gn-cta-message{display:flex;align-items:center;gap:23px}
.gn-cta-message .gn-icon{margin:0;width:48px;height:48px;padding:11px;border:1px solid #bed6fc;border-radius:50%}
.gn-cta-message h2{font-size:1.15rem;margin:0 0 4px}
.gn-cta-message p{font-size:.9rem;color:var(--gn-text);margin:0}

/* inner pages */
.gn-pagehero{padding:70px 0;background:#fff}
.gn-pagehero-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:55px;align-items:center}
.gn-pagehero-image{height:390px;border-radius:6px;overflow:hidden}
.gn-pagehero-image img{height:100%;width:100%;object-fit:cover}
.gn-cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gn-card{padding:30px;background:#fff;border:1px solid var(--gn-border);border-radius:7px}
.gn-card h3{margin:14px 0 10px;font-size:1.05rem}
.gn-card p{margin:0;color:var(--gn-text);font-size:.9rem}
.gn-contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:22px}
.gn-contact-box{background:#fff;border:1px solid var(--gn-border);border-radius:7px;padding:32px}
.gn-contact-box h2{font-size:1.45rem;margin:0 0 22px}
.gn-contact-row{padding:15px 0;border-bottom:1px solid var(--gn-border);font-size:.94rem;color:var(--gn-text)}
.gn-form input,.gn-form textarea{width:100%;border:1px solid var(--gn-border)!important;border-radius:4px!important;padding:13px!important;margin-bottom:12px;background:#fff!important}
.gn-form textarea{height:125px}
.gn-placeholder{color:var(--gn-text);font-size:.92rem}
.gn-standard{min-height:62vh;padding:70px 0;max-width:850px}


/* support page */
.gn-support-main{padding:62px 0 72px;background:#fff}
.gn-support-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:46px;align-items:stretch}
.gn-support-intro{padding:28px 16px 20px 0}
.gn-support-intro .gn-lead{max-width:470px}
.gn-support-contacts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:38px}
.gn-support-contact{border:1px solid var(--gn-border);border-radius:7px;padding:20px 21px;background:#fff;display:grid;gap:8px}
.gn-support-contact strong{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gn-blue)}
.gn-support-contact a,.gn-support-contact span{color:var(--gn-navy);font-weight:500;font-size:.94rem}
.gn-tv-card{background:var(--gn-light);border:1px solid var(--gn-border);border-radius:9px;padding:38px 42px;box-shadow:var(--gn-shadow)}
.gn-tv-header{display:inline-flex;align-items:center;gap:11px;color:var(--gn-navy);font-size:1.38rem;font-weight:700;margin-bottom:27px}
.gn-tv-symbol{height:38px;width:38px;border-radius:7px;background:var(--gn-navy);color:#fff;display:inline-flex;justify-content:center;align-items:center;font-size:1.45rem}
.gn-tv-card h2{margin:0 0 13px;font-size:1.55rem;letter-spacing:-.035em;color:var(--gn-navy)}
.gn-tv-card p{margin:0 0 26px;line-height:1.65;color:var(--gn-text);font-size:.94rem}
.gn-tv-button{min-width:230px}
.gn-tv-button::after{display:none}
.gn-tv-mark{height:23px;width:23px;border-radius:4px;border:1px solid rgba(255,255,255,.65);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.96rem}
.gn-btn-outline .gn-tv-mark{border-color:var(--gn-blue)}
.gn-support-note{display:block;margin-top:13px;color:var(--gn-text);font-size:.78rem;line-height:1.45}
.gn-tv-card .gn-tv-security{font-size:.8rem;line-height:1.55;margin:25px 0 0;padding-top:21px;border-top:1px solid var(--gn-border);color:#66758d}
.gn-support-how{background:var(--gn-light);border-block:1px solid var(--gn-border);padding:56px 0 62px}
.gn-support-how .gn-method-heading{margin-bottom:34px}
.gn-support-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}
.gn-support-steps article{background:#fff;border:1px solid var(--gn-border);border-radius:7px;padding:28px 29px}
.gn-support-steps span{color:var(--gn-blue);font-weight:700;letter-spacing:.08em;display:block;margin-bottom:14px}
.gn-support-steps h3{font-size:1.08rem;margin:0 0 10px;color:var(--gn-navy)}
.gn-support-steps p{margin:0;color:var(--gn-text);font-size:.89rem;line-height:1.62}
@media(max-width:860px){
 .gn-support-grid,.gn-support-steps{grid-template-columns:1fr}
 .gn-support-intro{padding:0}
 .gn-tv-card{padding:30px 25px}
 .gn-support-contacts{grid-template-columns:1fr}
}

/* footer */
.gn-footer{padding:48px 0 22px;background:var(--gn-footer);color:#d9e4f6}
.gn-footer-grid{display:grid;grid-template-columns:1.2fr .9fr .75fr .95fr .95fr;gap:38px;padding-bottom:34px}
.gn-footer-logo{height:44px;width:auto;margin-bottom:18px}
.gn-footer p{font-size:.87rem;line-height:1.65;color:#d0dced;margin:0;max-width:235px}
.gn-footer h3{font-size:.82rem;color:#fff;margin:0 0 15px}
.gn-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}
.gn-footer li,.gn-footer li a{font-size:.82rem;color:#ccd9ec}
.gn-footer a:hover{color:#fff}
.gn-footer-bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(216,230,250,.2);padding-top:20px;font-size:.78rem;color:#aabbd5}

/* responsive */
@media(max-width:1050px){
 .gn-container{width:calc(100% - 44px)}
 .gn-nav ul{gap:19px}
 .gn-grid-services{grid-template-columns:repeat(2,1fr)}
 .gn-footer-grid{grid-template-columns:repeat(3,1fr)}
 .gn-step{padding-right:20px}
}
@media(max-width:860px){
 .gn-header-inner{min-height:70px}
 .gn-logo img{height:43px;max-width:220px}
 .gn-toggle{display:block}
 .gn-nav{display:none;position:absolute;top:70px;left:0;right:0;background:#fff;padding:12px 22px 20px;border-bottom:1px solid var(--gn-border)}
 .gn-nav.open{display:block}
 .gn-nav ul{display:block}
 .gn-nav a{padding:12px 0}
 .gn-nav .current-menu-item>a:after{display:none}
 .gn-header-cta{display:none}
 .gn-hero{min-height:650px}
 .gn-hero-media{inset:43% 0 0 0}
 .gn-hero:after{background:linear-gradient(180deg,#fff 0%,#fff 42%,rgba(255,255,255,.62) 55%,rgba(255,255,255,0) 85%)}
 .gn-hero-content{min-height:650px;align-items:flex-start;padding-top:55px}
 .gn-hero-copy{max-width:100%}
 .gn-values,.gn-steps,.gn-feature-row,.gn-pagehero-grid,.gn-contact{grid-template-columns:1fr}
 .gn-value{border:0;border-bottom:1px solid var(--gn-border);padding:20px 0}
 .gn-step{padding:0 0 30px 54px}
 .gn-step:not(:last-child):after{display:none}
 .gn-feature-reverse .gn-feature-copy{order:2}
 .gn-feature-reverse .gn-feature-image{order:1}
 .gn-cta-inner{display:block}
 .gn-cta .gn-btn{margin-top:22px}
 .gn-footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
 .gn-container{width:calc(100% - 28px)}
 .gn-h1{font-size:2.35rem}
 .gn-grid-services,.gn-cards3,.gn-footer-grid{grid-template-columns:1fr}
 .gn-feature-copy{padding:29px 25px}
 .gn-btns .gn-btn{width:100%}
 .gn-footer-bottom{display:block}
 .gn-footer-bottom span{display:block;margin-top:8px}
}


/* Supporto importato dalla pagina originale DATAMIX e adattato al brand GIOVE network */
/* DATAMIX Astra Child v1.0.18 - Support page matched to approved mockup */
#primary.dmx-support-mock-page{
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding:0!important;
  background:#ffffff;
}
#primary.dmx-support-mock-page .entry-header,
#primary.dmx-support-mock-page .ast-article-single,
#primary.dmx-support-mock-page .post-navigation{display:none!important;}
.dmx-support-mock-shell{
  width:100%;
  max-width:none;
  margin:0;
  padding:28px 0 54px;
  background:#ffffff;
}
.dmx-support-mock-card{
  width:min(calc(100vw - 32px), 1456px);
  margin:0 auto;
  border:1px solid #e6eef7;
  border-radius:32px;
  background:linear-gradient(180deg,#f8fbff 0%,#ffffff 100%);
  box-shadow:0 18px 50px rgba(7,31,73,.06);
  overflow:hidden;
}
.dmx-support-mock-hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);
  gap:42px;
  align-items:start;
  padding:62px 34px 16px;
}
.dmx-support-mock-hero::before{
  content:"";
  position:absolute;
  top:-84px;
  right:-72px;
  width:285px;
  height:285px;
  border-radius:50%;
  background:rgba(38,112,255,.09);
}
.dmx-support-mock-hero::after{
  content:"";
  position:absolute;
  left:52%;
  bottom:-176px;
  width:410px;
  height:410px;
  border-radius:50%;
  background:rgba(38,112,255,.06);
}
.dmx-support-mock-copy,.dmx-support-mock-demo{position:relative;z-index:1;}
.dmx-support-mock-kicker{
  margin:0 0 24px;
  color:#2d6bff;
  font-size:.9rem;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.dmx-support-mock-copy h1{
  margin:0;
  color:#06163d;
  font-size:clamp(4rem,5.8vw,5.7rem);
  line-height:.93;
  letter-spacing:-.075em;
  font-weight:900;
}
.dmx-support-mock-lead{
  max-width:640px;
  margin:28px 0 0;
  color:#374863;
  font-size:1.15rem;
  line-height:1.63;
}
.dmx-support-mock-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:32px;}
.dmx-support-mock-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:56px;padding:0 22px;border-radius:12px;text-decoration:none!important;
  font-size:1.02rem;font-weight:800;box-shadow:0 8px 20px rgba(7,31,73,.06);
}
.dmx-support-mock-btn-download{min-width:360px;background:#ffffff;color:#2667ff!important;border:1px solid #dbe6f5;}

/* v1.6.2 - richiamo animato sul pulsante TeamViewer QuickSupport */
.dmx-support-mock-btn-download{
  position:relative;
  transform-origin:center bottom;
  animation:gn-teamviewer-quick-bounce 3.6s cubic-bezier(.28,.84,.42,1) infinite;
  will-change:transform;
}
.dmx-support-mock-btn-download:hover,
.dmx-support-mock-btn-download:focus-visible{
  animation:none;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(38,103,255,.18);
}
.dmx-support-mock-btn-download:active{transform:translateY(0);}
@keyframes gn-teamviewer-quick-bounce{
  0%,70%,100%{transform:translateY(0);}
  76%{transform:translateY(-10px);}
  81%{transform:translateY(0);}
  86%{transform:translateY(-5px);}
  90%{transform:translateY(0);}
}
@media (prefers-reduced-motion: reduce){
  .dmx-support-mock-btn-download{animation:none;will-change:auto;}
}

.dmx-support-mock-btn-help{min-width:238px;background:#0a255d;color:#ffffff!important;border:1px solid #0a255d;}
.dmx-support-mock-badges{display:flex;flex-wrap:wrap;gap:16px;margin-top:22px;}
.dmx-support-mock-badges span{display:inline-flex;align-items:center;gap:10px;padding:14px 17px;border-radius:16px;background:#ffffff;border:1px solid #e9eff8;color:#203861;font-size:1rem;font-weight:800;box-shadow:0 10px 22px rgba(7,31,73,.04);}
.dmx-support-mock-badges i{font-style:normal;}
.dmx-support-mock-demo{width:100%;max-width:430px;justify-self:end;}
.dmx-support-mock-tv{overflow:hidden;border-radius:28px;background:#ffffff;border:1px solid #dfe7f1;box-shadow:0 20px 44px rgba(7,31,73,.11);}
.dmx-support-mock-tv-head{padding:24px 28px 18px;background:linear-gradient(180deg,#1764ff 0%,#1a57e6 100%);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;}
.dmx-support-mock-tv-logo{display:block;width:100%;max-width:258px;height:auto;filter:brightness(0) invert(1);}
.dmx-support-mock-tv-head strong{color:#ffffff;font-size:1.06rem;font-weight:700;line-height:1;letter-spacing:-.01em;}
.dmx-support-mock-tv-toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 26px;background:#ffffff;border-bottom:1px solid #e4e8ee;color:#2e3849;font-size:1.02rem;}
.dmx-support-mock-tv-toolbar b{font-weight:800;}
.dmx-support-mock-tv-toolbar span{color:#7e8896;font-size:1.5rem;line-height:1;}
.dmx-support-mock-tv-body{padding:18px 26px 16px;background:#ffffff;}
.dmx-support-mock-tv-body p{margin:0 0 18px;color:#465473;font-size:1rem;line-height:1.5;}
.dmx-support-mock-tv-field{position:relative;margin-bottom:18px;padding-left:15px;}
.dmx-support-mock-tv-field::before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:999px;background:#2667ff;}
.dmx-support-mock-tv-field small{display:block;margin-bottom:8px;color:#1c273b;font-size:1rem;font-weight:800;}
.dmx-support-mock-tv-field strong{display:block;color:#0d1931;font-size:1.14rem;font-weight:900;letter-spacing:.01em;}
.dmx-support-mock-tv-field strong em{font-style:normal;color:#8c98ab;font-size:1.08rem;}
.dmx-support-mock-tv-body button{display:block;margin:2px 0 0 auto;min-width:110px;height:44px;border:1px solid #dadfe8;border-radius:10px;background:#ffffff;color:#1d2432;font-size:1rem;font-weight:700;}
.dmx-support-mock-tv-status{display:flex;align-items:center;gap:10px;padding:14px 26px;border-top:1px solid #e4e8ee;background:#fcfdff;color:#576377;font-size:.96rem;line-height:1.45;}
.dmx-support-mock-tv-status span{width:13px;height:13px;border-radius:50%;background:#40cc4d;box-shadow:0 0 0 4px rgba(64,204,77,.12);flex:0 0 auto;}
.dmx-support-mock-note{margin:14px 2px 0;color:#55657f;font-size:1rem;line-height:1.55;}
.dmx-support-mock-steps-wrap{padding:16px 28px 0;background:transparent;}
.dmx-support-mock-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;background:#ffffff;border:1px solid #edf1f7;border-radius:24px;box-shadow:0 10px 24px rgba(7,31,73,.035);overflow:hidden;}
.dmx-support-mock-steps article{display:grid;grid-template-columns:46px 50px 1fr;gap:14px;align-items:flex-start;padding:26px 22px;min-height:170px;background:#ffffff;}
.dmx-support-mock-steps article:not(:last-child){border-right:1px solid #edf1f7;}
.dmx-support-mock-step-num{display:grid;place-items:center;width:42px;height:42px;border-radius:999px;background:#eff4ff;color:#2667ff;font-size:1.55rem;font-weight:900;}
.dmx-support-mock-step-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:999px;background:#f4f7ff;color:#2667ff;font-size:1.38rem;font-weight:700;}
.dmx-support-mock-steps h3{margin:0 0 8px;color:#13213d;font-size:1.02rem;font-weight:800;line-height:1.2;}
.dmx-support-mock-steps p{margin:0;color:#43536d;font-size:1rem;line-height:1.56;}
.dmx-support-mock-info{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:18px 28px 28px;background:transparent;}
.dmx-support-mock-info-card{display:grid;grid-template-columns:74px 1fr;gap:18px;align-items:start;padding:24px;border:1px solid #edf2f8;border-radius:24px;box-shadow:0 10px 22px rgba(7,31,73,.03);}
.dmx-support-mock-info-blue{background:#f4f8ff;}
.dmx-support-mock-info-green{background:#f3faf5;}
.dmx-support-mock-info-card>span{display:grid;place-items:center;width:58px;height:58px;border-radius:999px;font-size:1.7rem;font-weight:800;}
.dmx-support-mock-info-blue>span{background:#ebf2ff;color:#2667ff;}
.dmx-support-mock-info-green>span{background:#e8f7ed;color:#1ca34a;}
.dmx-support-mock-info h3{margin:0 0 8px;color:#1a2640;font-size:1.12rem;font-weight:800;}
.dmx-support-mock-info p{margin:0;color:#495975;font-size:1rem;line-height:1.58;}
.dmx-support-mock-extra{padding:0 28px 28px;color:#445470;font-size:1rem;line-height:1.7;}
.dmx-support-mock-extra>*:first-child{margin-top:0;}
@media (max-width:1260px){
  .dmx-support-mock-hero{grid-template-columns:1fr;gap:34px;padding-top:46px;}
  .dmx-support-mock-demo{justify-self:start;max-width:460px;}
  .dmx-support-mock-steps{grid-template-columns:repeat(2,minmax(0,1fr));}
  .dmx-support-mock-steps article:nth-child(2){border-right:none;}
  .dmx-support-mock-steps article:nth-child(1), .dmx-support-mock-steps article:nth-child(2){border-bottom:1px solid #edf1f7;}
}
@media (max-width:820px){
  .dmx-support-mock-card{width:min(calc(100vw - 16px),1456px);border-radius:24px;}
  .dmx-support-mock-hero{padding:30px 18px 14px;gap:24px;}
  .dmx-support-mock-copy h1{font-size:clamp(2.8rem,14vw,4.3rem);} 
  .dmx-support-mock-lead{font-size:1.03rem;}
  .dmx-support-mock-actions{flex-direction:column;align-items:stretch;}
  .dmx-support-mock-btn-download,.dmx-support-mock-btn-help{min-width:0;width:100%;}
  .dmx-support-mock-demo{max-width:none;}
  .dmx-support-mock-steps-wrap{padding:14px 18px 0;}
  .dmx-support-mock-steps{grid-template-columns:1fr;}
  .dmx-support-mock-steps article{grid-template-columns:42px 46px 1fr;min-height:auto;padding:20px 18px;border-right:none!important;}
  .dmx-support-mock-steps article:not(:last-child){border-bottom:1px solid #edf1f7;}
  .dmx-support-mock-info{grid-template-columns:1fr;padding:16px 18px 22px;}
  .dmx-support-mock-extra{padding:0 18px 22px;}
}



.dmx-support-mock-shell{padding:34px 0 56px;background:#f4f8fd;}
.dmx-support-mock-card{width:min(100% - 48px,1280px);margin:0 auto;border-radius:28px;background:#fff;box-shadow:0 18px 52px rgba(7,31,73,.08);overflow:hidden;}
.dmx-support-mock-hero{grid-template-columns:minmax(0,1.04fr) minmax(350px,.72fr);gap:44px;padding:54px 42px 30px;}
.dmx-support-mock-copy h1{font-size:clamp(2.9rem,5.3vw,5rem);}
.dmx-support-mock-lead{max-width:740px;}
.dmx-support-mock-steps-wrap{padding:0 26px 26px;}
.dmx-support-mock-steps{margin:0;}
.dmx-support-mock-info{padding:0 26px 34px;}
.dmx-support-mock-extra{margin:0 26px 34px;}

@media(max-width:1100px){
  .dmx-hero-modern .dmx-hero-inner,.dmx-standard-hero-inner,.dmx-support-mock-hero,.dmx-services-overview-intro,.dmx-services-overview-method,.dmx-services-overview-cta{grid-template-columns:1fr;}
  .dmx-home-hero-visual{min-height:0;}
  .dmx-company-timeline,.dmx-company-values-grid,.dmx-company-strip-inner,.dmx-services-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .dmx-services-overview-method-steps{justify-content:flex-start;}
  .dmx-support-mock-demo{justify-self:start;}
}
@media(max-width:760px){
  .dmx-hero-modern{min-height:auto;}
  .dmx-standard-hero-band,.dmx-services-overview-shell,.dmx-company-section{padding-top:32px;padding-bottom:32px;}
  .dmx-standard-hero-inner,.dmx-company-strip-inner,.dmx-company-section,.dmx-services-overview-shell{width:min(100% - 28px,1280px);}
  .dmx-standard-hero-copy h1,.dmx-support-mock-copy h1{font-size:clamp(2.4rem,12vw,3.7rem);}
  .dmx-company-timeline,.dmx-company-values-grid,.dmx-company-strip-inner,.dmx-services-overview-grid,.dmx-stats-grid{grid-template-columns:1fr;}
  .dmx-services-overview-method,.dmx-services-overview-cta{padding:24px;}
  .dmx-support-mock-card{width:min(100% - 28px,1280px);}
  .dmx-support-mock-hero{padding:40px 24px 24px;}
  .dmx-support-mock-steps-wrap,.dmx-support-mock-info,.dmx-support-mock-extra{padding-left:18px;padding-right:18px;}
}



.gn-support-config-note{
  display:block;
  margin:14px 0 0;
  color:#55657f;
  font-size:.8rem;
  line-height:1.5;
}


/* Pagina Contatti stile Datamix - v1.5.0 */
.dmx-contact-modern-page{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#fff;}
.dmx-contact-modern-hero{position:relative;width:100vw;margin-left:calc(50% - 50vw);min-height:570px;display:flex;align-items:center;background-image:var(--dmx-contact-hero-image);background-size:cover;background-position:center var(--dmx-contact-hero-position-y,50%);overflow:hidden;min-height:var(--dmx-contact-hero-height,570px)!important;}
.dmx-contact-modern-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,28,59,.48) 0%,rgba(7,28,59,.20) 40%,rgba(7,28,59,.03) 68%,rgba(7,28,59,.08) 100%);}
.dmx-contact-modern-container{position:relative;z-index:1;width:min(calc(100vw - 112px),1280px);margin:0 auto;}
.dmx-contact-modern-hero-copy{max-width:500px;color:#fff;}
.dmx-contact-modern-hero-copy h1{margin:0 0 19px;color:#fff;font-size:clamp(3.3rem,5vw,4.8rem);line-height:1.04;font-weight:400;letter-spacing:-.055em;}
.dmx-contact-modern-hero-copy p{margin:0;color:rgba(255,255,255,.97);font-size:clamp(1.2rem,1.6vw,1.5rem);line-height:1.5;font-weight:400;}
.dmx-contact-modern-body{width:100vw;margin-left:calc(50% - 50vw);padding:52px 0 22px;background:#fff;min-height:0!important;}
.dmx-contact-modern-layout{width:min(calc(100vw - 112px),1280px);margin:0 auto 0;display:grid;grid-template-columns:minmax(280px,.68fr) minmax(480px,1.2fr);gap:68px;align-items:start;min-height:0!important;}
.dmx-contact-modern-details h2{margin:0 0 13px;color:#0b234d;font-size:clamp(1.7rem,2.2vw,2.05rem);line-height:1.17;letter-spacing:-.035em;}
.dmx-contact-modern-intro{margin:0 0 31px;color:#546681;font-size:1rem;line-height:1.62;max-width:370px;}
.dmx-contact-detail-list{display:grid;gap:20px;}
.dmx-contact-detail{display:flex;align-items:center;gap:17px;}
.dmx-contact-detail-icon{flex:0 0 52px;width:52px;height:52px;display:grid;place-items:center;border:1px solid #dbe4ef;color:#103b79;background:#fff;}
.dmx-contact-detail-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.dmx-contact-detail strong{display:block;margin-bottom:3px;color:#102b59;font-size:.93rem;font-weight:750;}
.dmx-contact-detail a,.dmx-contact-detail span{color:#1458ad;font-size:1rem;line-height:1.42;text-decoration:none!important;}
.dmx-contact-modern-form{padding-top:1px;color:#102b59;margin-bottom:0!important;padding-bottom:0!important;}
.dmx-contact-modern-form > h2,.dmx-contact-modern-form .wp-block-heading:first-child{margin:0 0 20px;}
.dmx-contact-modern-form p:first-child{margin-top:0;}
.dmx-contact-modern-form form,.dmx-contact-modern-form .wpforms-container,.dmx-contact-modern-form .wpcf7,.dmx-contact-modern-form .fluentform,.dmx-contact-modern-form .frm-fluent-form{margin:0!important;max-width:none!important;padding-bottom:0!important;}
.dmx-contact-modern-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),.dmx-contact-modern-form select,.dmx-contact-modern-form textarea{display:block;width:100%!important;max-width:100%!important;min-height:54px;padding:14px 18px!important;border:1px solid #d7dfeb!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;color:#142d54!important;font-size:1rem!important;}
.dmx-contact-modern-form textarea{min-height:124px!important;resize:vertical;}
.dmx-contact-modern-form input[type="submit"],.dmx-contact-modern-form button[type="submit"],.dmx-contact-modern-form .wpforms-submit{min-height:54px!important;padding:0 34px!important;border:0!important;border-radius:0!important;background:#082a5f!important;color:#fff!important;font-weight:800!important;text-transform:uppercase;letter-spacing:.09em;font-size:.86rem!important;}
.dmx-contact-modern-form label{color:#1a345b!important;font-weight:650!important;}
.dmx-contact-modern-form .wpforms-field,.dmx-contact-modern-form .wpcf7-form-control-wrap{margin-bottom:14px;}
.dmx-contact-modern-page .dmx-map-section{display:none!important;}
@media(max-width:980px){.dmx-contact-modern-hero{min-height:min(var(--dmx-contact-hero-height,570px),520px)!important;}.dmx-contact-modern-container,.dmx-contact-modern-layout{width:min(calc(100vw - 48px),1280px);}.dmx-contact-modern-layout{grid-template-columns:1fr;gap:42px;}.dmx-contact-modern-intro{max-width:none;}.dmx-contact-modern-body{padding-bottom:20px;}}
@media(max-width:620px){.dmx-contact-modern-hero{min-height:min(var(--dmx-contact-hero-height,570px),440px)!important;background-position:58% var(--dmx-contact-hero-position-y,50%)!important;}.dmx-contact-modern-container,.dmx-contact-modern-layout{width:min(calc(100vw - 28px),1280px);}.dmx-contact-modern-hero-copy h1{font-size:2.7rem;}.dmx-contact-modern-hero-copy p{font-size:1.1rem;}.dmx-contact-modern-body{padding:38px 0 20px;}}


/* Pagina Contatti - rimozione spazio superiore sopra HERO - v1.5.1 */
body.gn-page-contatti main,
body.gn-page-contatti #primary,
body.gn-page-contatti .dmx-contact-modern-page,
body.gn-page-contatti .dmx-contact-modern-hero {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
body.gn-page-contatti .dmx-contact-modern-page {
  display: block;
}
body.gn-page-contatti .dmx-contact-modern-hero {
  margin-bottom: 0 !important;
}
body.gn-page-contatti .gn-header + main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}


/* Fluent Forms / Contact Form 7 - pagina Contatti - v1.5.2 */
.dmx-contact-modern-form .fluentform,
.dmx-contact-modern-form .frm-fluent-form,
.dmx-contact-modern-form .wpcf7 {
  margin: 0 !important;
  max-width: none !important;
}
.dmx-contact-modern-form .ff-el-group {
  margin-bottom: 16px !important;
}
.dmx-contact-modern-form .ff-el-form-control {
  display: block;
  width: 100% !important;
  min-height: 54px !important;
  padding: 14px 18px !important;
  border: 1px solid #d7dfeb !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  color: #142d54 !important;
  font-size: 1rem !important;
}
.dmx-contact-modern-form textarea.ff-el-form-control {
  min-height: 124px !important;
}
.dmx-contact-modern-form .ff-btn-submit,
.dmx-contact-modern-form .ff-btn {
  min-height: 54px !important;
  padding: 0 34px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #082a5f !important;
  color: #fff !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .09em !important;
  font-size: .86rem !important;
}
.dmx-contact-modern-form .ff-el-input--label label {
  color: #1a345b !important;
  font-weight: 650 !important;
}


/* Personalizzazioni GIOVE v1.6.0 */
.gn-service:focus-visible{
 outline:2px solid var(--gn-blue);
 outline-offset:3px;
}
.gn-service:hover .gn-link{color:var(--gn-blue-deep)!important}
.gn-footer-wordmark{
 display:flex;
 align-items:baseline;
 gap:7px;
 margin:0 0 22px;
 color:#fff;
 letter-spacing:-.035em;
}
.gn-footer-wordmark strong{
 font-size:1.55rem;
 line-height:1;
 font-weight:700;
}
.gn-footer-wordmark span{
 font-size:1.35rem;
 line-height:1;
 font-weight:300;
 color:#e1e9f7;
}
.gn-tv-button{
 display:inline-flex!important;
 align-items:center;
 gap:13px;
}
.gn-tv-button .gn-teamviewer-symbol{
 display:block;
 width:27px;
 height:27px;
 flex:0 0 auto;
}
.gn-tv-button::after{display:none!important}

/* Azienda */
.gn-company-intro{
 padding:72px 0 68px;
 background:#fff;
 border-bottom:1px solid var(--gn-border);
}
.gn-company-intro-grid{
 display:grid;
 grid-template-columns:.88fr 1.12fr;
 gap:76px;
 align-items:start;
}
.gn-company-prose p{
 margin:0 0 20px;
 color:var(--gn-text);
 font-size:1.04rem;
 line-height:1.78;
}
.gn-company-pillars{
 padding:68px 0 74px;
 border-bottom:1px solid var(--gn-border);
}
.gn-company-grid{
 display:grid;
 grid-template-columns:repeat(4,1fr);
 gap:16px;
}
.gn-company-card{
 background:#fff;
 border:1px solid var(--gn-border);
 border-radius:7px;
 padding:28px 26px;
 min-height:250px;
}
.gn-company-card h3{
 font-size:1.08rem;
 margin:0 0 12px;
 color:var(--gn-navy);
}
.gn-company-card p{
 font-size:.89rem;
 line-height:1.67;
 color:var(--gn-text);
 margin:0;
}
.gn-company-approach{
 padding:72px 0;
 background:#fff;
}
.gn-company-approach-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:68px;
 align-items:start;
}
.gn-company-panel p:not(.gn-label){
 color:var(--gn-text);
 font-size:.98rem;
 line-height:1.72;
 margin:0 0 18px;
}
.gn-company-method-list{
 display:grid;
 gap:0;
 border-top:1px solid var(--gn-border);
}
.gn-company-method-list div{
 display:grid;
 grid-template-columns:52px 1fr;
 column-gap:18px;
 padding:21px 0;
 border-bottom:1px solid var(--gn-border);
}
.gn-company-method-list strong{
 grid-row:1/3;
 color:var(--gn-blue);
 font-size:.95rem;
}
.gn-company-method-list h3{
 margin:0 0 6px;
 font-size:1rem;
 color:var(--gn-navy);
}
.gn-company-method-list p{
 margin:0;
 color:var(--gn-text);
 font-size:.87rem;
 line-height:1.55;
}
@media(max-width:1050px){
 .gn-company-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:860px){
 .gn-company-intro-grid,.gn-company-approach-grid{grid-template-columns:1fr;gap:32px}
 .gn-company-grid{grid-template-columns:1fr}
 .gn-company-intro,.gn-company-pillars,.gn-company-approach{padding:50px 0}
}


/* v1.6.3 - Home mobile: blocchi editoriali sempre impaginati immagine sopra / testo sotto */
@media (max-width: 860px) {
  .gn-editorial .gn-feature-row,
  .gn-editorial .gn-feature-row.gn-feature-reverse {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    width: 100%;
  }

  .gn-editorial .gn-feature-row .gn-feature-image,
  .gn-editorial .gn-feature-row.gn-feature-reverse .gn-feature-image {
    order: 1 !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 16 / 10;
  }

  .gn-editorial .gn-feature-row .gn-feature-image img {
    width: 100% !important;
    height: 100% !important;
    display: block;
    object-fit: cover;
    object-position: center center;
  }

  .gn-editorial .gn-feature-row .gn-feature-copy,
  .gn-editorial .gn-feature-row.gn-feature-reverse .gn-feature-copy {
    order: 2 !important;
    width: 100% !important;
  }
}


/* v1.6.4 - Menu servizi con sottomenu desktop/mobile */
.gn-nav li{position:relative}
.gn-nav > ul{display:flex;align-items:center;list-style:none;padding:0;margin:0;gap:32px}
.gn-nav > ul > li > a{padding:30px 0}
.gn-nav .menu-item-has-children > a{display:flex;align-items:center;gap:7px}
.gn-nav .menu-item-has-children > a:before{content:""}
.gn-nav .menu-item-has-children > a:after{content:"⌄";position:static;height:auto;background:none;color:currentColor;font-size:.85rem;line-height:1;opacity:.72}
.gn-nav .current-menu-item>a:after{content:"";height:2px;background:var(--gn-blue);left:0;right:0;bottom:21px;position:absolute}
.gn-nav .menu-item-has-children.current-menu-item > a:after,
.gn-nav .menu-item-has-children.current-menu-ancestor > a:after{content:"⌄";position:static;height:auto;background:none;color:currentColor;font-size:.85rem;opacity:.72}
.gn-nav .sub-menu{position:absolute;top:100%;left:-22px;z-index:80;min-width:255px;display:grid;gap:0!important;list-style:none;margin:0;padding:10px!important;background:#fff;border:1px solid var(--gn-border);border-radius:10px;box-shadow:0 20px 50px rgba(16,35,73,.12);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.gn-nav li:hover > .sub-menu,
.gn-nav li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.gn-nav .sub-menu a{padding:11px 13px!important;border-radius:7px;font-size:.88rem;line-height:1.25;color:var(--gn-navy)}
.gn-nav .sub-menu a:hover,
.gn-nav .sub-menu .current-menu-item>a{background:#f2f7ff;color:var(--gn-blue)}
.gn-nav .sub-menu .current-menu-item>a:after{display:none}
.gn-nav .current-menu-ancestor>a{color:var(--gn-blue)}

@media(max-width:860px){
 .gn-nav > ul{display:block!important}
 .gn-nav li{border-bottom:1px solid #edf2fb}
 .gn-nav li:last-child{border-bottom:0}
 .gn-nav > ul > li > a{padding:13px 0!important;font-size:1rem;font-weight:650}
 .gn-nav .sub-menu{position:static;min-width:0;display:block!important;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-radius:0;background:#f8fbff;margin:0 0 10px!important;padding:8px 12px 10px!important}
 .gn-nav .sub-menu li{border:0}
 .gn-nav .sub-menu a{padding:10px 12px!important;font-size:.94rem;color:#44536d;border-left:2px solid transparent}
 .gn-nav .sub-menu a:hover,
 .gn-nav .sub-menu .current-menu-item>a{background:#eef5ff;border-left-color:var(--gn-blue)}
 .gn-nav .menu-item-has-children > a:after{margin-left:auto}
}

/* v1.6.4 - Pagine servizio */
.gn-service-detail{padding:62px 0 72px;background:#fff}
.gn-service-detail-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:42px;align-items:start}
.gn-service-detail-panel{border:1px solid var(--gn-border);border-radius:12px;background:#f8fbff;padding:30px;box-shadow:var(--gn-shadow)}
.gn-service-detail-panel .gn-icon{width:62px;height:62px;margin-bottom:18px}
.gn-service-detail-panel h2{margin:0 0 14px;font-size:1.65rem;letter-spacing:-.04em;color:var(--gn-navy)}
.gn-service-detail-panel p{margin:0;color:var(--gn-text);line-height:1.7;font-size:.96rem}
.gn-service-points{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.gn-service-point{background:#fff;border:1px solid var(--gn-border);border-radius:10px;padding:24px;min-height:176px}
.gn-service-point .gn-icon{width:38px;height:38px;margin-bottom:13px}
.gn-service-point h3{margin:0 0 10px;color:var(--gn-navy);font-size:1.02rem}
.gn-service-point p{margin:0;color:var(--gn-text);line-height:1.58;font-size:.9rem}
.gn-service-strip{padding:30px 0;background:#f2f7ff;border-block:1px solid var(--gn-border)}
.gn-service-strip-inner{display:flex;align-items:center;justify-content:space-between;gap:28px}
.gn-service-strip h2{font-size:1.35rem;margin:0 0 6px;letter-spacing:-.035em}.gn-service-strip p{margin:0;color:var(--gn-text);line-height:1.55}
@media(max-width:860px){.gn-service-detail-grid,.gn-service-points{grid-template-columns:1fr}.gn-service-detail{padding:42px 0 52px}.gn-service-strip-inner{display:block}.gn-service-strip .gn-btn{margin-top:18px}}






/* v1.6.7 - Sezione UPS SOLO nella pagina Backup e Continuity */
.gn-ups-section {
  margin: 0;
  padding: clamp(54px, 7vw, 86px) 0;
  background:
    radial-gradient(circle at 14% 18%, rgba(31, 111, 235, 0.11), transparent 34%),
    radial-gradient(circle at 88% 16%, rgba(0, 194, 255, 0.11), transparent 28%),
    linear-gradient(135deg, #f8fbff 0%, #eef5ff 100%);
  border-top: 1px solid rgba(31, 111, 235, 0.10);
  border-bottom: 1px solid rgba(31, 111, 235, 0.10);
}

.gn-ups-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(300px, 0.98fr);
  gap: clamp(28px, 5vw, 60px);
  align-items: center;
}

.gn-ups-eyebrow {
  margin: 0 0 12px;
  color: #1f6feb;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.gn-ups-title {
  margin: 0 0 18px;
  color: #142033;
  font-size: clamp(2rem, 4vw, 3.15rem);
  line-height: 1.05;
  letter-spacing: -0.04em;
}

.gn-ups-lead {
  margin: 0 0 24px;
  color: #53617a;
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  line-height: 1.65;
}

.gn-ups-list {
  display: grid;
  gap: 14px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

.gn-ups-list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  color: #26364f;
  font-weight: 650;
  line-height: 1.45;
}

.gn-ups-list li::before {
  content: "✓";
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 999px;
  background: #1f6feb;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 900;
}

.gn-ups-visual {
  position: relative;
  border-radius: 26px;
  overflow: hidden;
  min-height: 360px;
  background: linear-gradient(145deg, #0b1324 0%, #111d33 58%, #173b6b 100%);
  box-shadow: 0 24px 70px rgba(20, 32, 51, 0.18);
}

.gn-ups-visual img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  display: block;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 860px) {
  .gn-ups-section {
    padding: 42px 0;
  }

  .gn-ups-grid {
    grid-template-columns: 1fr;
  }

  .gn-ups-visual {
    min-height: 250px;
    order: -1;
  }

  .gn-ups-visual img {
    min-height: 250px;
    aspect-ratio: 16 / 10;
  }
}


/* v1.6.9 - Menu servizi come voce padre non cliccabile */
.main-header-menu .menu-item > a[href="#"] {
  cursor: default;
}

@media (max-width: 921px) {
  .main-header-menu .menu-item-has-children > a[href="#"] {
    pointer-events: none;
  }

  .main-header-menu .sub-menu {
    padding-left: 12px;
  }
}




/* v1.8.0 - Footer senza nota globale e wordmark coerente col font del footer */
.gn-footer-wordmark {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin: 0 0 22px;
  color: #fff;
  letter-spacing: -0.035em;
  font-family: inherit;
}

.gn-footer-wordmark strong {
  font-family: inherit;
  font-size: 1.55rem;
  line-height: 1;
  font-weight: 700;
  color: #fff;
}

.gn-footer-wordmark span {
  font-family: inherit;
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 300;
  color: #e1e9f7;
}


/* v1.8.3 - HERO pagine interne con immagine a tutta grandezza, come Home */
.gn-pagehero-full {
  position: relative;
  min-height: clamp(560px, 70vh, 780px);
  padding: 0;
  overflow: hidden;
  background: #071735;
  display: flex;
  align-items: center;
  border-bottom: 0;
}

.gn-pagehero-full .gn-pagehero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.gn-pagehero-full .gn-pagehero-media img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  transform: scale(1.01);
}

.gn-pagehero-full .gn-pagehero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(7, 23, 53, 0.92) 0%, rgba(7, 23, 53, 0.74) 34%, rgba(7, 23, 53, 0.34) 68%, rgba(7, 23, 53, 0.15) 100%),
    linear-gradient(180deg, rgba(7, 23, 53, 0.22) 0%, rgba(7, 23, 53, 0.38) 100%);
}

.gn-pagehero-full .gn-pagehero-content {
  position: relative;
  z-index: 2;
  width: min(1760px, calc(100% - 112px));
  max-width: none;
  margin: 0 auto;
  padding: clamp(88px, 9vw, 132px) 0;
}

.gn-pagehero-full .gn-pagehero-copy {
  max-width: 760px;
}

.gn-pagehero-full .gn-label {
  color: #6ea8ff;
}

.gn-pagehero-full .gn-h1 {
  max-width: 760px;
  color: #ffffff;
  text-shadow: 0 14px 40px rgba(0,0,0,0.28);
}

.gn-pagehero-full .gn-lead {
  max-width: 690px;
  color: rgba(255,255,255,0.82);
}

.gn-pagehero-full .gn-btn-outline {
  color: #fff;
  border-color: rgba(255,255,255,0.36);
}

.gn-pagehero-full .gn-btn-outline:hover {
  border-color: rgba(255,255,255,0.7);
}

@media (max-width: 1200px) {
  .gn-pagehero-full .gn-pagehero-content {
    width: calc(100% - 64px);
  }

  .gn-pagehero-full {
    min-height: 600px;
  }

  .gn-pagehero-full .gn-pagehero-overlay {
    background:
      linear-gradient(90deg, rgba(7, 23, 53, 0.94) 0%, rgba(7, 23, 53, 0.78) 48%, rgba(7, 23, 53, 0.34) 100%),
      linear-gradient(180deg, rgba(7, 23, 53, 0.18) 0%, rgba(7, 23, 53, 0.45) 100%);
  }
}

@media (max-width: 860px) {
  .gn-pagehero-full {
    min-height: 560px;
    align-items: flex-end;
  }

  .gn-pagehero-full .gn-pagehero-content {
    width: calc(100% - 32px);
    padding: 160px 0 46px;
  }

  .gn-pagehero-full .gn-pagehero-copy {
    max-width: 100%;
  }

  .gn-pagehero-full .gn-pagehero-overlay {
    background:
      linear-gradient(180deg, rgba(7, 23, 53, 0.16) 0%, rgba(7, 23, 53, 0.62) 42%, rgba(7, 23, 53, 0.95) 100%);
  }

  .gn-pagehero-full .gn-h1 {
    font-size: clamp(2.45rem, 12vw, 4.1rem);
  }

  .gn-pagehero-full .gn-lead {
    color: rgba(255,255,255,0.84);
  }
}


/* v1.8.4 - HERO: overlay più leggero e luminosità regolabile */
.gn-pagehero-full .gn-pagehero-media img {
  filter: brightness(var(--gn-hero-brightness, 108%));
}

.gn-pagehero-full .gn-pagehero-overlay {
  background:
    linear-gradient(
      90deg,
      rgba(7, 23, 53, var(--gn-hero-overlay-strong, 0.42)) 0%,
      rgba(7, 23, 53, var(--gn-hero-overlay-mid, 0.30)) 34%,
      rgba(7, 23, 53, var(--gn-hero-overlay-soft, 0.14)) 68%,
      rgba(7, 23, 53, 0.06) 100%
    ),
    linear-gradient(
      180deg,
      rgba(7, 23, 53, 0.10) 0%,
      rgba(7, 23, 53, var(--gn-hero-overlay-mid, 0.30)) 100%
    );
}

@media (max-width: 1200px) {
  .gn-pagehero-full .gn-pagehero-overlay {
    background:
      linear-gradient(
        90deg,
        rgba(7, 23, 53, calc(var(--gn-hero-overlay-strong, 0.42) + 0.04)) 0%,
        rgba(7, 23, 53, calc(var(--gn-hero-overlay-mid, 0.30) + 0.04)) 48%,
        rgba(7, 23, 53, var(--gn-hero-overlay-soft, 0.14)) 100%
      ),
      linear-gradient(
        180deg,
        rgba(7, 23, 53, 0.10) 0%,
        rgba(7, 23, 53, calc(var(--gn-hero-overlay-mid, 0.30) + 0.06)) 100%
      );
  }
}

@media (max-width: 860px) {
  .gn-pagehero-full .gn-pagehero-overlay {
    background:
      linear-gradient(
        180deg,
        rgba(7, 23, 53, 0.08) 0%,
        rgba(7, 23, 53, calc(var(--gn-hero-overlay-mid, 0.30) + 0.08)) 42%,
        rgba(7, 23, 53, var(--gn-hero-overlay-bottom, 0.38)) 100%
      );
  }
}


/* v1.8.5 - Home HERO a tutta larghezza come le pagine interne */
body.home .gn-hero,
body.front-page .gn-hero,
.gn-home-hero {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  min-height: clamp(560px, 72vh, 820px);
  padding: 0;
  overflow: hidden;
  background: #071735;
  display: flex;
  align-items: center;
  border-bottom: 0;
}

body.home .gn-hero .gn-container,
body.front-page .gn-hero .gn-container,
.gn-home-hero .gn-container {
  width: min(1760px, calc(100% - 112px));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 2;
}

body.home .gn-hero-grid,
body.front-page .gn-hero-grid,
.gn-home-hero .gn-hero-grid {
  min-height: clamp(560px, 72vh, 820px);
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(52px, 6vw, 104px);
  align-items: center;
}

body.home .gn-hero-media,
body.front-page .gn-hero-media,
.gn-home-hero .gn-hero-media,
body.home .gn-hero-image,
body.front-page .gn-hero-image,
.gn-home-hero .gn-hero-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  border-radius: 0 !important;
  overflow: hidden;
  box-shadow: none !important;
}

body.home .gn-hero-media img,
body.front-page .gn-hero-media img,
.gn-home-hero .gn-hero-media img,
body.home .gn-hero-image img,
body.front-page .gn-hero-image img,
.gn-home-hero .gn-hero-image img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  transform: scale(1.01);
  filter: brightness(var(--gn-hero-brightness, 108%));
}

body.home .gn-hero::before,
body.front-page .gn-hero::before,
.gn-home-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(7, 23, 53, var(--gn-hero-overlay-strong, 0.42)) 0%, rgba(7, 23, 53, var(--gn-hero-overlay-mid, 0.30)) 34%, rgba(7, 23, 53, var(--gn-hero-overlay-soft, 0.14)) 68%, rgba(7, 23, 53, 0.06) 100%),
    linear-gradient(180deg, rgba(7, 23, 53, 0.10) 0%, rgba(7, 23, 53, var(--gn-hero-overlay-mid, 0.30)) 100%);
}

body.home .gn-hero-copy,
body.front-page .gn-hero-copy,
.gn-home-hero .gn-hero-copy,
body.home .gn-hero-text,
body.front-page .gn-hero-text,
.gn-home-hero .gn-hero-text {
  position: relative;
  z-index: 3;
  max-width: 760px;
}

body.home .gn-hero .gn-label,
body.front-page .gn-hero .gn-label,
.gn-home-hero .gn-label {
  color: #6ea8ff;
}

body.home .gn-hero .gn-h1,
body.front-page .gn-hero .gn-h1,
.gn-home-hero .gn-h1,
body.home .gn-hero h1,
body.front-page .gn-hero h1,
.gn-home-hero h1 {
  color: #ffffff;
  text-shadow: 0 14px 40px rgba(0,0,0,0.28);
}

body.home .gn-hero .gn-lead,
body.front-page .gn-hero .gn-lead,
.gn-home-hero .gn-lead {
  color: rgba(255,255,255,0.84);
}

body.home .gn-hero .gn-card,
body.front-page .gn-hero .gn-card,
.gn-home-hero .gn-card {
  position: relative;
  z-index: 3;
}

@media (max-width: 1200px) {
  body.home .gn-hero .gn-container,
  body.front-page .gn-hero .gn-container,
  .gn-home-hero .gn-container {
    width: calc(100% - 64px);
  }

  body.home .gn-hero-grid,
  body.front-page .gn-hero-grid,
  .gn-home-hero .gn-hero-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  body.home .gn-hero,
  body.front-page .gn-hero,
  .gn-home-hero {
    min-height: 640px;
  }
}

@media (max-width: 860px) {
  body.home .gn-hero,
  body.front-page .gn-hero,
  .gn-home-hero {
    min-height: 590px;
    align-items: flex-end;
  }

  body.home .gn-hero .gn-container,
  body.front-page .gn-hero .gn-container,
  .gn-home-hero .gn-container {
    width: calc(100% - 32px);
  }

  body.home .gn-hero-grid,
  body.front-page .gn-hero-grid,
  .gn-home-hero .gn-hero-grid {
    min-height: 590px;
    padding: 160px 0 48px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  body.home .gn-hero::before,
  body.front-page .gn-hero::before,
  .gn-home-hero::before {
    background:
      linear-gradient(180deg, rgba(7, 23, 53, 0.08) 0%, rgba(7, 23, 53, calc(var(--gn-hero-overlay-mid, 0.30) + 0.08)) 42%, rgba(7, 23, 53, var(--gn-hero-overlay-bottom, 0.38)) 100%);
  }
}


/* v1.8.6 - Home HERO: leggibilità testi su immagini chiare */
body.home .gn-hero::before,
body.front-page .gn-hero::before,
.gn-home-hero::before {
  background:
    linear-gradient(
      90deg,
      rgba(7, 23, 53, 0.92) 0%,
      rgba(7, 23, 53, 0.78) 34%,
      rgba(7, 23, 53, 0.38) 64%,
      rgba(7, 23, 53, 0.12) 100%
    ),
    linear-gradient(
      180deg,
      rgba(7, 23, 53, 0.22) 0%,
      rgba(7, 23, 53, 0.42) 100%
    ) !important;
}

body.home .gn-hero-copy,
body.front-page .gn-hero-copy,
.gn-home-hero .gn-hero-copy,
body.home .gn-hero-text,
body.front-page .gn-hero-text,
.gn-home-hero .gn-hero-text {
  position: relative;
  z-index: 4;
  max-width: 780px;
}

body.home .gn-hero .gn-label,
body.front-page .gn-hero .gn-label,
.gn-home-hero .gn-label {
  color: #8fbaff !important;
  text-shadow: 0 4px 18px rgba(0,0,0,0.45);
}

body.home .gn-hero .gn-h1,
body.front-page .gn-hero .gn-h1,
.gn-home-hero .gn-h1,
body.home .gn-hero h1,
body.front-page .gn-hero h1,
.gn-home-hero h1 {
  color: #ffffff !important;
  text-shadow: 0 14px 42px rgba(0,0,0,0.62), 0 2px 10px rgba(0,0,0,0.45);
}

body.home .gn-hero .gn-lead,
body.front-page .gn-hero .gn-lead,
.gn-home-hero .gn-lead,
body.home .gn-hero .gn-hero-copy > p:not(.gn-label),
body.front-page .gn-hero .gn-hero-copy > p:not(.gn-label),
.gn-home-hero .gn-hero-copy > p:not(.gn-label) {
  color: rgba(255,255,255,0.92) !important;
  text-shadow: 0 8px 26px rgba(0,0,0,0.55), 0 2px 8px rgba(0,0,0,0.42);
}

@media (max-width: 860px) {
  body.home .gn-hero::before,
  body.front-page .gn-hero::before,
  .gn-home-hero::before {
    background:
      linear-gradient(
        180deg,
        rgba(7, 23, 53, 0.10) 0%,
        rgba(7, 23, 53, 0.62) 38%,
        rgba(7, 23, 53, 0.96) 100%
      ) !important;
  }
}


/* v1.8.7 - Home HERO piena, senza sfumatura laterale, con controlli dedicati */
body.home .gn-hero-media img,
body.front-page .gn-hero-media img,
.gn-home-hero .gn-hero-media img,
body.home .gn-hero-image img,
body.front-page .gn-hero-image img,
.gn-home-hero .gn-hero-image img {
  filter: brightness(var(--gn-home-hero-brightness, 108%)) !important;
  object-position: var(--gn-home-hero-position, center center) !important;
}

/* Elimina la sfumatura laterale della Home: immagine piena.
   Resta solo un eventuale velo uniforme, regolabile e di default a 0. */
body.home .gn-hero::before,
body.front-page .gn-hero::before,
.gn-home-hero::before {
  background: rgba(7, 23, 53, var(--gn-home-hero-uniform-overlay, 0)) !important;
}

/* Mantiene leggibile il testo senza oscurare l'immagine a sinistra */
body.home .gn-hero .gn-h1,
body.front-page .gn-hero .gn-h1,
.gn-home-hero .gn-h1,
body.home .gn-hero h1,
body.front-page .gn-hero h1,
.gn-home-hero h1 {
  text-shadow: 0 16px 44px rgba(0,0,0,0.68), 0 3px 12px rgba(0,0,0,0.50) !important;
}

body.home .gn-hero .gn-lead,
body.front-page .gn-hero .gn-lead,
.gn-home-hero .gn-lead,
body.home .gn-hero .gn-hero-copy > p:not(.gn-label),
body.front-page .gn-hero .gn-hero-copy > p:not(.gn-label),
.gn-home-hero .gn-hero-copy > p:not(.gn-label) {
  text-shadow: 0 10px 30px rgba(0,0,0,0.62), 0 2px 10px rgba(0,0,0,0.46) !important;
}

@media (max-width: 860px) {
  body.home .gn-hero::before,
  body.front-page .gn-hero::before,
  .gn-home-hero::before {
    background: rgba(7, 23, 53, max(var(--gn-home-hero-uniform-overlay, 0), 0.18)) !important;
  }
}


/* v1.8.8 - Home HERO: rimozione definitiva sfumatura bianca laterale */
body.home .gn-hero,
body.front-page .gn-hero,
.gn-home-hero {
  background: #071735 !important;
}

/* Questa era la vera sfumatura bianca della Home originale: la disattivo. */
body.home .gn-hero::after,
body.front-page .gn-hero::after,
.gn-home-hero::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* Immagine piena da bordo a bordo, non più solo sul lato destro. */
body.home .gn-hero .gn-hero-media,
body.front-page .gn-hero .gn-hero-media,
.gn-home-hero .gn-hero-media {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 0 !important;
}

body.home .gn-hero .gn-hero-media img,
body.front-page .gn-hero .gn-hero-media img,
.gn-home-hero .gn-hero-media img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: var(--gn-home-hero-position, center center) !important;
  filter: brightness(var(--gn-home-hero-brightness, 108%)) !important;
}

/* Nessun gradiente laterale: solo eventuale velo uniforme regolabile da Customizer. */
body.home .gn-hero::before,
body.front-page .gn-hero::before,
.gn-home-hero::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background: rgba(7, 23, 53, var(--gn-home-hero-uniform-overlay, 0)) !important;
}

body.home .gn-hero-content,
body.front-page .gn-hero-content,
.gn-home-hero .gn-hero-content {
  position: relative !important;
  z-index: 3 !important;
}

body.home .gn-hero-copy,
body.front-page .gn-hero-copy,
.gn-home-hero .gn-hero-copy {
  position: relative !important;
  z-index: 4 !important;
}


/* v1.8.9 - Footer: link Privacy e Cookie Policy modificabili */
.gn-footer-policy-links {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 22px;
  flex-wrap: wrap;
}

.gn-footer-policy-links a {
  white-space: nowrap;
}

@media (max-width: 860px) {
  .gn-footer-policy-links {
    justify-content: flex-start;
    gap: 16px;
  }
}


/* v1.9.0 - Footer, immagini cliccabili, menu mobile e HERO mobile */
.gn-footer-wordmark {
  display: block;
  margin: 0 0 22px;
  color: #fff;
  letter-spacing: -0.035em;
  font-family: inherit;
  font-size: 1.55rem;
  line-height: 1.05;
  font-weight: 700;
}

.gn-footer-wordmark strong,
.gn-footer-wordmark span {
  font: inherit;
  color: inherit;
}

.gn-feature-image-link {
  display: block;
  color: inherit;
  text-decoration: none !important;
  cursor: pointer;
}

.gn-feature-image-link img {
  transition: transform .35s ease, filter .35s ease;
}

.gn-feature-image-link:hover img {
  transform: scale(1.025);
  filter: brightness(1.04);
}

/* Le etichette delle HERO interne diventano bianche, non azzurre */
.gn-pagehero-full .gn-label {
  color: #ffffff !important;
  text-shadow: 0 6px 22px rgba(0,0,0,.45);
}

/* Mobile: logo più grande e regolabile dal Customizer */
@media (max-width: 860px) {
  .gn-header-inner {
    min-height: calc(var(--gn-header-logo-mobile-height, 58px) + 34px) !important;
  }

  .gn-logo img {
    height: var(--gn-header-logo-mobile-height, 58px) !important;
    max-width: 280px !important;
  }

  .gn-toggle {
    flex: 0 0 auto;
  }

  .gn-nav {
    top: calc(var(--gn-header-logo-mobile-height, 58px) + 34px) !important;
  }

  /* Servizi: chiuso di default, si apre al click */
  .gn-nav .menu-item-has-children > .sub-menu {
    display: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    position: static !important;
  }

  .gn-nav .menu-item-has-children.gn-submenu-open > .sub-menu {
    display: block !important;
  }

  .gn-nav .menu-item-has-children > a {
    justify-content: space-between;
  }

  .gn-nav .menu-item-has-children > a::after {
    content: "⌄" !important;
    display: inline-block !important;
    transform: rotate(0deg);
    transition: transform .18s ease;
  }

  .gn-nav .menu-item-has-children.gn-submenu-open > a::after {
    transform: rotate(180deg);
  }

  /* HERO interne su mobile: allineamento come Home, non centrato */
  .gn-pagehero-full {
    align-items: flex-end !important;
  }

  .gn-pagehero-full .gn-pagehero-content {
    text-align: left !important;
    padding: 150px 0 46px !important;
  }

  .gn-pagehero-full .gn-pagehero-copy,
  .gn-pagehero-full .gn-h1,
  .gn-pagehero-full .gn-lead {
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }

  .gn-pagehero-full .gn-label {
    text-align: left !important;
    color: #ffffff !important;
  }

  .gn-pagehero-full .gn-btns {
    justify-content: flex-start !important;
  }
}

/* Mobile molto stretto */
@media (max-width: 560px) {
  .gn-logo img {
    max-width: calc(100vw - 138px) !important;
  }

  .gn-pagehero-full .gn-h1 {
    text-align: left !important;
  }
}


/* v1.9.1 - Footer: wordmark alto senza Srl, ragione sociale nella riga copyright */
.gn-footer-wordmark {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin: 0 0 22px;
  color: #fff;
  letter-spacing: -0.035em;
  font-family: inherit;
}

.gn-footer-wordmark strong {
  font-family: inherit;
  font-size: 1.55rem;
  line-height: 1;
  font-weight: 700;
  color: #fff;
}

.gn-footer-wordmark span {
  font-family: inherit;
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 300;
  color: #e1e9f7;
}


/* v2.1.1 - Azienda: 8 riquadri competenze cliccabili verso le sezioni Servizi */
.gn-company-grid-services {
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  align-items: stretch;
}

.gn-company-card-link {
  display: flex;
  flex-direction: column;
  text-align: left;
  color: inherit !important;
  text-decoration: none !important;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}

.gn-company-card-link:hover {
  transform: translateY(-4px);
  border-color: rgba(31,111,235,.35);
  box-shadow: 0 20px 48px rgba(15, 36, 74, .10);
  background: #ffffff;
}

.gn-company-card-link svg,
.gn-company-card-link .gn-icon {
  color: var(--gn-blue);
  stroke: var(--gn-blue);
  margin-bottom: 28px;
}

.gn-company-card-link .gn-card-more {
  display: inline-flex;
  margin-top: auto;
  padding-top: 18px;
  color: var(--gn-blue);
  font-weight: 800;
  font-size: .86rem;
}

@media (max-width: 1200px) {
  .gn-company-grid-services {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .gn-company-grid-services {
    grid-template-columns: 1fr;
  }
}


/* v2.1.1 - Icone riquadri Azienda uniformate */
.gn-company-card .gn-icon,
.gn-company-card-link .gn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin-bottom: 26px;
  color: var(--gn-blue);
}

.gn-company-card .gn-icon svg,
.gn-company-card-link .gn-icon svg {
  width: 54px;
  height: 54px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.gn-company-card-link:hover .gn-icon {
  transform: translateY(-2px);
}

.gn-company-card-link .gn-icon {
  transition: transform .22s ease;
}


/* v2.1.1 - Home: riquadri Servizi uniformati e galleria orizzontale */
.gn-services-carousel-wrap {
  position: relative;
  margin-inline: auto;
  overflow: visible;
}

.gn-services-carousel {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 18px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 2px 4px 20px;
  margin: 0 -4px;
  scroll-snap-type: x proximity;
  scroll-padding-left: 4px;
  -webkit-overflow-scrolling: touch;
}

.gn-services-carousel::-webkit-scrollbar {
  height: 9px;
}

.gn-services-carousel::-webkit-scrollbar-track {
  background: #e7eef8;
  border-radius: 999px;
}

.gn-services-carousel::-webkit-scrollbar-thumb {
  background: rgba(31,111,235,.45);
  border-radius: 999px;
}

.gn-services-carousel .gn-service {
  flex: 0 0 clamp(290px, 22vw, 390px);
  min-height: 335px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
}

.gn-services-carousel .gn-service .gn-link {
  margin-top: auto;
}

.gn-services-carousel .gn-service .gn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin-bottom: 26px;
  color: var(--gn-blue);
}

.gn-services-carousel .gn-service .gn-icon svg {
  width: 54px;
  height: 54px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.gn-services-carousel .gn-service:hover .gn-icon {
  transform: translateY(-2px);
}

.gn-services-carousel .gn-service .gn-icon {
  transition: transform .22s ease;
}

@media (min-width: 1280px) {
  .gn-services-carousel .gn-service {
    flex-basis: calc((100% - 54px) / 4);
  }
}

@media (max-width: 860px) {
  .gn-services-carousel {
    gap: 14px;
    padding-bottom: 18px;
  }

  .gn-services-carousel .gn-service {
    flex-basis: min(82vw, 360px);
    min-height: 310px;
  }
}

@media (max-width: 560px) {
  .gn-services-carousel {
    margin-inline: -2px;
    padding-inline: 2px;
  }

  .gn-services-carousel .gn-service {
    flex-basis: 86vw;
  }
}


/* v2.1.1 - Home: controlli carousel servizi e autoplay */
.gn-services-carousel-wrap {
  position: relative;
}

.gn-services-carousel-control {
  position: absolute;
  top: 50%;
  z-index: 5;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(31,111,235,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--gn-blue);
  box-shadow: 0 12px 30px rgba(15,36,74,.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  line-height: 1;
  font-weight: 700;
  cursor: pointer;
  transform: translateY(-50%);
  transition: background .18s ease, color .18s ease, transform .18s ease, border-color .18s ease;
}

.gn-services-carousel-control:hover {
  background: var(--gn-blue);
  color: #fff;
  border-color: var(--gn-blue);
  transform: translateY(-50%) scale(1.06);
}

.gn-services-carousel-prev {
  left: -17px;
}

.gn-services-carousel-next {
  right: -17px;
}

/* leggero indizio visivo che ci sono altri riquadri a destra */
.gn-services-carousel-wrap::after {
  content: "";
  position: absolute;
  top: 0;
  right: -1px;
  bottom: 18px;
  width: 72px;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(244,248,255,0), rgba(244,248,255,.92));
  border-radius: 0 8px 8px 0;
}

.gn-services-carousel-wrap:hover::after {
  opacity: .55;
}

@media (max-width: 1050px) {
  .gn-services-carousel-prev {
    left: 6px;
  }

  .gn-services-carousel-next {
    right: 6px;
  }

  .gn-services-carousel-control {
    top: calc(50% - 8px);
  }
}

@media (max-width: 860px) {
  .gn-services-carousel-control {
    width: 31px;
    height: 31px;
    font-size: 23px;
  }

  .gn-services-carousel-wrap::after {
    width: 46px;
  }
}

@media (max-width: 560px) {
  .gn-services-carousel-prev {
    left: 8px;
  }

  .gn-services-carousel-next {
    right: 8px;
  }
}


/* v2.1.1 - Carousel servizi: frecce minimal, solo triangolino */
.gn-services-carousel-control {
  width: 26px !important;
  height: 46px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--gn-blue) !important;
  opacity: .82;
  padding: 0 !important;
}

.gn-services-carousel-control:hover {
  background: transparent !important;
  color: var(--gn-blue-deep) !important;
  border: 0 !important;
  box-shadow: none !important;
  opacity: 1;
  transform: translateY(-50%) scale(1.08) !important;
}

.gn-services-carousel-control span {
  display: block;
  width: 0;
  height: 0;
}

.gn-services-carousel-prev span {
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-right: 11px solid currentColor;
}

.gn-services-carousel-next span {
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 11px solid currentColor;
}

.gn-services-carousel-prev {
  left: -30px !important;
}

.gn-services-carousel-next {
  right: -30px !important;
}

@media (max-width: 1050px) {
  .gn-services-carousel-prev {
    left: -4px !important;
  }

  .gn-services-carousel-next {
    right: -4px !important;
  }
}

@media (max-width: 560px) {
  .gn-services-carousel-control {
    width: 22px !important;
    height: 42px !important;
  }

  .gn-services-carousel-prev {
    left: 4px !important;
  }

  .gn-services-carousel-next {
    right: 4px !important;
  }

  .gn-services-carousel-prev span {
    border-top-width: 7px;
    border-bottom-width: 7px;
    border-right-width: 10px;
  }

  .gn-services-carousel-next span {
    border-top-width: 7px;
    border-bottom-width: 7px;
    border-left-width: 10px;
  }
}


/* v2.1.1 - HERO pagine interne mobile: testi più alti */
@media (max-width: 860px) {
  body:not(.home) .gn-pagehero-full,
  body:not(.front-page) .gn-pagehero-full {
    min-height: 520px !important;
    align-items: center !important;
  }

  body:not(.home) .gn-pagehero-full .gn-pagehero-content,
  body:not(.front-page) .gn-pagehero-full .gn-pagehero-content {
    padding: 72px 0 118px !important;
    align-self: center !important;
  }

  body:not(.home) .gn-pagehero-full .gn-pagehero-copy,
  body:not(.front-page) .gn-pagehero-full .gn-pagehero-copy {
    transform: translateY(-32px);
  }

  body:not(.home) .gn-pagehero-full .gn-h1,
  body:not(.front-page) .gn-pagehero-full .gn-h1 {
    margin-bottom: 22px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-lead,
  body:not(.front-page) .gn-pagehero-full .gn-lead {
    margin-bottom: 28px !important;
  }
}

@media (max-width: 560px) {
  body:not(.home) .gn-pagehero-full,
  body:not(.front-page) .gn-pagehero-full {
    min-height: 500px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-pagehero-content,
  body:not(.front-page) .gn-pagehero-full .gn-pagehero-content {
    padding: 58px 0 126px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-pagehero-copy,
  body:not(.front-page) .gn-pagehero-full .gn-pagehero-copy {
    transform: translateY(-42px);
  }
}


/* v2.1.1 - HERO pagine interne mobile/tablet: testi leggermente più bassi */
@media (max-width: 1050px) {
  body:not(.home) .gn-pagehero-full {
    position: relative !important;
    display: block !important;
  }

  body:not(.home) .gn-pagehero-full .gn-pagehero-content {
    position: absolute !important;
    left: 50% !important;
    top: 54% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 3 !important;
    width: calc(100% - 40px) !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  body:not(.home) .gn-pagehero-full .gn-pagehero-copy {
    transform: none !important;
  }
}

@media (max-width: 560px) {
  body:not(.home) .gn-pagehero-full .gn-pagehero-content {
    top: 55% !important;
    width: calc(100% - 32px) !important;
  }
}


/* v2.1.1 - HERO mobile pagine interne: struttura unica e contenuto sempre dentro la HERO */
@media (max-width: 1050px) {
  body:not(.home) .gn-pagehero-full {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    min-height: 620px !important;
    overflow: hidden !important;
  }

  body:not(.home) .gn-pagehero-full .gn-pagehero-content {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    z-index: 3 !important;
    width: calc(100% - 44px) !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 74px 0 74px !important;
    align-self: center !important;
  }

  body:not(.home) .gn-pagehero-full .gn-pagehero-copy {
    max-width: 760px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  body:not(.home) .gn-pagehero-full .gn-label {
    margin-bottom: 22px !important;
    color: #fff !important;
    text-align: left !important;
  }

  body:not(.home) .gn-pagehero-full .gn-h1 {
    max-width: 760px !important;
    margin: 0 0 24px !important;
    font-size: clamp(3.05rem, 7.2vw, 4.95rem) !important;
    line-height: .98 !important;
    letter-spacing: -.065em !important;
    text-align: left !important;
  }

  body:not(.home) .gn-pagehero-full .gn-lead {
    max-width: 720px !important;
    margin: 0 0 34px !important;
    font-size: clamp(1.08rem, 2.8vw, 1.55rem) !important;
    line-height: 1.55 !important;
    text-align: left !important;
  }

  body:not(.home) .gn-pagehero-full .gn-btns {
    justify-content: flex-start !important;
    margin-top: 0 !important;
  }

  body:not(.home) .gn-pagehero-full .gn-btn {
    margin-top: 0 !important;
  }
}

/* Smartphone stretti: riduce leggermente il titolo e mantiene il pulsante visibile */
@media (max-width: 560px) {
  body:not(.home) .gn-pagehero-full {
    min-height: 590px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-pagehero-content {
    width: calc(100% - 32px) !important;
    padding: 58px 0 62px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-label {
    margin-bottom: 18px !important;
    font-size: .78rem !important;
    letter-spacing: .18em !important;
  }

  body:not(.home) .gn-pagehero-full .gn-h1 {
    font-size: clamp(2.75rem, 11.3vw, 3.65rem) !important;
    line-height: 1.02 !important;
    margin-bottom: 22px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-lead {
    font-size: clamp(1.06rem, 5vw, 1.32rem) !important;
    line-height: 1.52 !important;
    margin-bottom: 28px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-btns .gn-btn,
  body:not(.home) .gn-pagehero-full .gn-btn {
    width: 100% !important;
  }
}

/* Smartphone molto bassi o browser con toolbar invasiva */
@media (max-width: 560px) and (max-height: 760px) {
  body:not(.home) .gn-pagehero-full {
    min-height: 560px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-pagehero-content {
    padding: 44px 0 48px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-label {
    margin-bottom: 14px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-h1 {
    font-size: clamp(2.35rem, 10vw, 3.05rem) !important;
    margin-bottom: 18px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-lead {
    font-size: clamp(.98rem, 4.45vw, 1.14rem) !important;
    line-height: 1.45 !important;
    margin-bottom: 22px !important;
  }

  body:not(.home) .gn-pagehero-full .gn-btn {
    min-height: 54px !important;
  }
}


/* v2.1.1 - HERO mobile dedicate per pagine interne */
.gn-pagehero-full .gn-pagehero-media picture {
  display: block;
  width: 100%;
  height: 100%;
}
.gn-pagehero-full .gn-pagehero-media picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 1050px) {
  .dmx-contact-modern-hero {
    background-image: var(--dmx-contact-hero-image-mobile, var(--dmx-contact-hero-image)) !important;
  }
}


/* v2.1.1 - Logo G SVG animato nella HERO Home */
.gn-home-hero,
.gn-hero,
.gn-pagehero {
  position: relative;
}

.gn-home-g-logo {
  position: absolute;
  left: var(--gn-g-x, 72%);
  top: var(--gn-g-y, 48%);
  width: var(--gn-g-size, 360px);
  height: var(--gn-g-size, 360px);
  z-index: 2;
  opacity: var(--gn-g-opacity, .34);
  transform: translate(-50%, -50%);
  transform-style: preserve-3d;
  will-change: transform;
  transition: transform .28s cubic-bezier(.2,.8,.2,1), opacity .25s ease, filter .25s ease;
  pointer-events: auto;
  user-select: none;
}

.gn-home-g-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 20px 44px rgba(0,0,0,.18));
}

.gn-home-g-logo:hover {
  opacity: min(calc(var(--gn-g-opacity, .34) + .16), .72);
  filter: brightness(1.06);
}

/* Mantiene il testo sopra la G dove serve */
.gn-home-hero-content,
.gn-hero-content,
.gn-pagehero-content {
  position: relative;
  z-index: 4;
}

@media (max-width: 1050px) {
  .gn-home-g-logo {
    left: var(--gn-g-x-mobile, 72%);
    top: var(--gn-g-y-mobile, 36%);
    width: var(--gn-g-size-mobile, 210px);
    height: var(--gn-g-size-mobile, 210px);
    opacity: calc(var(--gn-g-opacity, .34) * .82);
  }
}

@media (max-width: 560px) {
  .gn-home-g-logo {
    opacity: calc(var(--gn-g-opacity, .34) * .68);
  }
}


/* v2.1.1 - Fix Hover3D logo G: movimento visibile e agganciato alla HERO */
.gn-home-g-logo {
  z-index: 3 !important;
  pointer-events: none !important;
  transform-origin: center center !important;
  transition: opacity .25s ease, filter .25s ease !important;
  backface-visibility: hidden;
}

.gn-home-g-logo img {
  transform: translateZ(42px);
  will-change: transform;
}

.gn-home-g-logo:hover,
.gn-home-hero:hover .gn-home-g-logo,
.gn-hero:hover .gn-home-g-logo,
.gn-pagehero:hover .gn-home-g-logo {
  opacity: min(calc(var(--gn-g-opacity, .34) + .18), .78);
  filter: brightness(1.08);
}


/* v2.1.1 - Logo header modificabile + allineamento HERO con contenitore sito */
.gn-pagehero-full .gn-pagehero-content,
body:not(.home) .gn-pagehero-full .gn-pagehero-content,
body:not(.front-page) .gn-pagehero-full .gn-pagehero-content,
body.home .gn-hero .gn-container,
body.front-page .gn-hero .gn-container,
.gn-home-hero .gn-container {
  width: calc(100% - 80px) !important;
  max-width: var(--gn-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.gn-pagehero-full .gn-pagehero-copy,
body:not(.home) .gn-pagehero-full .gn-pagehero-copy {
  margin-left: 0 !important;
  margin-right: auto !important;
  text-align: left !important;
}

.gn-pagehero-full .gn-label,
.gn-pagehero-full .gn-h1,
.gn-pagehero-full .gn-lead,
.gn-pagehero-full .gn-btns {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}

.gn-pagehero-full .gn-btns {
  justify-content: flex-start !important;
}

@media (max-width: 1050px) {
  .gn-pagehero-full .gn-pagehero-content,
  body:not(.home) .gn-pagehero-full .gn-pagehero-content,
  body:not(.front-page) .gn-pagehero-full .gn-pagehero-content,
  body.home .gn-hero .gn-container,
  body.front-page .gn-hero .gn-container,
  .gn-home-hero .gn-container {
    width: calc(100% - 44px) !important;
    max-width: var(--gn-max) !important;
  }
}

@media (max-width: 560px) {
  .gn-pagehero-full .gn-pagehero-content,
  body:not(.home) .gn-pagehero-full .gn-pagehero-content,
  body:not(.front-page) .gn-pagehero-full .gn-pagehero-content,
  body.home .gn-hero .gn-container,
  body.front-page .gn-hero .gn-container,
  .gn-home-hero .gn-container {
    width: calc(100% - 28px) !important;
  }
}


/* v2.1.1 - Home HERO: regolazione solo iPad/tablet, iPhone invariato */
@media (min-width: 700px) and (max-width: 1050px) {
  body.home .gn-hero,
  body.front-page .gn-hero {
    min-height: 720px !important;
  }

  body.home .gn-hero .gn-hero-content,
  body.front-page .gn-hero .gn-hero-content {
    transform: translateY(var(--gn-hero-tablet-text-offset, 54px)) !important;
  }

  body.home .gn-home-g-logo,
  body.front-page .gn-home-g-logo {
    left: var(--gn-g-x-tablet, 82%) !important;
    top: var(--gn-g-y-tablet, 52%) !important;
    width: var(--gn-g-size-tablet, 260px) !important;
    height: var(--gn-g-size-tablet, 260px) !important;
    opacity: calc(var(--gn-g-opacity, .34) * .78) !important;
  }
}

@media (max-width: 699px) {
  body.home .gn-hero .gn-hero-content,
  body.front-page .gn-hero .gn-hero-content {
    transform: none !important;
  }
}


/* v2.1.1 stable - Schema Architettura IT, aggiunto partendo dal tema v2.1.0 funzionante */
.gn-arch-schema-section {
  padding: clamp(56px, 6vw, 86px) 0;
  background: #fff;
}

.gn-arch-schema-head {
  text-align: center;
  max-width: 850px;
  margin: 0 auto 34px;
}

.gn-arch-schema-head p:not(.gn-label) {
  margin: 0 auto;
  max-width: 760px;
  color: var(--gn-text);
  font-size: 1.06rem;
  line-height: 1.7;
}

.gn-arch-schema-card {
  margin: 0;
}

.gn-arch-schema-map {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 24px;
  background: #fff;
  border: 1px solid #d7e5fb;
  box-shadow: 0 16px 42px rgba(18,45,90,.08);
}

.gn-arch-schema-map img {
  display: block;
  width: 100%;
  height: auto;
}

.gn-arch-schema-hotspot {
  position: absolute;
  display: block;
  border-radius: 18px;
  background: transparent;
  outline: none;
  cursor: pointer;
}

.gn-arch-schema-hotspot:focus-visible {
  box-shadow: 0 0 0 3px rgba(23,105,232,.28);
}

/* Posizioni hotspot proporzionali all'immagine 1448x1086 */
.gn-arch-schema-hotspot.hs-cloud { left: 22.0%; top: 9.4%; width: 17.0%; height: 15.7%; }
.gn-arch-schema-hotspot.hs-backup { left: 59.1%; top: 9.1%; width: 18.0%; height: 15.9%; }
.gn-arch-schema-hotspot.hs-internet { left: 2.2%; top: 34.2%; width: 16.1%; height: 26.5%; }
.gn-arch-schema-hotspot.hs-security { left: 21.1%; top: 34.3%; width: 16.6%; height: 26.4%; }
.gn-arch-schema-hotspot.hs-network { left: 40.8%; top: 34.3%; width: 16.0%; height: 26.3%; }
.gn-arch-schema-hotspot.hs-server { left: 60.1%; top: 34.3%; width: 16.4%; height: 26.5%; }
.gn-arch-schema-hotspot.hs-workstations { left: 78.7%; top: 34.3%; width: 17.3%; height: 26.4%; }
.gn-arch-schema-hotspot.hs-monitoring { left: 21.8%; top: 69.0%; width: 55.8%; height: 11.3%; }

@media (max-width: 700px) {
  .gn-arch-schema-section {
    padding: 44px 0 54px;
  }

  .gn-arch-schema-head {
    text-align: left;
    margin-bottom: 24px;
  }

  .gn-arch-schema-map {
    border-radius: 16px;
  }

  .gn-arch-schema-hotspot {
    border-radius: 10px;
  }
}


/* v2.2.0 - Desktop refinement for Architettura IT schema */
@media (min-width: 1025px) {
  .gn-arch-schema-section {
    padding: 48px 0 58px;
  }

  .gn-arch-schema-head {
    max-width: 920px;
    margin: 0 auto 26px;
  }

  .gn-arch-schema-head .gn-h2 {
    font-size: clamp(2rem, 3vw, 3rem);
  }

  .gn-arch-schema-head p:not(.gn-label) {
    max-width: 780px;
    font-size: 1rem;
  }

  .gn-arch-schema-card {
    max-width: 1120px;
    margin: 0 auto;
  }

  .gn-arch-schema-map {
    border-radius: 22px;
  }
}


/* v2.2.0 - Architettura IT: contenuti discorsivi e sezioni informative */
.gn-arch-deep-dive,
.gn-arch-why,
.gn-arch-result {
  padding: clamp(64px, 6vw, 96px) 0;
  background: #fff;
}

.gn-arch-practical,
.gn-arch-useful {
  padding: clamp(68px, 6vw, 102px) 0;
}

.gn-arch-text-grid,
.gn-arch-result-box {
  display: grid;
  grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr);
  gap: clamp(34px, 5vw, 82px);
  align-items: start;
}

.gn-arch-rich-text p {
  margin: 0 0 20px;
  color: var(--gn-text);
  font-size: 1.06rem;
  line-height: 1.82;
}

.gn-arch-rich-text ul {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.gn-arch-rich-text li {
  position: relative;
  margin: 0 0 13px;
  padding-left: 30px;
  color: var(--gn-text);
  font-size: 1.03rem;
  line-height: 1.65;
}

.gn-arch-rich-text li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .64em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--gn-blue);
  box-shadow: 0 0 0 6px rgba(23,105,232,.11);
}

.gn-arch-section-title {
  text-align: center;
  max-width: 890px;
  margin: 0 auto 42px;
}

.gn-arch-section-title > p:not(.gn-label) {
  margin: 0 auto;
  max-width: 760px;
  color: var(--gn-text);
  font-size: 1.06rem;
  line-height: 1.72;
}

.gn-arch-practical-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.gn-arch-practical-grid article,
.gn-arch-useful-grid > div {
  background: #fff;
  border: 1px solid #dce8f7;
  border-radius: 15px;
  padding: 30px 28px;
  box-shadow: 0 16px 44px rgba(15,36,74,.055);
}

.gn-arch-practical-grid svg {
  width: 42px;
  height: 42px;
  margin-bottom: 22px;
  color: var(--gn-blue);
  stroke: currentColor;
  fill: none;
  stroke-width: 2.15;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.gn-arch-practical-grid h3,
.gn-arch-useful-grid h3 {
  margin: 0 0 12px;
  color: var(--gn-navy);
  font-size: 1.13rem;
  line-height: 1.25;
  letter-spacing: -.025em;
}

.gn-arch-practical-grid p,
.gn-arch-useful-grid p {
  margin: 0;
  color: var(--gn-text);
  line-height: 1.68;
  font-size: .99rem;
}

.gn-arch-useful-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.gn-arch-result-box {
  padding: clamp(34px, 5vw, 58px);
  border-radius: 22px;
  background:
    radial-gradient(circle at 85% 10%, rgba(23,105,232,.12), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
  border: 1px solid #dce8f7;
  box-shadow: 0 18px 58px rgba(15,36,74,.07);
}

@media (max-width: 1050px) {
  .gn-arch-text-grid,
  .gn-arch-result-box {
    grid-template-columns: 1fr;
  }

  .gn-arch-practical-grid,
  .gn-arch-useful-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .gn-arch-deep-dive,
  .gn-arch-why,
  .gn-arch-result {
    padding: 54px 0;
  }

  .gn-arch-practical,
  .gn-arch-useful {
    padding: 58px 0;
  }

  .gn-arch-section-title {
    text-align: left;
    margin-bottom: 28px;
  }

  .gn-arch-practical-grid,
  .gn-arch-useful-grid {
    grid-template-columns: 1fr;
  }

  .gn-arch-practical-grid article,
  .gn-arch-useful-grid > div {
    padding: 26px 24px;
  }

  .gn-arch-result-box {
    padding: 28px 22px;
    border-radius: 16px;
  }
}


/* v2.2.0 - Architettura IT schema: intro text and smaller desktop rendering */
.gn-arch-schema-intro {
  max-width: 940px;
  margin: 0 auto 26px;
}

.gn-arch-schema-intro-copy {
  padding: 24px 28px;
  border: 1px solid #dce8f7;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
  box-shadow: 0 10px 28px rgba(15,36,74,.045);
}

.gn-arch-schema-intro-copy h3 {
  margin: 0 0 12px;
  color: var(--gn-navy);
  font-size: 1.24rem;
  line-height: 1.25;
  letter-spacing: -.02em;
}

.gn-arch-schema-intro-copy p {
  margin: 0 0 12px;
  color: var(--gn-text);
  font-size: 1rem;
  line-height: 1.72;
}

.gn-arch-schema-intro-copy p:last-child {
  margin-bottom: 0;
}

@media (min-width: 1025px) {
  .gn-arch-schema-head {
    margin-bottom: 22px;
  }

  .gn-arch-schema-card {
    max-width: 980px;
    margin: 0 auto;
  }

  .gn-arch-schema-intro {
    max-width: 980px;
    margin-bottom: 26px;
  }
}

@media (max-width: 700px) {
  .gn-arch-schema-intro {
    margin-bottom: 20px;
  }

  .gn-arch-schema-intro-copy {
    padding: 20px 18px;
    border-radius: 14px;
  }

  .gn-arch-schema-intro-copy h3 {
    font-size: 1.08rem;
  }

  .gn-arch-schema-intro-copy p {
    font-size: .97rem;
    line-height: 1.68;
  }
}


/* v2.2.0 - Pagine Servizi complete e discorsive */
.gn-service-expanded-intro,
.gn-service-expanded-why,
.gn-service-expanded-result {
  padding: clamp(64px, 6vw, 96px) 0;
  background: #fff;
}

.gn-service-expanded-actions,
.gn-service-expanded-useful {
  padding: clamp(68px, 6vw, 102px) 0;
}

.gn-service-expanded-grid,
.gn-service-expanded-useful-grid {
  display: grid;
  grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr);
  gap: clamp(34px, 5vw, 82px);
  align-items: start;
}

.gn-service-expanded-copy p {
  margin: 0 0 20px;
  color: var(--gn-text);
  font-size: 1.06rem;
  line-height: 1.82;
}

.gn-service-expanded-copy p:last-child {
  margin-bottom: 0;
}

.gn-service-expanded-head {
  text-align: center;
  max-width: 910px;
  margin: 0 auto 42px;
}

.gn-service-expanded-head .gn-h2 {
  font-size: clamp(1.65rem, 2.45vw, 2.25rem);
}

.gn-service-expanded-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.gn-service-expanded-cards article {
  background: #fff;
  border: 1px solid #dce8f7;
  border-radius: 15px;
  padding: 30px 28px;
  box-shadow: 0 16px 44px rgba(15,36,74,.055);
}

.gn-service-expanded-cards svg {
  width: 42px;
  height: 42px;
  margin-bottom: 22px;
  color: var(--gn-blue);
  stroke: currentColor;
  fill: none;
  stroke-width: 2.15;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.gn-service-expanded-cards h3 {
  margin: 0 0 12px;
  color: var(--gn-navy);
  font-size: 1.13rem;
  line-height: 1.25;
  letter-spacing: -.025em;
}

.gn-service-expanded-cards p {
  margin: 0;
  color: var(--gn-text);
  line-height: 1.68;
  font-size: .99rem;
}

.gn-service-expanded-useful-grid ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gn-service-expanded-useful-grid li {
  position: relative;
  margin: 0 0 14px;
  padding-left: 32px;
  color: var(--gn-text);
  font-size: 1.04rem;
  line-height: 1.65;
}

.gn-service-expanded-useful-grid li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--gn-blue);
  box-shadow: 0 0 0 6px rgba(23,105,232,.11);
}

.gn-service-expanded-result-box {
  max-width: 980px;
  margin: 0 auto;
  padding: clamp(34px, 5vw, 58px);
  border-radius: 22px;
  background:
    radial-gradient(circle at 85% 10%, rgba(23,105,232,.12), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
  border: 1px solid #dce8f7;
  box-shadow: 0 18px 58px rgba(15,36,74,.07);
  text-align: center;
}

.gn-service-expanded-result-box p:not(.gn-label) {
  margin: 0 auto;
  max-width: 760px;
  color: var(--gn-text);
  font-size: 1.06rem;
  line-height: 1.75;
}

@media (max-width: 1050px) {
  .gn-service-expanded-grid,
  .gn-service-expanded-useful-grid {
    grid-template-columns: 1fr;
  }

  .gn-service-expanded-cards {
    grid-template-columns: repeat(2, 1fr);
  }

  .gn-service-expanded-result-box {
    text-align: left;
  }
}

@media (max-width: 640px) {
  .gn-service-expanded-intro,
  .gn-service-expanded-why,
  .gn-service-expanded-result {
    padding: 54px 0;
  }

  .gn-service-expanded-actions,
  .gn-service-expanded-useful {
    padding: 58px 0;
  }

  .gn-service-expanded-head {
    text-align: left;
    margin-bottom: 28px;
  }

  .gn-service-expanded-cards {
    grid-template-columns: 1fr;
  }

  .gn-service-expanded-cards article {
    padding: 26px 24px;
  }

  .gn-service-expanded-result-box {
    padding: 28px 22px;
    border-radius: 16px;
  }
}


/* v2.2.0 - Schema Architettura IT statico con Smart working / VPN e icone coerenti */
.gn-arch-schema-hotspot.hs-cloud { left: 22.0%; top: 19.2%; width: 16.0%; height: 15.0%; }
.gn-arch-schema-hotspot.hs-backup { left: 41.0%; top: 19.1%; width: 16.2%; height: 15.2%; }
.gn-arch-schema-hotspot.hs-vpn { left: 62.1%; top: 19.1%; width: 17.1%; height: 15.2%; }
.gn-arch-schema-hotspot.hs-internet { left: 4.8%; top: 48.9%; width: 14.4%; height: 21.8%; }
.gn-arch-schema-hotspot.hs-security { left: 22.2%; top: 49.0%; width: 14.8%; height: 21.8%; }
.gn-arch-schema-hotspot.hs-network { left: 40.0%; top: 49.0%; width: 15.0%; height: 21.8%; }
.gn-arch-schema-hotspot.hs-server { left: 59.2%; top: 49.0%; width: 14.8%; height: 21.8%; }
.gn-arch-schema-hotspot.hs-workstations { left: 78.5%; top: 49.0%; width: 15.2%; height: 21.8%; }
.gn-arch-schema-hotspot.hs-monitoring { left: 26.5%; top: 78.6%; width: 47.5%; height: 11.8%; }

@media (min-width: 1025px) {
  .gn-arch-schema-card {
    max-width: 980px;
    margin: 0 auto;
  }
}




/* v2.2.0 - UPS: rimossa etichetta sovrapposta all'immagine */
.gn-ups-visual::after {
  content: none !important;
  display: none !important;
}


/* VERSIONE 2.3.0 - Pagina Cybersecurity orientata ad assessment */
.gn-cyber-intro,
.gn-cyber-map-section,
.gn-cyber-report,
.gn-cyber-when,
.gn-cyber-faq{padding:76px 0;background:#fff;}
.gn-cyber-process,
.gn-cyber-scope,
.gn-cyber-after,
.gn-cyber-local{padding:76px 0;}
.gn-cyber-intro-grid,
.gn-cyber-map-grid,
.gn-cyber-report-grid,
.gn-cyber-after-grid,
.gn-cyber-when-grid,
.gn-cyber-faq-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:56px;align-items:start;}
.gn-cyber-lead,
.gn-cyber-map-copy p,
.gn-cyber-report p,
.gn-cyber-after p,
.gn-cyber-local p{font-size:1rem;line-height:1.75;color:var(--gn-text);margin:0;max-width:650px;}
.gn-cyber-definition-card{border:1px solid #dfe9f7;border-radius:20px;background:linear-gradient(180deg,#f8fbff 0%,#fff 100%);padding:34px;box-shadow:0 18px 48px rgba(16,35,73,.07);}
.gn-cyber-definition-card span,.gn-cyber-chart-head span{display:inline-flex;align-items:center;margin-bottom:12px;color:var(--gn-blue);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;}
.gn-cyber-definition-card h3{margin:0 0 12px;color:var(--gn-navy);font-size:1.45rem;letter-spacing:-.035em;}
.gn-cyber-definition-card p{margin:0 0 20px;color:var(--gn-text);line-height:1.7;}
.gn-cyber-definition-card ul,.gn-cyber-checklist,.gn-cyber-when ul{margin:0;padding:0;list-style:none;display:grid;gap:12px;}
.gn-cyber-definition-card li,.gn-cyber-checklist li,.gn-cyber-when li{position:relative;padding-left:30px;color:var(--gn-text);line-height:1.6;}
.gn-cyber-definition-card li::before,.gn-cyber-checklist li::before,.gn-cyber-when li::before{content:"";position:absolute;left:0;top:.45em;width:16px;height:16px;border-radius:50%;background:#e7f0ff;border:1px solid #b9d3ff;}
.gn-cyber-definition-card li::after,.gn-cyber-checklist li::after,.gn-cyber-when li::after{content:"";position:absolute;left:5px;top:.74em;width:6px;height:3px;border-left:2px solid var(--gn-blue);border-bottom:2px solid var(--gn-blue);transform:rotate(-45deg);}
.gn-cyber-section-head{max-width:820px;margin:0 auto 38px;text-align:center;}
.gn-cyber-section-head p:not(.gn-label){margin:0 auto;color:var(--gn-text);font-size:1rem;line-height:1.7;max-width:760px;}
.gn-cyber-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;background:#fff;border:1px solid #dfe9f7;border-radius:22px;box-shadow:0 16px 42px rgba(16,35,73,.06);overflow:hidden;}
.gn-cyber-flow article{position:relative;padding:34px 26px 32px;min-height:270px;background:#fff;}
.gn-cyber-flow article:not(:last-child){border-right:1px solid #e4edf8;}
.gn-cyber-flow article:not(:last-child)::after{content:"→";position:absolute;right:-13px;top:42px;z-index:3;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eef5ff;color:var(--gn-blue);font-weight:800;box-shadow:0 0 0 6px #fff;}
.gn-cyber-flow strong{display:block;color:#afc2dd;font-size:2.7rem;line-height:1;font-weight:800;letter-spacing:-.06em;margin-bottom:18px;}
.gn-cyber-flow .gn-icon{width:46px;height:46px;margin:0 0 20px;color:var(--gn-blue);}
.gn-cyber-flow h3,.gn-cyber-scope-grid h3{margin:0 0 11px;color:var(--gn-navy);font-size:1.08rem;letter-spacing:-.02em;}
.gn-cyber-flow p,.gn-cyber-scope-grid p{margin:0;color:var(--gn-text);font-size:.92rem;line-height:1.62;}
.gn-cyber-map-grid{align-items:center;}
.gn-cyber-radar{position:relative;min-height:500px;border:1px solid #dfe9f7;border-radius:28px;background:radial-gradient(circle at center,rgba(23,105,232,.10) 0 18%,transparent 19%),linear-gradient(180deg,#f8fbff 0%,#fff 100%);box-shadow:0 20px 50px rgba(16,35,73,.07);overflow:hidden;}
.gn-cyber-radar::before,.gn-cyber-radar::after{content:"";position:absolute;inset:72px;border:1px dashed #c8d8ee;border-radius:50%;}
.gn-cyber-radar::after{inset:130px;}
.gn-cyber-radar-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:170px;height:170px;border-radius:50%;background:linear-gradient(180deg,var(--gn-blue) 0%,#0e4fb9 100%);color:#fff;display:grid;place-content:center;text-align:center;box-shadow:0 18px 35px rgba(23,105,232,.25);}
.gn-cyber-radar-center b{font-size:1.18rem;letter-spacing:-.02em;}
.gn-cyber-radar-center span{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;opacity:.9;}
.gn-cyber-orbit{position:absolute;z-index:3;display:grid;place-items:center;text-align:center;width:142px;min-height:74px;padding:12px;border-radius:18px;background:#fff;border:1px solid #dfe9f7;color:var(--gn-navy);font-size:.86rem;font-weight:800;line-height:1.35;box-shadow:0 10px 24px rgba(16,35,73,.06);}
.gn-cyber-o1{left:50%;top:30px;transform:translateX(-50%);} .gn-cyber-o2{right:38px;top:118px;} .gn-cyber-o3{right:62px;bottom:88px;} .gn-cyber-o4{left:50%;bottom:28px;transform:translateX(-50%);} .gn-cyber-o5{left:62px;bottom:88px;} .gn-cyber-o6{left:38px;top:118px;}
.gn-cyber-scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.gn-cyber-scope-grid article{padding:30px;border:1px solid #dfe9f7;border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(16,35,73,.045);}
.gn-cyber-scope-grid .gn-icon{width:48px;height:48px;margin-bottom:18px;color:var(--gn-blue);}
.gn-cyber-chart{border:1px solid #dfe9f7;border-radius:22px;background:#fff;padding:30px;box-shadow:0 18px 46px rgba(16,35,73,.075);}
.gn-cyber-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px;}
.gn-cyber-chart-head strong{font-size:1.1rem;color:var(--gn-navy);}
.gn-cyber-bar{display:grid;gap:9px;margin-bottom:18px;}
.gn-cyber-bar label{font-size:.88rem;color:var(--gn-navy);font-weight:700;}
.gn-cyber-bar span{position:relative;display:block;height:34px;border-radius:999px;background:#edf3fb;overflow:hidden;}
.gn-cyber-bar span::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--v);border-radius:999px;background:linear-gradient(90deg,#1769e8,#65a0ff);}
.gn-cyber-bar i{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:1;font-style:normal;font-size:.78rem;font-weight:800;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.25);}
.gn-cyber-chart small{display:block;margin-top:17px;color:#718099;line-height:1.5;font-size:.8rem;}
.gn-cyber-after-grid{align-items:center;}
.gn-cyber-mini-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.gn-cyber-mini-cards span{display:flex;align-items:center;min-height:58px;padding:0 18px;border:1px solid #dfe9f7;border-radius:14px;background:#fff;color:var(--gn-navy);font-weight:800;box-shadow:0 8px 24px rgba(16,35,73,.04);}
.gn-cyber-when-grid{align-items:start;}
.gn-cyber-local-box{display:flex;align-items:center;justify-content:space-between;gap:36px;border:1px solid #dfe9f7;border-radius:24px;background:linear-gradient(180deg,#fff 0%,#f7fbff 100%);padding:38px 42px;box-shadow:0 16px 42px rgba(16,35,73,.055);}
.gn-cyber-local-box .gn-h2{margin-bottom:12px;}
.gn-cyber-local-box .gn-btn{flex:0 0 auto;}
.gn-cyber-faq-list{display:grid;gap:12px;}
.gn-cyber-faq-list details{border:1px solid #dfe9f7;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(16,35,73,.035);overflow:hidden;}
.gn-cyber-faq-list summary{cursor:pointer;padding:20px 54px 20px 22px;list-style:none;position:relative;color:var(--gn-navy);font-weight:800;}
.gn-cyber-faq-list summary::-webkit-details-marker{display:none;}
.gn-cyber-faq-list summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:1.35rem;color:var(--gn-blue);font-weight:700;}
.gn-cyber-faq-list details[open] summary::after{content:"−";}
.gn-cyber-faq-list p{margin:0;padding:0 22px 22px;color:var(--gn-text);line-height:1.65;font-size:.94rem;}

@media(max-width:1050px){
  .gn-cyber-intro-grid,.gn-cyber-map-grid,.gn-cyber-report-grid,.gn-cyber-after-grid,.gn-cyber-when-grid,.gn-cyber-faq-grid{grid-template-columns:1fr;gap:32px;}
  .gn-cyber-flow{grid-template-columns:repeat(2,minmax(0,1fr));}
  .gn-cyber-flow article:nth-child(2){border-right:0;}
  .gn-cyber-flow article:nth-child(1),.gn-cyber-flow article:nth-child(2){border-bottom:1px solid #e4edf8;}
  .gn-cyber-flow article:not(:last-child)::after{display:none;}
  .gn-cyber-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:720px){
  .gn-cyber-intro,.gn-cyber-map-section,.gn-cyber-report,.gn-cyber-when,.gn-cyber-faq,.gn-cyber-process,.gn-cyber-scope,.gn-cyber-after,.gn-cyber-local{padding:54px 0;}
  .gn-cyber-flow,.gn-cyber-scope-grid,.gn-cyber-mini-cards{grid-template-columns:1fr;}
  .gn-cyber-flow article{min-height:auto;border-right:0!important;border-bottom:1px solid #e4edf8;}
  .gn-cyber-flow article:last-child{border-bottom:0;}
  .gn-cyber-radar{min-height:700px;border-radius:22px;}
  .gn-cyber-radar::before,.gn-cyber-radar::after{display:none;}
  .gn-cyber-radar-center{top:38px;transform:translateX(-50%);width:142px;height:142px;}
  .gn-cyber-orbit{left:50%!important;right:auto!important;top:auto!important;bottom:auto!important;transform:translateX(-50%)!important;width:min(78%,260px);}
  .gn-cyber-o1{top:200px!important}.gn-cyber-o2{top:278px!important}.gn-cyber-o3{top:356px!important}.gn-cyber-o4{top:434px!important}.gn-cyber-o5{top:512px!important}.gn-cyber-o6{top:590px!important}
  .gn-cyber-local-box{display:block;padding:30px 24px;}
  .gn-cyber-local-box .gn-btn{margin-top:24px;width:100%;}
  .gn-cyber-chart-head{display:block;}
}
