/*
Theme Name: Hello Elementor Child Theme
Author:
Description: Your description goes here
Version: 1.0
Template: hello-elementor

This is the child theme for Hello Elementor theme,
generated with Generate Child Theme plugin by catchthemes.
*/


/* ==========================================
   VARIABILI
========================================== */

:root {
    --font: 'Montserrat', sans-serif;
    --primary-color: #09436f;
    --secondary-color: #73C200;
    --light-gray: #8080806b;
    --form-border: #d6d6d6;
}


/* ==========================================
   GLOBAL
========================================== */

span.green-title {
    color: var(--secondary-color);
}


/* ==========================================
   FORM CONTATTI
========================================== */


/* ------------------------------------------
   LABEL
------------------------------------------ */

.form_contatti .gfield_label,
.form_contatti .gform-field-label {
    font-family: var(--font) !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 500 !important;
    color: var(--primary-color) !important;
}


/* Testo interno label */

.form_contatti span.gform-field-label__text {
    font-family: var(--font) !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 500 !important;
    color: var(--primary-color) !important;
}


/* Nasconde "(Obbligatorio)" */

.form_contatti .gfield_required {
    display: none !important;
}


/* ==========================================
   INPUT / SELECT / TEXTAREA
========================================== */

.form_contatti input[type="text"],
.form_contatti input[type="email"],
.form_contatti input[type="tel"],
.form_contatti input[type="number"],
.form_contatti input[type="url"],
.form_contatti select,
.form_contatti textarea {

    width: 100% !important;

    border: 1px solid var(--form-border) !important;
    border-radius: 8px !important;

    background: transparent !important;

    box-shadow: none !important;
    outline: none !important;

    font-family: var(--font) !important;
    font-size: 14px !important;
    font-weight: 400 !important;

    color: var(--primary-color) !important;

    transition: border-color .2s ease;
}


/* ------------------------------------------
   ALTEZZA INPUT
------------------------------------------ */

.form_contatti input[type="text"],
.form_contatti input[type="email"],
.form_contatti input[type="tel"],
.form_contatti input[type="number"],
.form_contatti input[type="url"],
.form_contatti select {

    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;

    padding: 0 12px !important;
}


/* ==========================================
   TEXTAREA
========================================== */

.form_contatti textarea {

    height: 60px !important;
    min-height: 60px !important;

    padding: 10px 12px !important;

    resize: vertical;
}


/* ==========================================
   FOCUS CAMPI
========================================== */

.form_contatti input[type="text"]:focus,
.form_contatti input[type="email"]:focus,
.form_contatti input[type="tel"]:focus,
.form_contatti input[type="number"]:focus,
.form_contatti input[type="url"]:focus,
.form_contatti select:focus,
.form_contatti textarea:focus {

    border-color: var(--primary-color) !important;

    outline: none !important;
    box-shadow: none !important;
}


/* ==========================================
   SPAZIATURE FORM
========================================== */

.form_contatti .gform_fields {

    row-gap: 20px !important;
    column-gap: 20px !important;
}


.form_contatti .gfield {

    margin: 0 !important;
}


.form_contatti .gfield_label {

    margin-bottom: 7px !important;
}


/* ==========================================
   CONSENSO / PRIVACY
========================================== */


/* Nasconde il titolo "Consenso" */

.form_contatti .gfield--type-consent > legend {

    display: none !important;
}


/* Container checkbox + testo */

.form_contatti .ginput_container_consent {

    display: flex !important;

    align-items: center !important;

    gap: 6px !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* ==========================================
   CHECKBOX
========================================== */

.form_contatti .ginput_container_consent input[type="checkbox"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: block !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
    flex: 0 0 18px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid var(--form-border) !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: none !important;
    cursor: pointer;
}


/* Checkbox selezionata */

.form_contatti .ginput_container_consent input[type="checkbox"]:checked {
    background-color: var(--secondary-color) !important;
    border-color: var(--secondary-color) !important;
}


/* Check bianca */

.form_contatti .ginput_container_consent input[type="checkbox"]:checked::before {
    content: "" !important;
    display: block !important;
    width: 5px !important;
    height: 9px !important;
    margin-left: 5px !important;
    margin-top: 2px !important;
    border: solid #ffffff !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
}


/* ==========================================
   TESTO PRIVACY
========================================== */

.form_contatti .gfield_consent_label {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--font) !important;
    font-size: 10px !important;
    line-height: 14px !important;
    font-weight: 400 !important;
    color: var(--primary-color) !important;
}


.form_contatti .gfield_consent_label .gform-field-label__text {
    font-family: var(--font) !important;
    font-size: 10px !important;
    line-height: 14px !important;
    font-weight: 400 !important;
    color: var(--primary-color) !important;
}


