/* ==========================================================
   SASACO CONTACT V2
   ========================================================== */

body.sasaco-contact-body {
  background: #f5f7fb;
}

body.sasaco-contact-body .sasaco-contact {
  padding: 34px 0 54px;
}

body.sasaco-contact-body .sct-container {
  width: calc(100% - 2cm);
  max-width: none;
  margin-left: 1cm;
  margin-right: 1cm;
}

/* HERO */

.sct-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 28px;
  padding: 45px 48px;
  border: 1px solid #dfe7f1;
  border-radius: 30px;
  background:
    radial-gradient(circle at 90% 10%, rgba(31,110,235,.14), transparent 30%),
    linear-gradient(135deg,#ffffff 0%,#f7faff 100%);
  box-shadow: 0 16px 42px rgba(24,46,86,.05);
}

.sct-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  padding: 8px 13px;
  border-radius: 999px;
  background: #eaf2ff;
  color: #0d60dc;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.sct-hero h1 {
  margin: 0 0 13px;
  color: #102348;
  font-size: clamp(40px,4vw,58px);
  line-height: 1.05;
  letter-spacing: -1.5px;
  font-weight: 700;
}

.sct-hero p {
  max-width: 760px;
  margin: 0;
  color: #61708a;
  font-size: 18px;
  line-height: 1.7;
}

/* GRID */

.sct-grid {
  display: grid;
  grid-template-columns: 360px minmax(0,1fr);
  gap: 28px;
  align-items: start;
}

/* LEFT */

.sct-info {
  display: grid;
  gap: 18px;
}

.sct-info-card {
  padding: 25px;
  border: 1px solid #dfe7f1;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(24,46,86,.04);
}

.sct-info-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 17px;
  border-radius: 14px;
  background: #eaf2ff;
  color: #1264df;
  font-size: 20px;
}

.sct-info-card h3 {
  margin: 0 0 9px;
  color: #102348;
  font-size: 20px;
  font-weight: 700;
}

.sct-info-card p {
  margin: 0;
  color: #64728a;
  font-size: 14px;
  line-height: 1.65;
}

.sct-info-card a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 15px;
  color: #0d60dc;
  font-weight: 700;
  text-decoration: none;
}

/* FORM */

.sct-form-card {
  padding: 36px 40px;
  border: 1px solid #dfe7f1;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(24,46,86,.05);
}

.sct-form-head {
  margin-bottom: 28px;
}

.sct-form-head h2 {
  margin: 0 0 8px;
  color: #102348;
  font-size: 30px;
  font-weight: 700;
}

.sct-form-head p {
  margin: 0;
  color: #66758c;
  font-size: 15px;
}

.sct-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.sct-field {
  margin-bottom: 20px;
}

.sct-field.full {
  grid-column: 1 / -1;
}

.sct-field label {
  display: block;
  margin-bottom: 8px;
  color: #142848;
  font-size: 14px;
  font-weight: 700;
}

.sct-field .req {
  color: #ef3f4c;
}

body.sasaco-contact-body .sct-form-card input[type="text"],
body.sasaco-contact-body .sct-form-card input[type="email"],
body.sasaco-contact-body .sct-form-card textarea {
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 14px 15px !important;
  border: 1px solid #d7e0eb !important;
  border-radius: 12px !important;
  outline: 0 !important;
  background: #fff !important;
  color: #172a49 !important;
  font-size: 15px !important;
  box-shadow: none !important;
}

body.sasaco-contact-body .sct-form-card textarea {
  min-height: 190px !important;
  resize: vertical;
}

body.sasaco-contact-body .sct-form-card input:focus,
body.sasaco-contact-body .sct-form-card textarea:focus {
  border-color: #176bea !important;
  box-shadow: 0 0 0 4px rgba(23,107,234,.09) !important;
}

.sct-submit {
  min-height: 50px;
  padding: 13px 24px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(135deg,#176eea,#0e5cca) !important;
  color: #fff !important;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(20,99,220,.22);
}

.sct-submit:hover {
  transform: translateY(-1px);
}

body.sasaco-contact-body #error_list {
  margin: 0 0 18px;
  padding: 0;
}

/* RESPONSIVE */

@media screen and (max-width: 980px) {
  .sct-grid {
    grid-template-columns: 1fr;
  }

  .sct-info {
    grid-template-columns: repeat(3,1fr);
  }
}

@media screen and (max-width: 767px) {
  body.sasaco-contact-body .sct-container {
    width: calc(100% - 16px);
    margin-left: 8px;
    margin-right: 8px;
  }

  body.sasaco-contact-body .sasaco-contact {
    padding: 14px 0 30px;
  }

  .sct-hero {
    padding: 28px 20px;
    border-radius: 22px;
  }

  .sct-hero h1 {
    font-size: 38px;
  }

  .sct-hero p {
    font-size: 16px;
  }

  .sct-info {
    grid-template-columns: 1fr;
  }

  .sct-form-card {
    padding: 25px 18px;
    border-radius: 22px;
  }

  .sct-form-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
}


