
:root {
  /* Colori principali */

  /* Definiti nel modulo PageStyle */

  /* Spacing */
  --spacing-xs: 8px;
  --spacing-sm: 16px;
  --spacing-md: 24px;
  --spacing-lg: 32px;
  --spacing-xl: 40px;
  --spacing-2xl: 60px;

  /* Transitions */
  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;

  /* Container */
  --container-max-width: 1140px;
  --dnd_section_padding: 40px 1.5rem;

  /* Buttons */
  --btn-padding: 8px 60px;
  --btn-font-size: 18px;
  --btn-font-weight: 900;
  --btn-line-height: 1.5;
  --btn-border-radius: 45px;
  --btn-border-width: 1px;
  --btn-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;

  /* Colori Bottone Standard (scuro su chiaro) */
  --btn-std-color: white;
  --btn-std-bg: var(--color-accent);
  --btn-std-border: var(--color-accent);
  --btn-std-hover-color: white;
  --btn-std-hover-bg: var(--color-primary);
  --btn-std-hover-border: var(--color-primary);
  --btn-std-active-color: white;
  --btn-std-active-bg: var(--color-accent);
  --btn-std-active-border: var(--color-accent);

  /* Colori Bottone Invertito (chiaro su scuro, es. CTA, Card) */
  --btn-inv-color: white;
  --btn-inv-bg: transparent;
  --btn-inv-border: white;
  --btn-inv-hover-color: var(--color-dark);
  --btn-inv-hover-bg: white;
  --btn-inv-hover-border: white;
  --btn-inv-active-color: var(--color-dark);
  --btn-inv-active-bg: white;
  --btn-inv-active-border: white;
}



.body-container-wrapper {
  margin-top: 80px;
}

.container,
.content-wrapper {
  width: 100%;
  max-width: var(--container-max-width, 1200px);
  margin: 0 auto;
  padding: 0 var(--spacing-md);
}

.dnd-section,
.content-wrapper--vertical-spacing {
  padding: var(--dnd_section_padding);
}

.dnd-section .dnd-column {
  padding: 0;
}

.dnd-section > .row-fluid {
  max-width: var(--container-max-width);
}



html {
  font-size: 16px;
}

body {
  font-family: var(--primary-font-family); var(--primary-font-style);
  color: var(--color-dark);
  font-size: 16px;
}

/* Paragraphs */

p {
  line-height: 28px;
}

/* Anchors */

a {
  color: var(--color-accent); 
  text-decoration: none;
}

a:hover,
a:focus {
  ;
  color: var(--color-accent); 
}

a:active {
  ;
  color: var(--color-accent); 
}

/* Headings */

h1,
.h1 {
  font-family: var(--secondary-font-family); var(--secondary-font-style);
  color: var(--color-primary);
  text-transform: none;
  line-height: 1.3;	
  font-size: 48px;
  font-weight: 700;
}

h2,
.h2 {
  font-family: var(--secondary-font-family); var(--secondary-font-style);
  color: var(--color-primary);
  text-transform: ;
  line-height: 1.3;	
  font-size: 32px;
  font-weight: 700;
}

h3,
.h3 {
  font-family: var(--secondary-font-family); var(--secondary-font-style);
  color: var(--color-primary);
  text-transform: ;
  line-height: 1.2;	
  font-size: 24px;
  font-weight: 700;
}

h4,
.h4 {
  font-family: var(--secondary-font-family); var(--secondary-font-style);
  color: var(--color-primary);
  text-transform: ;
  line-height: 1.3;
  font-size: 20px;
  font-weight: 700;
}

h5,
.h5 {
  font-family: var(--secondary-font-family); var(--secondary-font-style);
  color: var(--color-primary);
  text-transform: ;
  line-height: 1.3;
  font-size: 18px;
  font-weight: 700;
}

h6,
.h6 {
  font-family: var(--secondary-font-family); var(--secondary-font-style);
  color: var(--color-primary);
  text-transform: ;
  line-height: 1.2;
  font-size: 16px;
  font-weight: 700;
}