/* ==========================================
   FOOTER FORM
========================================== */

.form_contatti .gform-footer,
.form_contatti .gform_footer {
    margin: 20px 0 0 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
}


/* ==========================================
   BOTTONE SEND
========================================== */

.form_contatti .gform_wrapper .gform_button,
.form_contatti .gform_wrapper button.gform_button,
.form_contatti button#gform_submit_button_1 {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 94px !important;
    max-width: none !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 24px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 30px !important;
    background: var(--secondary-color) !important;
    color: #ffffff !important;
    font-family: var(--font) !important;
    font-size: 16px !important;
    line-height: 1 !important;
    font-weight: 400 !important;
    text-align: center !important;
    box-shadow: none !important;
    cursor: pointer !important;
    flex: none !important;
    transition:
        opacity .2s ease,
        transform .2s ease;
}


/* Hover bottone */

.form_contatti .gform_wrapper .gform_button:hover,
.form_contatti .gform_wrapper button.gform_button:hover,
.form_contatti button#gform_submit_button_1:hover {
    background: var(--secondary-color) !important;
    color: #ffffff !important;
    opacity: .85;
}


/* ==========================================
   ERRORI GRAVITY FORMS
========================================== */

.form_contatti .gfield_validation_message {
    font-family: var(--font) !important;
    font-size: 12px !important;
    margin-top: 5px !important;
}


/* ==========================================
   MOBILE
========================================== */

@media (max-width: 767px) {

    .form_contatti .gform_fields {
        column-gap: 0 !important;
        row-gap: 16px !important;
    }


    /* First Name e Last Name full width */

    .form_contatti .gfield--width-half {
        grid-column: 1 / -1 !important;
    }


    /* Textarea più alta */

    .form_contatti textarea {
        height: 100px !important;
        min-height: 100px !important;
    }


    /* Privacy */

    .form_contatti .ginput_container_consent {
        align-items: flex-start !important;
    }


    .form_contatti .gfield_consent_label,
    .form_contatti .gfield_consent_label .gform-field-label__text {
        font-size: 10px !important;
        line-height: 14px !important;
    }
}

/* HERO */
.hero-gradient {
  position: relative !important;
  isolation: isolate;
}

.hero-gradient::before {
  content: "" !important;

  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;

  width: 100% !important;
  height: 100% !important;

  background: linear-gradient(
      90deg,
      rgba(0, 48, 77, 0.96) 0%,
      rgba(0, 48, 77, 0.88) 38%,
      rgba(0, 48, 77, 0.08) 66%,
      rgba(0, 48, 77, 0) 100%
  ) !important;

  z-index: 0 !important;
  pointer-events: none !important;
}

.hero-gradient > * {
  position: relative;
  z-index: 1;
}

/* ==========================================
   HEADER MOBILE NORMALE
========================================== */

.header-mobile {
  position: relative;
  z-index: 100;
}

.header-mobile .open-header-mobile {
  cursor: pointer;
}


/* ==========================================
 OFFCANVAS
========================================== */

.mobile-offcanvas {
  position: fixed !important;

  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;

  width: 100% !important;

  height: 100vh !important;
  height: 100dvh !important;

  min-height: 100vh !important;
  min-height: 100dvh !important;

  background: #fff !important;

  z-index: 999999 !important;

  overflow-y: auto !important;
  overscroll-behavior: contain;

  /* CHIUSO */
  transform: translate3d(100%, 0, 0) !important;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  /*
   * CHIUSURA:
   * - transform dura 0.9s
   * - opacity dura 0.9s
   * - visibility diventa hidden SOLO dopo 0.9s
   */
  transition:
      transform 0.9s cubic-bezier(0.76, 0, 0.24, 1),
      opacity 0.9s ease,
      visibility 0s linear 0.9s !important;

  will-change: transform, opacity;

  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}


/* ==========================================
 OFFCANVAS APERTO
========================================== */

.mobile-offcanvas.is-open {
  transform: translate3d(0, 0, 0) !important;

  opacity: 1;
  visibility: visible;
  pointer-events: auto;

  /*
   * APERTURA:
   * visibility immediata
   */
  transition:
      transform 0.9s cubic-bezier(0.76, 0, 0.24, 1),
      opacity 0.9s ease,
      visibility 0s linear 0s !important;
}


/* ==========================================
 HAMBURGER + X
========================================== */

.open-header-mobile,
.close-header-mobile {
  cursor: pointer;
}


/* ==========================================
 BLOCCA SCROLL PAGINA
========================================== */

body.mobile-menu-open {
  overflow: hidden !important;
}


/* ==========================================
 DESKTOP
========================================== */

@media (min-width: 1024px) {

  .header-mobile,
  .mobile-offcanvas {
      display: none !important;
  }

}