/* ==========================================================
   SASACO CONTACT V2
   FIX DEFINITIVO LAYOUT / OVERFLOW
   ========================================================== */


/* Impedisce alle regole globali Delta di alterare il layout */
body.sasaco-contact-body,
body.sasaco-contact-body * {
  box-sizing: border-box;
}


/* Nessuno scroll orizzontale */
html,
body.sasaco-contact-body {
  max-width: 100%;
  overflow-x: hidden !important;
}


/* MAIN */
body.sasaco-contact-body .sasaco-contact {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;

  min-width: 0 !important;

  margin: 0 !important;

  float: none !important;
  clear: both !important;
}


/* CONTAINER */
body.sasaco-contact-body .sct-container {
  display: block !important;

  width: calc(100% - 2cm) !important;
  max-width: none !important;
  min-width: 0 !important;

  margin-left: 1cm !important;
  margin-right: 1cm !important;

  padding: 0 !important;

  float: none !important;
  position: relative !important;
}


/* HERO */
body.sasaco-contact-body .sct-hero {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  float: none !important;
  clear: both !important;

  position: relative !important;
}


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

body.sasaco-contact-body .sct-grid {
  display: grid !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  grid-template-columns:
    minmax(280px, 340px)
    minmax(0, 1fr) !important;

  gap: 28px !important;

  align-items: start !important;

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

  float: none !important;
  clear: both !important;

  position: relative !important;
}


/* SINISTRA */
body.sasaco-contact-body .sct-info {
  display: grid !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  grid-template-columns: 1fr !important;
  gap: 18px !important;

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

  float: none !important;

  position: relative !important;
  inset: auto !important;
}


/* CARD SINISTRA */
body.sasaco-contact-body .sct-info-card {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  margin: 0 !important;

  float: none !important;
  position: relative !important;

  overflow: hidden !important;
}


/* FORM CARD */
body.sasaco-contact-body .sct-form-card {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  margin: 0 !important;

  float: none !important;
  position: relative !important;

  overflow: hidden !important;
}


/* FORM */
body.sasaco-contact-body .sct-form-card form {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

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

  float: none !important;
}


/* GRID CAMPI */
body.sasaco-contact-body .sct-form-grid {
  display: grid !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr) !important;

  gap: 18px !important;
}


/* Ogni campo può restringersi */
body.sasaco-contact-body .sct-field,
body.sasaco-contact-body .sct-field .input-box,
body.sasaco-contact-body .sct-field span {
  max-width: 100% !important;
  min-width: 0 !important;
}


/* Input generati da Osclass */
body.sasaco-contact-body .sct-form-card input,
body.sasaco-contact-body .sct-form-card textarea,
body.sasaco-contact-body .sct-form-card select {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  box-sizing: border-box !important;
}


/* ==========================================================
   TABLET
   ========================================================== */

@media screen and (max-width: 1100px) {

  body.sasaco-contact-body .sct-grid {
    grid-template-columns: 1fr !important;
  }

  body.sasaco-contact-body .sct-info {
    grid-template-columns:
      repeat(3, minmax(0,1fr)) !important;
  }

}


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

@media screen and (max-width: 767px) {

  body.sasaco-contact-body .sct-container {
    width: calc(100% - 16px) !important;

    margin-left: 8px !important;
    margin-right: 8px !important;
  }

  body.sasaco-contact-body .sct-grid {
    grid-template-columns: 1fr !important;

    gap: 18px !important;
  }

  body.sasaco-contact-body .sct-info {
    grid-template-columns: 1fr !important;
  }

  body.sasaco-contact-body .sct-form-grid {
    grid-template-columns: 1fr !important;
  }

}


/* ==========================================================
   SASACO CONTACT
   BREADCRUMB + SPAZIO SOTTO HEADER
   DESKTOP / TABLET / MOBILE
   ========================================================== */


/* ----------------------------------------------------------
   DESKTOP
   ---------------------------------------------------------- */

@media screen and (min-width: 1200px) {

  body#body-contact.sasaco-contact-body #bread {
    width: 100% !important;

    margin-top: 10px !important;
    margin-bottom: 10px !important;

    padding: 0 !important;
  }

  body#body-contact.sasaco-contact-body #bread .wrap {
    width: calc(100% - 2cm) !important;
    max-width: none !important;

    margin-left: 1cm !important;
    margin-right: 1cm !important;

    padding: 0 !important;

    text-align: left !important;
  }

  body#body-contact.sasaco-contact-body .sasaco-contact {
    padding-top: 10px !important;
  }

}


/* ----------------------------------------------------------
   TABLET
   ---------------------------------------------------------- */

@media screen and (min-width: 768px) and (max-width: 1199px) {

  body#body-contact.sasaco-contact-body #bread {
    width: 100% !important;

    margin-top: 8px !important;
    margin-bottom: 8px !important;

    padding: 0 !important;
  }

  body#body-contact.sasaco-contact-body #bread .wrap {
    width: calc(100% - 32px) !important;
    max-width: none !important;

    margin-left: 16px !important;
    margin-right: 16px !important;

    padding: 0 !important;

    text-align: left !important;
  }

  body#body-contact.sasaco-contact-body .sasaco-contact {
    padding-top: 8px !important;
  }

}


