/* ==========================================================================
   CSR Impact — foglio di stile strutturale
   Sostituisce template_main.min.css + moduli HubSpot per hosting statico.
   Le variabili di tema (colori, font, spaziature) restano negli <style>
   inline di ogni pagina, generati dalle impostazioni del tema del cliente.
   ========================================================================== */

/* ---------- Reset di base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; line-height: 1.5; -webkit-font-smoothing: antialiased; overflow-wrap: break-word; }
img { max-width: 100%; height: auto; vertical-align: middle; border: 0; }
ul, ol { margin: 0 0 1.5rem; padding-left: 1.25rem; }
li { margin-bottom: 0.25rem; }
p { margin: 0 0 1.5rem; }
p:last-child { margin-bottom: 0; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 1rem; line-height: 1.2; }
fieldset { border: 0; margin: 0; padding: 0; max-width: 100%; }
button { cursor: pointer; }
table { border-collapse: collapse; }

/* ---------- Griglia (equivalente row-fluid/span) ---------- */
.container-fluid { padding-left: 0; padding-right: 0; }
.row-fluid-wrapper { display: block; }
.row-fluid { display: flex; flex-wrap: wrap; width: 100%; margin: 0 auto; }
.row-fluid .widget-span { min-height: 1px; }
.row-fluid [class*="span"] { margin-left: 2.127%; }
.row-fluid [class*="span"]:first-child { margin-left: 0; }
.row-fluid .span12 { width: 100%; margin-left: 0; }
.row-fluid .span8  { width: 65.957%; }
.row-fluid .span7  { width: 57.446%; }
.row-fluid .span6  { width: 48.936%; }
.row-fluid .span5  { width: 40.425%; }
.row-fluid .span4  { width: 31.914%; }

@media (max-width: 767px) {
  .row-fluid { display: block; }
  .row-fluid [class*="span"] { width: 100% !important; margin-left: 0 !important; }
  .row-fluid [class*="span"] + [class*="span"] { margin-top: 20px; }
  .hidden-phone { display: none !important; }
}

/* ---------- Sezioni drag&drop ---------- */
.dnd-section {
  padding: 60px 20px;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.dnd-section > .row-fluid { max-width: 1000px; margin: 0 auto; }
.dnd-column { display: flex; flex-direction: column; }
.dnd-column > .row-fluid-wrapper:last-child .dnd-module { margin-bottom: 0; }

/* ---------- Utilità ---------- */
.no-list { list-style: none; margin: 0; padding: 0; }
.no-button { background: none; border: 0; padding: 0; }
.show-for-sr, .header__skip {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px; width: 1px;
  overflow: hidden;
  position: absolute !important;
}
.header__skip:focus {
  clip: auto; height: auto; width: auto;
  padding: 10px; background: #fff; z-index: 100;
}
.hs-horizontal-spacer { width: 100%; }

/* ---------- Header ---------- */
.header { position: relative; z-index: 50; }
.header .dnd-section { padding-top: 0; padding-bottom: 0; }
.header__container { padding: 0; }
.header__wrapper {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 20px;
}
.header__logo { display: flex; align-items: center; }
.header__logo-link { display: inline-block; }
.header__logo-image { display: block; }
.header__menu-col { display: flex; align-items: center; gap: 25px; }
.header__menu-wrapper { display: flex; align-items: center; }
.header__menu--desktop .header__menu-wrapper { gap: 30px; }
.header__menu-item { margin: 0; }
.header__menu-link { text-decoration: none !important; padding: 8px 0; display: inline-block; }
.header__button-col { display: flex; align-items: center; }
.header__button .button { text-decoration: none; display: inline-block; }

/* Menu mobile */
.header__menu-toggle { display: none; align-items: center; }
.header__menu--mobile {
  display: none;
  position: absolute;
  top: 100%; left: 0; right: 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.08);
}
.header__menu--mobile .header__menu-wrapper { display: block; padding: 0 20px 20px; }
.header__menu--mobile .header__menu-item { padding: 12px 0; }
.header__menu--mobile .header__menu-item--button { border-top: 0 !important; padding-top: 20px; }

@media (max-width: 767px) {
  .header__menu--desktop, .header__button-col { display: none; }
  .header__menu-toggle--show { display: flex; }
  .header--open .header__menu--mobile { display: block; }
  .header--open .header__menu-toggle--open { display: none; }
  .header--open .header__menu-toggle--close { display: flex; }
}
@media (min-width: 768px) {
  .header__menu--mobile, .header__menu-container--mobile { display: none; }
}