/* Blockquote */

blockquote {
  border-left-color: var(--color-accent);
}



button,
.button,
.hs-button,
.hs-blog-post-listing__post-button {
  display: inline-block;
  font-weight: var(--btn-font-weight);
  text-align: center;
  vertical-align: middle;
  padding: var(--btn-padding);
  font-size: var(--btn-font-size);
  text-transform: none;
  line-height: var(--btn-line-height);
  border-radius: var(--btn-border-radius);
  transition: var(--btn-transition);
  cursor: pointer;
  text-decoration: none;
  color: var(--btn-std-color);
  background-color: var(--btn-std-bg);
  border-width: var(--btn-border-width);
  border-style: solid;
  border-color: var(--btn-std-border);
}

button:hover,
button:focus,
.button:hover,
.button:focus,
.hs-button:hover,
.hs-button:focus,
.hs-blog-post-listing__post-button:hover,
.hs-blog-post-listing__post-button:focus {
  color: var(--btn-std-hover-color);
  background-color: var(--btn-std-hover-bg);
  border-color: var(--btn-std-hover-border);
}

button:active,
.button:active,
.hs-button:active,
.hs-blog-post-listing__post-button:active {
  color: var(--btn-std-active-color);
  background-color: var(--btn-std-active-bg);
  border-color: var(--btn-std-active-border);
}


.dnd-section[class*="_section"] {
  padding-top: 20px;
  padding-bottom: 20px;
}

.dnd-section[class*="_section"] .dnd-row {
  padding-top: 0;
  padding-bottom: 0;
}

.dnd-section[class*="_section"] h3 {
  font-weight: 700;
}


h6.suptitle {
  letter-spacing: 3px;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 700;
}

.partners_section {
  text-align: center;
}

.partners_section h3 {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}


/* Utility: Text Colors */
.text-primary { color: var(--color-primary) !important; }
.text-accent  { color: var(--color-accent) !important; }
.text-dark    { color: var(--color-dark) !important; }
.text-light   { color: var(--color-text-light) !important; }
.text-white   { color: var(--color-text-dark) !important; }

/* Utility: Background Colors */
.bg-primary { background-color: var(--color-primary) !important; }
.bg-accent  { background-color: var(--color-accent) !important; }
.bg-dark    { background-color: var(--color-dark) !important; }
.bg-light   { background-color: var(--color-light-bg) !important; }

/* Utility: Font Weight */
.fw-regular   { font-weight: 400 !important; }
.fw-medium    { font-weight: 500 !important; }
.fw-semibold  { font-weight: 600 !important; }
.fw-bold      { font-weight: 700 !important; }


.header {
  width: 100%;
  background-color: white;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
}

.header__container {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
  padding: 0 16px;
  max-width: 100%;
  margin: 0 auto;
}

.header__logo {
  font-size: 24px;
  font-weight: 800;
  color: var(--color-primary-dark);
  text-align: left;
  margin-left: 0;
  padding: 28px 0;
}
.header__logo a,
.header__logo-link {
  display: flex;
  justify-content: center;
  align-items: center;
}


