/* ==========================================================
   SERVIZI & FORMAZIONE 3.6 — UNIFIED FULL-WIDTH LAYOUT
   Architettura unica per Tema + Elementor + pagine legacy.

   Principio:
   1) canvas Elementor = 100% viewport
   2) sfondo/sezioni strutturali = full bleed
   3) contenuto = griglia editoriale unica max 1640px
   4) CTA/feature scure = full bleed, contenuto allineato
   5) responsive intenzionale: desktop / tablet / smartphone
   ========================================================== */

:root{
  --sf36-layout-max:1640px;
  --sf36-gutter:28px;
  --sf36-band-bg:
    radial-gradient(circle at 90% 5%,rgba(114,210,228,.25),transparent 30%),
    radial-gradient(circle at 5% 110%,rgba(1,123,178,.17),transparent 34%),
    linear-gradient(125deg,#052b3f 0%,#07516f 53%,#017bb2 100%);
}

/* ----------------------------------------------------------
   VIEWPORT SAFETY
   ---------------------------------------------------------- */
html{
  max-width:100%;
  overflow-x:hidden;
}
@supports(overflow:clip){
  html{overflow-x:clip}
}

body.sf2-site{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
@supports(overflow:clip){
  body.sf2-site{overflow-x:clip}
}

body.sf2-site .sf2-main{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}

/* ----------------------------------------------------------
   ELEMENTOR — CANVAS REALMENTE FULL WIDTH
   Le pagine del progetto usano un container radice con widget HTML.
   ---------------------------------------------------------- */
body.elementor-page .sf2-main > .elementor,
body.elementor-page .sf2-main > .elementor[data-elementor-type="wp-page"]{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

body.elementor-page .sf2-main > .elementor > .e-con.e-parent,
body.elementor-page .sf2-main > .elementor[data-elementor-type="wp-page"] > .e-con.e-parent{
  --content-width:100%!important;
  --container-max-width:100%!important;
  --width:100%!important;
  --padding-top:0px!important;
  --padding-right:0px!important;
  --padding-bottom:0px!important;
  --padding-left:0px!important;
  --container-default-padding-top:0px!important;
  --container-default-padding-right:0px!important;
  --container-default-padding-bottom:0px!important;
  --container-default-padding-left:0px!important;

  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
}

body.elementor-page .sf2-main > .elementor > .e-con.e-parent > .e-con-inner,
body.elementor-page .sf2-main > .elementor[data-elementor-type="wp-page"] > .e-con.e-parent > .e-con-inner{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
}

body.elementor-page .sf2-main .elementor-widget-html,
body.elementor-page .sf2-main .elementor-widget-html > .elementor-widget-container{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}

body.elementor-page .sf2-main .elementor-widget-html{
  flex:0 0 100%!important;
  align-self:stretch!important;
}

/* ----------------------------------------------------------
   ROOT PAGINA — tutte le generazioni del progetto
   ---------------------------------------------------------- */
body.sf2-site .elementor-widget-html :is(
  .sff,
  .sf4,
  .sf-legal-v5,
  .sfa3,
  .sfs1,
  .sfcont1,
  .sfiefp1,
  .sfpsr1,
  .sfsic1,
  .sfcatalog26,
  .sflavoro26,
  .sfoss26,
  .sfaso26,
  .sfappr26,
  .sfelearning26,
  .sfelearning27,
  .sfgol26,
  .sfgol27,
  .sfcontact26,
  .sfcontact27,
  .sfprivacy27,
  .sfcookie27,
  .sfh8
){
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* ----------------------------------------------------------
   GRIGLIA EDITORIALE UNICA
   ---------------------------------------------------------- */
body.sf2-site .sf2-wrap,
body.sf2-site .elementor-widget-html .sff .shell,
body.sf2-site .elementor-widget-html :is(
  .sf4,.sf-legal-v5,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfelearning26,.sfgol26,.sfcontact26
) .wrap,
body.sf2-site .elementor-widget-html :is(
  .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
  .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
) .sf-wrap,
body.sf2-site .elementor-widget-html .sfh8 .sfh8-wrap,
body.sf2-site .elementor-widget-html .sfh8 .sfh8-extended-inner,
body.sf2-site .elementor-widget-html .sfh8 .sfh8-final-inner,
body.sf2-site .elementor-widget-html .sfh8 .sfh8-location-extended .sfh8-location-content{
  width:min(var(--sf36-layout-max),calc(100% - (var(--sf36-gutter) * 2)))!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Cookie declaration fuori dal root legale in alcuni render */
body.sf2-site .sfcm-declaration{
  width:min(var(--sf36-layout-max),calc(100% - (var(--sf36-gutter) * 2)))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* ----------------------------------------------------------
   SEZIONI FULL BLEED — tutte le famiglie
   ---------------------------------------------------------- */
body.sf2-site .elementor-widget-html .sff > :is(.hero,.section),
body.sf2-site .elementor-widget-html :is(
  .sf4,.sf-legal-v5,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfelearning26,.sfgol26,.sfcontact26
) > .full,
body.sf2-site .elementor-widget-html :is(
  .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
  .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
) > .sf-full,
body.sf2-site .elementor-widget-html .sfh8 > .sfh8-full{
  position:relative!important;
  left:50%!important;
  width:100vw!important;
  max-width:none!important;
  margin-left:-50vw!important;
  margin-right:0!important;
}

@supports(width:100dvw){
  body.sf2-site .elementor-widget-html .sff > :is(.hero,.section),
  body.sf2-site .elementor-widget-html :is(
    .sf4,.sf-legal-v5,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
    .sfelearning26,.sfgol26,.sfcontact26
  ) > .full,
  body.sf2-site .elementor-widget-html :is(
    .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
    .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
  ) > .sf-full,
  body.sf2-site .elementor-widget-html .sfh8 > .sfh8-full{
    width:100dvw!important;
    margin-left:-50dvw!important;
  }
}

/* ----------------------------------------------------------
   CTA / FEATURE — STRATO VISIVO FULL BLEED
   Mantiene il contenuto nella griglia e rende solo lo sfondo edge-to-edge.
   ---------------------------------------------------------- */
body.sf2-site .elementor-widget-html :is(
  .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
  .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
) .sf-wrap > :is(.sf-final,.sf-feature),
body.sf2-site .elementor-widget-html :is(
  .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfelearning26,.sfgol26,.sfcontact26
) .wrap > :is(.final,.feature,.cta),
body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta){
  position:relative!important;
  z-index:0!important;
  isolation:isolate!important;
  overflow:visible!important;
  border-left:0!important;
  border-right:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

body.sf2-site .elementor-widget-html :is(
  .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
  .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
) .sf-wrap > :is(.sf-final,.sf-feature)::before,
body.sf2-site .elementor-widget-html :is(
  .sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfelearning26,.sfgol26,.sfcontact26
) .wrap > :is(.final,.feature,.cta)::before,
body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta)::before{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  top:0!important;
  bottom:0!important;
  left:50%!important;
  width:100vw!important;
  max-width:none!important;
  transform:translateX(-50%)!important;
  background:var(--sf36-band-bg)!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  pointer-events:none!important;
}

@supports(width:100dvw){
  body.sf2-site .elementor-widget-html :is(
    .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
    .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
  ) .sf-wrap > :is(.sf-final,.sf-feature)::before,
  body.sf2-site .elementor-widget-html :is(
    .sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
    .sfelearning26,.sfgol26,.sfcontact26
  ) .wrap > :is(.final,.feature,.cta)::before,
  body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta)::before{
    width:100dvw!important;
  }
}

/* Rimuove la luce/card decorativa legacy che resterebbe boxed */
body.sf2-site .elementor-widget-html .sff .shell > .band::after,
body.sf2-site .elementor-widget-html :is(
  .sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfelearning26,.sfgol26,.sfcontact26
) .wrap > :is(.final,.feature,.cta)::after{
  display:none!important;
}

/* Le sezioni che contengono una CTA finale non devono aggiungere
   80/100px di bianco sopra e sotto al nuovo band full width. */
@supports selector(:has(*)){
  body.sf2-site .elementor-widget-html .sff > .section:has(> .shell > .band),
  body.sf2-site .elementor-widget-html :is(
    .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
    .sfelearning26,.sfgol26,.sfcontact26
  ) > .full.section:has(> .wrap > .final),
  body.sf2-site .elementor-widget-html :is(
    .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
    .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
  ) > .sf-full.sf-section:has(> .sf-wrap > .sf-final){
    padding-top:0!important;
    padding-bottom:0!important;
  }
}

/* ----------------------------------------------------------
   LAYOUT SAFETY — evita overflow di griglie/media/tabelle
   ---------------------------------------------------------- */
body.sf2-site .elementor-widget-html :is(
  .sff,.sf4,.sf-legal-v5,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
  .sfelearning26,.sfelearning27,.sfgol26,.sfgol27,
  .sfcontact26,.sfcontact27,.sfprivacy27,.sfcookie27,.sfh8
) :is(div,section,article,aside,figure,nav){
  min-width:0;
}

body.sf2-site .elementor-widget-html :is(
  .sff,.sf4,.sf-legal-v5,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
  .sfelearning26,.sfelearning27,.sfgol26,.sfgol27,
  .sfcontact26,.sfcontact27,.sfprivacy27,.sfcookie27,.sfh8
) :is(img,video,iframe,svg){
  max-width:100%;
}

body.sf2-site .elementor-widget-html :is(
  .sff,.sf4,.sf-legal-v5,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
  .sfelearning26,.sfelearning27,.sfgol26,.sfgol27,
  .sfcontact26,.sfcontact27,.sfprivacy27,.sfcookie27,.sfh8
) :is(h1,h2,h3,p,a,span,strong){
  max-width:100%;
}

/* ----------------------------------------------------------
   TABLET LANDSCAPE — 851 / 1180
   ---------------------------------------------------------- */
@media(max-width:1180px) and (min-width:851px){
  :root{--sf36-gutter:20px}

  body.sf2-site .elementor-widget-html :is(
    .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
    .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
  ) .sf-wrap > :is(.sf-final,.sf-feature),
  body.sf2-site .elementor-widget-html :is(
    .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
    .sfelearning26,.sfgol26,.sfcontact26
  ) .wrap > :is(.final,.feature,.cta),
  body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta){
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:28px!important;
  }

  body.sf2-site .elementor-widget-html :is(.sfoss26,.sfaso26,.sfappr26) .sf-docs,
  body.sf2-site .elementor-widget-html .sff :is(.docs,.grid4,.process,.steps){
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* ----------------------------------------------------------
   TABLET PORTRAIT — 701 / 850
   ---------------------------------------------------------- */
@media(max-width:850px) and (min-width:701px){
  :root{--sf36-gutter:17px}

  body.sf2-site .elementor-widget-html :is(
    .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
    .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
  ) .sf-wrap > :is(.sf-final,.sf-feature),
  body.sf2-site .elementor-widget-html :is(
    .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
    .sfelearning26,.sfgol26,.sfcontact26
  ) .wrap > :is(.final,.feature,.cta),
  body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta){
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:24px!important;
  }

  body.sf2-site .elementor-widget-html :is(.sfoss26,.sfaso26,.sfappr26) .sf-docs,
  body.sf2-site .elementor-widget-html .sff :is(.docs,.grid4,.process,.steps){
    grid-template-columns:1fr!important;
  }
}

/* ----------------------------------------------------------
   SMARTPHONE — <=700
   ---------------------------------------------------------- */
@media(max-width:700px){
  :root{--sf36-gutter:14px}

  body.sf2-site .elementor-widget-html :is(
    .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
    .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
  ) .sf-wrap > :is(.sf-final,.sf-feature),
  body.sf2-site .elementor-widget-html :is(
    .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
    .sfelearning26,.sfgol26,.sfcontact26
  ) .wrap > :is(.final,.feature,.cta),
  body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta){
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:20px!important;
  }

  body.sf2-site .elementor-widget-html :is(
    .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
    .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
  ) .sf-wrap > :is(.sf-final,.sf-feature) :is(.sf-btn,.btn),
  body.sf2-site .elementor-widget-html :is(
    .sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
    .sfelearning26,.sfgol26,.sfcontact26
  ) .wrap > :is(.final,.feature,.cta) :is(.sf-btn,.btn),
  body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta) :is(.sf-btn,.btn){
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* neutralizza grid-template inline che in alcune pagine corsi
     restava a due colonne su smartphone */
  body.sf2-site .elementor-widget-html :is(
    .sfoss26,.sfaso26,.sfappr26,.sfcatalog26,.sflavoro26,
    .sfelearning27,.sfgol27,.sfcontact27
  ) :is(.sf-docs,.sf-directory,.sf-courses,.sf-flow,.sf-facts),
  body.sf2-site .elementor-widget-html .sff :is(
    .docs,.grid2,.grid3,.grid4,.process,.steps,.facts,.legal-index,.legal-contact
  ){
    grid-template-columns:1fr!important;
  }

  body.sf2-site .elementor-widget-html :is(.sfsic1,.sfpsr1,.sfiefp1,.sfcont1) :is(
    .docs,.directory,.photo-grid,.facts
  ){
    grid-template-columns:1fr!important;
  }

  body.sf2-site .elementor-widget-html :is(
    .sfprivacy27,.sfcookie27,.sff
  ) :is(.sf-legal-table,.legal-table){
    max-width:100%!important;
  }
}

@media(max-width:420px){
  :root{--sf36-gutter:11px}
}

/* ----------------------------------------------------------
   ACCESSIBILITÀ / MOTION
   ---------------------------------------------------------- */
body.sf2-site .elementor-widget-html a:focus-visible,
body.sf2-site .elementor-widget-html button:focus-visible{
  outline:3px solid rgba(1,123,178,.45)!important;
  outline-offset:4px!important;
}

@media(prefers-reduced-motion:reduce){
  body.sf2-site .elementor-widget-html *,
  body.sf2-site .elementor-widget-html *::before,
  body.sf2-site .elementor-widget-html *::after{
    scroll-behavior:auto!important;
  }
}

/* ==========================================================
   SERVIZI & FORMAZIONE 3.6.1 — STRUCTURAL FULL-BLEED OVERRIDE
   Correzione definitiva dei componenti boxed.

   Nota architetturale:
   lo sfondo non viene più "allungato" dal componente interno.
   Viene assegnato direttamente alla sezione full-width che contiene
   il componente. In questo modo overflow:clip/hidden dei vecchi root
   non può più troncare la fascia ai bordi della griglia editoriale.
   ========================================================== */

/* 1. I root pagina non devono mai ritagliare le sezioni 100vw. */
html body.sf2-site .elementor-widget-html :is(
  .sff,
  .sf4,
  .sf-legal-v5,
  .sfa3,
  .sfs1,
  .sfcont1,
  .sfiefp1,
  .sfpsr1,
  .sfsic1,
  .sfcatalog26,
  .sflavoro26,
  .sfoss26,
  .sfaso26,
  .sfappr26,
  .sfelearning26,
  .sfelearning27,
  .sfgol26,
  .sfgol27,
  .sfcontact26,
  .sfcontact27,
  .sfprivacy27,
  .sfcookie27,
  .sfh8
){
  overflow:visible!important;
}

/* 2. Qualunque container Elementor che ospita direttamente il widget HTML
      del progetto diventa canvas pieno, senza padding o max-width nascosti. */
@supports selector(:has(*)){
  html body.elementor-page .sf2-main .elementor .e-con:has(> .elementor-widget-html),
  html body.elementor-page .sf2-main .elementor .e-con:has(> .e-con-inner > .elementor-widget-html){
    --content-width:100%!important;
    --container-max-width:100%!important;
    --width:100%!important;
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    overflow:visible!important;
  }

  html body.elementor-page .sf2-main .elementor .e-con:has(> .e-con-inner > .elementor-widget-html) > .e-con-inner{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    overflow:visible!important;
  }
}

html body.elementor-page .sf2-main .elementor-widget-html,
html body.elementor-page .sf2-main .elementor-widget-html > .elementor-widget-container{
  width:100%!important;
  max-width:none!important;
  flex:0 0 100%!important;
  align-self:stretch!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  overflow:visible!important;
}

/* 3. COMPONENTI FINALI / FEATURE:
      lo sfondo appartiene alla SEZIONE full-width, non alla card interna. */
@supports selector(:has(*)){

  /* Legacy .sff */
  html body.sf2-site .elementor-widget-html .sff > .section:has(> .shell > :is(.band,.feature,.cta)){
    padding-top:0!important;
    padding-bottom:0!important;
    background:var(--sf36-band-bg)!important;
  }

  /* Generazione .wrap/.final/.feature */
  html body.sf2-site .elementor-widget-html :is(
    .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
    .sfelearning26,.sfgol26,.sfcontact26
  ) > .full.section:has(> .wrap > :is(.final,.feature,.cta)){
    padding-top:0!important;
    padding-bottom:0!important;
    background:var(--sf36-band-bg)!important;
  }

  /* Institutional Signature */
  html body.sf2-site .elementor-widget-html :is(
    .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
    .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
  ) > .sf-full.sf-section:has(> .sf-wrap > :is(.sf-final,.sf-feature)){
    padding-top:0!important;
    padding-bottom:0!important;
    background:var(--sf36-band-bg)!important;
  }

  /* Home */
  html body.sf2-site .elementor-widget-html .sfh8 > .sfh8-full.sfh8-section:has(> .sfh8-final){
    padding-top:0!important;
    padding-bottom:0!important;
    background:var(--sf36-band-bg)!important;
  }
}

/* 4. La card interna diventa solo contenuto; niente rettangolo boxed. */
html body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta),
html body.sf2-site .elementor-widget-html :is(
  .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfelearning26,.sfgol26,.sfcontact26
) .wrap > :is(.final,.feature,.cta),
html body.sf2-site .elementor-widget-html :is(
  .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
  .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
) .sf-wrap > :is(.sf-final,.sf-feature),
html body.sf2-site .elementor-widget-html .sfh8 .sfh8-final.sfh8-final-extended{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  isolation:auto!important;
}

/* Disattiva il vecchio pseudo-layer della 3.6.0: ora lo sfondo è sulla sezione. */
html body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta)::before,
html body.sf2-site .elementor-widget-html :is(
  .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfelearning26,.sfgol26,.sfcontact26
) .wrap > :is(.final,.feature,.cta)::before,
html body.sf2-site .elementor-widget-html :is(
  .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
  .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
) .sf-wrap > :is(.sf-final,.sf-feature)::before{
  content:none!important;
  display:none!important;
}

/* 5. Home: il contenuto resta nella griglia 1640 ma lo sfondo è edge-to-edge. */
html body.sf2-site .elementor-widget-html .sfh8 .sfh8-final.sfh8-final-extended{
  padding:0!important;
}

html body.sf2-site .elementor-widget-html .sfh8 .sfh8-final.sfh8-final-extended > .sfh8-final-inner{
  width:min(var(--sf36-layout-max),calc(100% - (var(--sf36-gutter) * 2)))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-top:clamp(42px,4.5vw,60px)!important;
  padding-bottom:clamp(42px,4.5vw,60px)!important;
}

/* 6. Mantiene il padding verticale dei componenti interni delle altre pagine.
      Il wrapper resta editoriale, la banda esterna è viewport-wide. */
html body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta),
html body.sf2-site .elementor-widget-html :is(
  .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
  .sfelearning26,.sfgol26,.sfcontact26
) .wrap > :is(.final,.feature,.cta),
html body.sf2-site .elementor-widget-html :is(
  .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
  .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
) .sf-wrap > :is(.sf-final,.sf-feature){
  color:#fff!important;
}

