/* Compatibilita minima tra i layout approvati e i contenitori Elementor. */
.visionaria-elementor-page .elementor,
.visionaria-elementor-page .elementor-element,
.visionaria-elementor-page .elementor-widget-container { min-width: 0; }
.visionaria-elementor-page .elementor-element.e-con {
  --container-max-width: 100%;
  --padding-top: 0;
  --padding-right: 0;
  --padding-bottom: 0;
  --padding-left: 0;
  --margin-top: 0;
  --margin-right: 0;
  --margin-bottom: 0;
  --margin-left: 0;
  --gap: 0;
  --row-gap: 0;
  --column-gap: 0;
}
.visionaria-elementor-page .elementor-widget { margin: 0; }
.visionaria-elementor-page .elementor-widget-container { height: 100%; }
.visionaria-elementor-page .elementor-widget-text-editor { color: inherit; font: inherit; }
.visionaria-elementor-page .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.visionaria-elementor-page .elementor-widget-image img { width: 100%; height: auto; }
.visionaria-elementor-page .elementor-widget-button .elementor-button { font: inherit; }
.visionaria-elementor-page .elementor-widget-button.button .elementor-button,
.visionaria-elementor-page .elementor-widget-button.cta .elementor-button {
  width: 100%;
  min-height: inherit;
  padding: 0;
  color: inherit !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-decoration: none;
}
.visionaria-elementor-page .elementor-widget-button.button,
.visionaria-elementor-page .elementor-widget-button.cta,
.visionaria-elementor-page .elementor-widget-button.area-button { width: fit-content; max-width: 100%; align-self: center; }
.visionaria-elementor-page .elementor-widget-button .elementor-button-content-wrapper { justify-content: center; }
.visionaria-elementor-page .pillars > .pillar {
  position: relative;
  min-height: 164px;
  padding: 26px 124px 26px 22px;
  border: 1px solid rgba(136, 112, 49, 0.36);
  background: rgba(255,255,255,0.24);
}
.visionaria-elementor-page .pillars .pillar-copy p {
  margin: 0;
  color: #071B2D;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  line-height: 1.16;
}
.visionaria-elementor-page .pillars .pillar-copy p span { color: #887031; }
.visionaria-elementor-page .pillars .pillar-icon {
  position: absolute !important;
  top: 50%;
  right: 10px;
  width: 108px !important;
  height: 108px !important;
  transform: translateY(-50%);
}
.visionaria-elementor-page .pillars .pillar-icon img { width: 108px; height: 108px; object-fit: contain; }
.visionaria-elementor-page .hero-media.elementor-widget-image,
.visionaria-elementor-page .hero-media .elementor-widget-container,
.visionaria-elementor-page .hero-media img { width: 100%; }
.visionaria-elementor-page .flow-visual > .e-con-inner,
.visionaria-elementor-page .flow-visual > .elementor-element,
.visionaria-elementor-page .flow-visual .elementor-widget-image,
.visionaria-elementor-page .flow-visual .elementor-widget-container { height: 100%; min-height: inherit; }
.visionaria-elementor-page .site-footer { display: grid; gap: 8px; justify-items: center; }
.visionaria-elementor-page .site-footer p { margin: 0; }
.visionaria-elementor-page .footer-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; }
.visionaria-elementor-page .footer-nav a { color: inherit; text-underline-offset: 0.22em; }
.visionaria-elementor-page .main-nav ul { display: contents; margin: 0; padding: 0; list-style: none; }

@media (max-width: 719px) {
  .visionaria-elementor-page .site-header { isolation: isolate; }
  .visionaria-elementor-page .main-nav {
    background: #F4F2EB;
    opacity: 1;
    z-index: 10001;
    height: calc(100dvh - var(--header-height, 76px));
    max-height: calc(100dvh - var(--header-height, 76px));
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .visionaria-elementor-page .main-nav a { color: #071B2D; }
  .visionaria-elementor-page .pillars > .pillar {
    min-height: 150px;
    padding: 24px 116px 24px 18px;
  }
  .visionaria-elementor-page .pillars .pillar-copy p { font-size: clamp(1.45rem, 7vw, 2.1rem); }
  .visionaria-elementor-page .pillars .pillar-icon,
  .visionaria-elementor-page .pillars .pillar-icon img { width: 98px !important; height: 98px !important; }
}

body.elementor-editor-active .accordion-item > .area-panel { display: block !important; height: auto !important; opacity: 1 !important; visibility: visible !important; }


/* Fix mirati 2026-10-18: HOME Elementor canonica. */
.visionaria-home .hero-close {
  padding-top: 0;
  border-top: 0 !important;
}
.visionaria-home .growth-grid > .elementor-widget-text-editor,
.visionaria-home .growth-grid > .elementor-widget-text-editor .elementor-widget-container,
.visionaria-home .growth-grid > .elementor-widget-text-editor p { height: 100%; }
@media (min-width: 1100px) {
  .visionaria-home .hero-media.elementor-widget-image {
    position: relative;
    height: 100%;
    overflow: hidden;
  }
  .visionaria-home .hero-media.elementor-widget-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100% !important;
    object-fit: cover;
  }
  .visionaria-home .split-edge {
    grid-template-columns: minmax(0, 52%) minmax(0, 48%);
  }
  .visionaria-home .split-edge .editorial-image {
    position: relative;
    height: 100%;
    min-height: 850px;
    overflow: hidden;
  }
  .visionaria-home .split-edge .editorial-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100% !important;
    object-fit: cover;
  }
}


/* Fix mirato CONTATTI: il vecchio CSS della griglia non deve dimezzare Elementor Form. */
.visionaria-contatti form.elementor-form { display: block; }
.visionaria-contatti form.elementor-form .elementor-form-fields-wrapper { width: 100%; }
.visionaria-contatti .elementor-field-type-acceptance .elementor-field-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.visionaria-contatti .elementor-field-type-acceptance input[type="checkbox"] {
  width: auto;
  flex: 0 0 auto;
  margin-top: 0.35em;
}