@media (min-width: 768px) {
  .header__container {
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media (min-width: 1024px) {
  .header__container {
    max-width: none;
  }  
  .header--element .menu__child-toggle-icon {
    display: none;
  }
  .header--element.header__navigation {
    margin-right: auto;
  }
  .header--element .menu__item--depth-1 > .menu__link:after {
    display: block;
    content: '';
    position: absolute;
    left: 0;
    bottom: -0.4em;
    margin: 0 auto -2px;
    height: 2px;
    width: 100%;
    background: currentColor;
    opacity: 0;
    transition: all 0.3s;
  }
  .header--element .menu__link {
    font-size: 16px;
    line-height: 50px;
  }
  .header--element .menu__item--depth-1 > .menu__link:hover:after,
  .header--element .menu__item--depth-1.menu__item--open > .menu__link:after {   
    bottom: -2px;
    opacity: 1;
  }
}

@media (max-width: 1023px) {
  .header--element .menu__item--depth-1.menu__item--has-submenu {
    display: flex;
    flex-flow: row wrap;
  }
  .header--element .menu__item--depth-1.menu__item--has-submenu > .menu__link {
    width: auto;
  }    
  .header--element .menu__child-toggle {
    padding: 15px 0;
    position: relative;
    right: auto;
    top: 0;
    width: auto;
  }
  .header--element .menu__child-toggle-icon {
    background-image: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMDA5OWQ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDMwLjcyNyAzMC43MjciIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnIHN0cm9rZS13aWR0aD0iMCIvPjxnIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0yOS45OTQgMTAuMTgzIDE1LjM2MyAyNC44MTIuNzMzIDEwLjE4NGEyLjUgMi41IDAgMSAxIDMuNTM2LTMuNTM2bDExLjA5NSAxMS4wOTNMMjYuNDYxIDYuNjQ3YTIuNSAyLjUgMCAxIDEgMy41MzMgMy41MzYiLz48L3N2Zz4=);
    width: 16px;
    height: 16px;
    margin-right: 0.4em;
  }
  .header__navigation--toggle {
    height: 40px;
    width: 40px;
    background-color:  var(--color-accent);
    -webkit-mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIGZpbGw9IiMwMDk5ZDQiIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS0xMDI0LTE5MkgyNTZ2ODAwaC0xMjgweiIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48cGF0aCBkPSJNOC4wMDIgNDMuODUxaDQ3LjgyMnY1Ljk5Mkg4LjAwMnptLjIxLTE0LjkyMWg0Ny44MjJ2NS45OTFIOC4yMTJ6bTAtMTQuOTIyaDQ3LjgyMlYyMEg4LjIxMnoiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0icm90YXRlKDMwIDYyOC43NCAtNjQ2LjQyNylzY2FsZSguNzM3MDYpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InJvdGF0ZSgzMCA2OTIuNzYgLTQwNy40OTkpc2NhbGUoLjczNzA2KSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg5NS45ODkgLTE5MC42NDYpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjwvc3ZnPg==);
        mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIGZpbGw9IiMwMDk5ZDQiIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS0xMDI0LTE5MkgyNTZ2ODAwaC0xMjgweiIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48cGF0aCBkPSJNOC4wMDIgNDMuODUxaDQ3LjgyMnY1Ljk5Mkg4LjAwMnptLjIxLTE0LjkyMWg0Ny44MjJ2NS45OTFIOC4yMTJ6bTAtMTQuOTIyaDQ3LjgyMlYyMEg4LjIxMnoiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjxnIHRyYW5zZm9ybT0icm90YXRlKDMwIDYyOC43NCAtNjQ2LjQyNylzY2FsZSguNzM3MDYpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InJvdGF0ZSgzMCA2OTIuNzYgLTQwNy40OTkpc2NhbGUoLjczNzA2KSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDI0IC0xOTIpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg5NS45ODkgLTE5MC42NDYpIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMjQgLTE5MikiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAyNCAtMTkyKSIvPjwvc3ZnPg==);
    -webkit-mask-size: cover;
    mask-size: cover;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
  }

  .header__close--toggle { 
    display: none;
    height: 40px;
    width: 40px;
    margin-right: 0;
    background-size: 110%;
    background-color:  var(--color-accent);
    background-repeat: no-repeat;
    -webkit-mask-image:   url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiBmaWxsPSIjMDA5OWQ0IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIyIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Im0zMi4wMzMgMjkuMTkgMTUuNTUtMTUuNTUgMi44NjMgMi44NjMtMTUuNTUgMTUuNTUgMTUuNTUgMTUuNTUtMi44NjMgMi44NjMtMTUuNTUtMTUuNTUtMTUuNTUgMTUuNTUtMi44NjMtMi44NjMgMTUuNTUtMTUuNTUtMTUuNTUtMTUuNTUgMi44NjMtMi44NjN6Ii8+PC9kZWZzPjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tNDQ4LTY0SDgzMnY4MDBILTQ0OHoiLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PHVzZSB4bGluazpocmVmPSIjYSIvPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PC9zdmc+);
    mask-image:   url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiBmaWxsPSIjMDA5OWQ0IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIyIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Im0zMi4wMzMgMjkuMTkgMTUuNTUtMTUuNTUgMi44NjMgMi44NjMtMTUuNTUgMTUuNTUgMTUuNTUgMTUuNTUtMi44NjMgMi44NjMtMTUuNTUtMTUuNTUtMTUuNTUgMTUuNTUtMi44NjMtMi44NjMgMTUuNTUtMTUuNTUtMTUuNTUtMTUuNTUgMi44NjMtMi44NjN6Ii8+PC9kZWZzPjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tNDQ4LTY0SDgzMnY4MDBILTQ0OHoiLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PHVzZSB4bGluazpocmVmPSIjYSIvPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PGcvPjxnLz48Zy8+PC9zdmc+);
    -webkit-mask-size: cover;
    mask-size: cover;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
  }
}
:root {
  /* Container Form */
  --form-bg-color: #ffffff; 
  --form-padding: var(--spacing-md);
  --form-font-family: inherit;
  --form-text-color: var(--color-dark); /* Corretto: scuro su sfondo bianco */

  /* Form Title */
  --form-title-color: var(--color-accent); /* Richiesto nello snippet */
  --form-title-size: 2rem; /* Richiesto nello snippet */
  --form-title-spacing: margin-bottom: 1rem; /* Default spacing */
  --form-title-border: none;

  /* Labels & Legend */
  /* NOTA: Nello snippet erano white, ma su bg white non si vedono. 
  Ho messo color-dark per leggibilità. */
  --form-label-color: var(--color-dark); 
  --form-legend-color: var(--color-dark);

  /* Inputs Styling */
  --input-bg: #ffffff;
  --input-color: var(--color-dark);
  --input-placeholder: var(--color-dark);
  --input-radius: 8px; /* Richiesto nello snippet */
  --input-border-width: 2px; /* Richiesto nello snippet */
  --input-border-color: #eeeeee; /* Ho messo un grigio chiarissimo invece di white per far capire che c'è un campo */
  --input-focus-border: var(--color-accent); /* Richiesto nello snippet */

  /* Rich Text */
  --richtext-font-size: 0.75rem;
  --richtext-line-height: 1.2;

  /* Button Configuration */
  --btn-font-family: ; 
  --btn-font-size: 18px;
  --btn-font-weight: 600;
  --btn-line-height: 1.2;
  --btn-border-radius: 0.3em;
  --btn-padding: 0.8em 2.5em;
  --btn-text-transform: none;
  
  /* Transition specifica (sostituisce l'animation per fluidità su hover) */
  --btn-transition: all 0.6s cubic-bezier(.215, .61, .355, 1);

  /* Form Submit Button Colors */
  --form-btn-bg: var(--color-accent);
  --form-btn-color: #ffffff;
  --form-btn-border: transparent;
  
  /* HOVER: Uso var(--color-dark) come richiesto invece di ridefinire il grigio */
  --form-btn-hover-bg: var(--color-primary);
  --form-btn-hover-color: #ffffff;
  --form-btn-hover-border: transparent; 
}