/* 7. Responsive intenzionale delle bande. */
@media(max-width:1180px){
  html body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta),
  html body.sf2-site .elementor-widget-html :is(
    .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
    .sfelearning26,.sfgol26,.sfcontact26
  ) .wrap > :is(.final,.feature,.cta),
  html body.sf2-site .elementor-widget-html :is(
    .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
    .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
  ) .sf-wrap > :is(.sf-final,.sf-feature){
    grid-template-columns:1fr!important;
    gap:26px!important;
  }
}

@media(max-width:700px){
  html body.sf2-site .elementor-widget-html .sff .shell > :is(.band,.feature,.cta),
  html body.sf2-site .elementor-widget-html :is(
    .sf4,.sfa3,.sfs1,.sfcont1,.sfiefp1,.sfpsr1,.sfsic1,
    .sfelearning26,.sfgol26,.sfcontact26
  ) .wrap > :is(.final,.feature,.cta),
  html body.sf2-site .elementor-widget-html :is(
    .sfcatalog26,.sflavoro26,.sfoss26,.sfaso26,.sfappr26,
    .sfelearning27,.sfgol27,.sfcontact27,.sfprivacy27,.sfcookie27
  ) .sf-wrap > :is(.sf-final,.sf-feature){
    gap:20px!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  html body.sf2-site .elementor-widget-html .sfh8 .sfh8-final.sfh8-final-extended > .sfh8-final-inner{
    grid-template-columns:1fr!important;
    gap:20px!important;
  }

  html body.sf2-site .elementor-widget-html .sfh8 .sfh8-final.sfh8-final-extended .sfh8-btn{
    width:100%!important;
    max-width:none!important;
    justify-content:center!important;
  }
}