/* ----------------------------------------------------------
   MOBILE
   ---------------------------------------------------------- */

@media screen and (max-width: 767px) {

  body#body-contact.sasaco-contact-body #bread {
    width: 100% !important;

    margin-top: 6px !important;
    margin-bottom: 6px !important;

    padding: 0 !important;

    overflow: hidden !important;
  }

  body#body-contact.sasaco-contact-body #bread .wrap {
    width: calc(100% - 16px) !important;
    max-width: none !important;

    margin-left: 8px !important;
    margin-right: 8px !important;

    padding: 0 !important;

    text-align: left !important;
  }

  body#body-contact.sasaco-contact-body #bread ul {
    max-width: 100% !important;

    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body#body-contact.sasaco-contact-body .sasaco-contact {
    padding-top: 6px !important;
  }

}


/* ==========================================================
   SASACO CONTACT
   BREADCRUMB DEFINITIVO
   ========================================================== */

body#body-contact.sasaco-contact-body #bread {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 8px 0 10px !important;
  padding: 0 !important;

  text-align: left !important;
}


body#body-contact.sasaco-contact-body #bread .wrap {
  display: block !important;

  width: calc(100% - 2cm) !important;
  max-width: none !important;
  min-width: 0 !important;

  margin-left: 1cm !important;
  margin-right: 1cm !important;

  padding: 0 !important;

  float: none !important;

  text-align: left !important;

  box-sizing: border-box !important;
}


body#body-contact.sasaco-contact-body #bread ul,
body#body-contact.sasaco-contact-body #bread .breadcrumb {
  display: flex !important;

  align-items: center !important;
  justify-content: flex-start !important;

  width: 100% !important;
  max-width: 100% !important;

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

  float: none !important;

  text-align: left !important;
}


body#body-contact.sasaco-contact-body #bread li {
  float: none !important;

  display: inline-flex !important;
  align-items: center !important;

  color: #75839a !important;

  font-size: 13px !important;
  line-height: 20px !important;
}


body#body-contact.sasaco-contact-body #bread li a {
  color: #1765d8 !important;

  font-weight: 600 !important;

  text-decoration: none !important;
}


body#body-contact.sasaco-contact-body #bread li a:hover {
  color: #0b4faf !important;
}


/* TABLET */
@media screen and (min-width: 768px) and (max-width: 1199px) {

  body#body-contact.sasaco-contact-body #bread .wrap {
    width: calc(100% - 32px) !important;

    margin-left: 16px !important;
    margin-right: 16px !important;
  }

}


/* MOBILE */
@media screen and (max-width: 767px) {

  body#body-contact.sasaco-contact-body #bread {
    margin: 6px 0 8px !important;
  }

  body#body-contact.sasaco-contact-body #bread .wrap {
    width: calc(100% - 16px) !important;

    margin-left: 8px !important;
    margin-right: 8px !important;
  }

  body#body-contact.sasaco-contact-body #bread ul,
  body#body-contact.sasaco-contact-body #bread .breadcrumb {
    overflow: hidden !important;

    white-space: nowrap !important;
  }

}


/* ==========================================================
   SASACO CONTACT
   BREADCRUMB - ALLINEAMENTO REALE CON HERO
   ========================================================== */


/* Elimina il contenitore centrale Delta */
body#body-contact.sasaco-contact-body #bread > .inside {
  display: block !important;

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

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

  float: none !important;
}


/* Desktop: stessa linea del hero */
body#body-contact.sasaco-contact-body #bread .wrap {
  display: block !important;

  width: calc(100% - 2cm) !important;
  max-width: none !important;
  min-width: 0 !important;

  margin-left: 1cm !important;
  margin-right: 1cm !important;

  padding: 0 !important;

  float: none !important;
}


/* Contenuto breadcrumb */
body#body-contact.sasaco-contact-body #bread .bread-text {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

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

  float: none !important;

  text-align: left !important;
}


body#body-contact.sasaco-contact-body #bread .bread-text ul {
  display: flex !important;

  align-items: center !important;
  justify-content: flex-start !important;

  width: auto !important;

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

  float: none !important;

  text-align: left !important;
}


/* ==========================================================
   TABLET
   ========================================================== */

@media screen and (min-width: 768px) and (max-width: 1199px) {

  body#body-contact.sasaco-contact-body #bread .wrap {
    width: calc(100% - 32px) !important;

    margin-left: 16px !important;
    margin-right: 16px !important;
  }

}


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

@media screen and (max-width: 767px) {

  body#body-contact.sasaco-contact-body #bread .wrap {
    width: calc(100% - 16px) !important;

    margin-left: 8px !important;
    margin-right: 8px !important;
  }

  body#body-contact.sasaco-contact-body #bread .bread-text {
    overflow: hidden !important;
  }

  body#body-contact.sasaco-contact-body #bread .bread-text ul {
    max-width: 100% !important;

    white-space: nowrap !important;
    overflow: hidden !important;
  }

}