/* =========================================
STYLE RESET & CONTAINER
========================================= */

form,
.submitted-message {
  font-family: var(--form-font-family);
  background-color: var(--form-bg-color);
  padding: var(--form-padding);
  color: var(--form-text-color);
  /* Rimuovo bordi espliciti se non richiesti */
  border-radius: 4px; 
}

/* =========================================
TYPOGRAPHY
========================================= */

/* Form Title */
.form-title {
  border: var(--form-title-border);
  font-size: var(--form-title-size);
  color: var(--form-title-color);
  font-weight: bold;
  display: block;
}

/* Labels */
form label {
  display: block;
  font-size: 0.875rem;
  margin-bottom: 0.35rem;
  color: var(--form-label-color);
  font-weight: 600;
}

/* Help text */
form legend {
  font-size: 0.875rem;
  color: var(--form-legend-color);
}

/* Rich Text (GDPR texts etc) */
form .hs-richtext, 
form .hs-richtext p {
  font-size: var(--richtext-font-size);
  margin: 0 0 1.0rem;
  line-height: var(--richtext-line-height);
  color: var(--color-dark);
}

form .hs-richtext img {
  max-width: 100% !important;
}

/* =========================================
INPUT FIELDS
========================================= */

.hs-form-field {
  margin-bottom: 1.4rem;
}