/* ---------- Footer ---------- */
.footer .dnd-section, .footer .footer-row-0-padding,
.footer .footer-row-1-padding, .footer .footer-row-2-padding { padding-left: 20px; padding-right: 20px; }
.footer .row-fluid { max-width: 1000px; margin: 0 auto; }
.footer .hs-menu-wrapper ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 25px; }
.footer .hs-menu-wrapper a { text-decoration: none; }
.footer p { margin-bottom: 0.5rem; }

/* Social follow */
.social-follow { display: flex; flex-wrap: wrap; }
.social-follow__link { display: inline-flex; text-decoration: none !important; }
.social-follow__icon {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 12px; border-radius: 50%;
  transition: background-color .15s ease;
}
.social-follow__icon svg { display: block; fill: #ffffff; height: 16px; width: 16px; }
@media (max-width: 767px) {
  .social-follow { justify-content: flex-start !important; }
  .social-follow__link { margin-top: 10px !important; }
}

/* ---------- Modulo lista con icone ---------- */
.list { list-style: none; padding-left: 0; margin: 0; }
.list__item { align-items: center; display: flex; width: 100%; margin-bottom: 22px; }
.list__item:last-child { margin-bottom: 0; }
.list__icon { flex-shrink: 0; display: inline-flex; margin-right: 15px; }
.list__icon .icon {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
}
.list__icon .icon svg { display: block; }
.list__content { flex: 1 1 auto; }
.list__content > *:last-child { margin-bottom: 0; }

/* ---------- Icona singola ---------- */
.icon-wrapper .icon {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
}
.icon-wrapper .icon svg { display: block; }

/* ---------- Bottoni ---------- */
.button-wrapper { display: block; }
a.button { display: inline-block; text-decoration: none !important; transition: background-color .15s ease; }

/* ---------- Slider (integrazione Splide) ---------- */
.slider-hero { position: relative; visibility: hidden; }
.slider-hero.is-initialized,
.slider-hero.is-rendered { visibility: visible; }
.slider-hero .splide__slide img {
  display: block;
  width: 100%;
  height: 70vh;
  min-height: 420px;
  object-fit: cover;
}
.slider-hero .splide__arrow { background: rgba(255,255,255,.85); opacity: 1; }
.slider-hero .splide__arrow svg { fill: #231f20; }
.slider-hero .splide__pagination { bottom: 15px; }
.slider-hero .splide__pagination__page { background: rgba(255,255,255,.6); }
.slider-hero .splide__pagination__page.is-active { background: #ffffff; transform: scale(1.2); }
@media (max-width: 767px) {
  .slider-hero .splide__slide img { height: 50vh; min-height: 300px; }
}
.splide__arrow { background: rgba(255,255,255,.85); opacity: 1; }
.splide__arrow svg { fill: #231f20; }
.splide__controls { position: absolute; bottom: 15px; left: 0; right: 0; display: flex; justify-content: center; align-items: center; gap: 12px; z-index: 2; }
.splide__pagination { position: static; padding: 0; }
.splide__pagination__page { background: rgba(255,255,255,.6); }
.splide__pagination__page.is-active { background: #ffffff; transform: scale(1.2); }
.splide__toggle { color: #fff; display: inline-flex; }
.splide__toggle svg { fill: #ffffff; height: 14px; width: 14px; }
.splide__toggle .splide__toggle__play { display: none; }
.splide__toggle .splide__toggle__pause { display: inline; }
.splide__toggle.is-paused .splide__toggle__play { display: inline; }
.splide__toggle.is-paused .splide__toggle__pause { display: none; }

/* ---------- Form ---------- */
.hs-form-field { margin-bottom: 18px; }
.hs-form-field label { display: block; }
.hs-input:not([type="checkbox"]):not([type="radio"]) { width: 100%; max-width: 100%; }
textarea.hs-input { min-height: 140px; resize: vertical; }
.inputs-list { list-style: none; margin: 0; padding: 0; }
.hs-form-booleancheckbox-display { display: flex; align-items: flex-start; gap: 8px; }
.hs-form-booleancheckbox-display input { margin-top: 4px; }
.legal-consent-container { margin-bottom: 18px; }
.hs-submit .actions { margin-top: 10px; }
.hs-error-msg, .hs-error-msgs { color: #b00020; font-size: 14px; list-style: none; padding: 0; margin: 6px 0 0; }
.form-messages { display: none; padding: 15px 20px; margin-bottom: 20px; font-family: Montserrat, sans-serif; }
.form-messages--ok { display: block; background: #516747; color: #ffffff; }
.form-messages--err { display: block; background: #b00020; color: #ffffff; }

/* ---------- Rich text ---------- */
.hs_cos_wrapper_type_rich_text img { height: auto; }
.hs_cos_wrapper_type_linked_image { display: block; }