form input[type=text],
form input[type=search],
form input[type=email],
form input[type=password],
form input[type=tel],
form input[type=number],
form input[type=file],
form select,
form textarea {
  display: inline-block;
  width: 100%;
  font-size: 1rem; /* Leggermente più grande per UX mobile */
  padding: 0.7rem;

  background-color: var(--input-bg);
  color: var(--input-color);
  border: var(--input-border-width) solid var(--input-border-color);
  border-radius: var(--input-radius);

  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

form textarea {
  resize: vertical;
}

/* Focus States */
form input:focus,
form select:focus,
form textarea:focus {
  outline: none;
  border-color: var(--input-focus-border);
  /* Aggiunto leggero shadow per enfatizzare il focus */
  box-shadow: 0 0 0 1px var(--input-focus-border);
}

/* Placeholder Styling */
::-webkit-input-placeholder { color: var(--input-placeholder); opacity: 0.7; }
::-moz-placeholder { color: var(--input-placeholder); opacity: 0.7; }
:-ms-input-placeholder { color: var(--input-placeholder); opacity: 0.7; }
::placeholder { color: var(--input-placeholder); opacity: 0.7; }

/* =========================================
DATE PICKER
========================================= */

.hs-dateinput {
  position: relative;
}

.hs-dateinput:before {
  content: '\01F4C5';
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-primary); /* Richiesto nello snippet */
  pointer-events: none;
}

/* Pikaday Theme Overrides */
.fn-date-picker .pika-table thead th {
  color: #FFF;
  background-color: var(--color-dark);
}

.fn-date-picker td.is-selected .pika-button {
  background: var(--color-dark); /* Richiesto nello snippet */
  border-radius: 0;
  box-shadow: none;
}

.fn-date-picker td .pika-button:hover {
  background-color: var(--color-dark) !important; /* Richiesto nello snippet */
  color: white;
}

.fn-date-picker td.is-today .pika-button {
  color: var(--color-dark); /* Richiesto nello snippet */
  font-weight: bold;
}

/* =========================================
CHECKBOX & RADIO (Standard)
========================================= */

form .inputs-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

form .inputs-list > li {
  margin: 0.7rem 0;
}

form input[type=checkbox],
form input[type=radio] {
  cursor: pointer;
  margin-top: 0.25rem;
  margin-right: 0.5rem;
  width: auto;
}

/* GDPR specific */
.legal-consent-container .hs-form-booleancheckbox-display > span {
  margin-left: 1rem !important;
}

/* =========================================
VALIDATION
========================================= */

.hs-form-required {
  color: var(--color-error);
}

.hs-input.invalid.error {
  border-color: var(--color-error);
}

.hs-error-msg {
  color: var(--color-error);
  font-size: 0.8rem;
  margin-top: 0.35rem;
}

/* =========================================
SUBMIT BUTTONS
========================================= */

form input[type=submit],
form .hs-button {
  cursor: pointer;
  display: inline-block;
  white-space: normal;
  ;
  font-size: var(--btn-font-size);
  line-height: var(--btn-line-height);
  font-weight: var(--btn-font-weight);
  padding: var(--btn-padding);
  font-style: normal;
  text-transform: var(--btn-text-transform);
  letter-spacing: 0em;
  border-radius: var(--btn-border-radius);
  background-color: var(--form-btn-bg);
  border: 1px solid var(--form-btn-border);
  color: var(--form-btn-color) !important;
  transition: var(--btn-transition);
  text-align: center;
}

form input[type=submit]:hover,
form input[type=submit]:focus,
form .hs-button:hover,
form .hs-button:focus {
  background-color: var(--form-btn-hover-bg);
  color: var(--form-btn-hover-color);
  border-color: var(--form-btn-hover-border);;
}
.footer {
  display: flex;
  flex-flow: column wrap;
  justify-content: center;
  text-align: center;
  background-color: var(--color-footer-bg);
}
.footer p,
.footer h1,
.footer h2,
.footer h3,
.footer h4,
.footer h5,
.footer h6,
.footer label,
.footer span,
.footer li,
.footer img {
  color: inherit;
}
.footer-brand {
  width: 100%;
  font-size: 1rem;
  position: relative;
  padding: 4rem 1.5rem 4.5rem;
}
.footer-brand__logo-container {
  display: flex;
  justify-content: center;
  align-items: center; 
  text-align: center;
  padding-bottom: 2rem;
  width: 100%;
}
.footer-brand__logo,
.footer-brand__logo-container img {
  width: auto;
  display: inline-block; 
  margin: 0 auto;
}
.footer-brand__logo-container img[src$=".svg"] {
  width: 100%;
  height: auto;
  max-width: 300px; 
}
.footer-menu {
  position: relative;
  margin-bottom: 3.5rem;
}
.footer-menu:after {
  content: '';
  height: 32px;
  display: block;
  width: calc(100% + 3rem);
  margin-left: -1.5rem;
  border-bottom-width: 1px;
  border-color: var(--color-footer-separator);
  border-bottom-style: solid;
}

/* --- INIZIO FIX MENU HUBSPOT --- */
.footer-menu ul {
  display: flex;
  flex-flow: column wrap;
  justify-content: center;
  align-items: center;
  text-align: center;
  list-style: none;
  margin: 0 auto;
  padding: 0; /* Rimuove il padding di default di HubSpot */
}
.footer-menu li {
  color: var(--color-footer-top-text);
  line-height: 28px;
  margin-bottom: 1.5rem;
}
.footer-menu li a {
  color: var(--color-footer-top-text-a);
  line-height: 28px;
  text-decoration: none;
}
/* --- FINE FIX MENU HUBSPOT --- */

.footer-socials {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  text-align: center;
  gap: 0.75rem;
}
.footer-socials__item {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  line-height: 40px;
  border: 2px solid var(--color-dark);
}
.footer-socials__item a {
  display: flex;
  align-items: center;
  justify-content: center;
}
.footer-copyright {
  background-color: var(--color-footer-copy-bg);
  padding: 16px 1.5rem 16px;
  color: var(--color-footer-bottom-text);
}
.footer-text p {
  margin: 0;
}
.footer-copyright a, 
.footer-copyright a:active, 
.footer-copyright a:focus, 
.footer-copyright a:hover {
  color: var(--color-footer-bottom-text-a);
}

@media (min-width: 601px) {
  /* Fix layout menu desktop */
  .footer-menu ul {
    width: 60%;
    flex-flow: row wrap;
    justify-content: space-between;
    gap: 1.5rem;
  }
  .footer-menu:after {
    width: 100%;
    margin-left: 0;
  }
  .footer-copyright {
    display: flex;
    justify-content: space-between;
    padding: 16px 1.5rem;
  }
  .footer-text {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .footer-text.footer-text-left  {
    text-align: left;
  }
  .footer-text.footer-text-right  {
    text-align: right;
  }
}