.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-6 .elementor-element.elementor-element-f22c964{--e-transform-rotateZ:-15deg;}.elementor-6 .elementor-element.elementor-element-f22c964 img{width:240px;border-radius:30px 30px 30px 30px;}.elementor-6 .elementor-element.elementor-element-186441c{--e-transform-rotateZ:12deg;}.elementor-6 .elementor-element.elementor-element-186441c img{width:180px;border-radius:20px 20px 20px 20px;}.elementor-6 .elementor-element.elementor-element-13b64df{--e-transform-rotateZ:15deg;}.elementor-6 .elementor-element.elementor-element-13b64df img{width:130px;border-radius:20px 20px 20px 20px;}.elementor-6 .elementor-element.elementor-element-610b690{--e-transform-rotateZ:25deg;}.elementor-6 .elementor-element.elementor-element-610b690 img{width:250px;border-radius:20px 20px 20px 20px;}.elementor-6 .elementor-element.elementor-element-ca1c93e{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-55d833a{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-e2984d6{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-3dcb45a{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-4619969{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-879df6b{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-12398ce{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-af8abe6{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-d91a3a7{--n-accordion-title-font-size:24px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--n-accordion-title-justify-content:space-between;--n-accordion-title-flex-grow:1;--n-accordion-title-icon-order:initial;--n-accordion-item-title-space-between:16px;--n-accordion-item-title-distance-from-content:0px;--n-accordion-title-normal-color:#002C46;--n-accordion-icon-size:10px;--n-accordion-icon-normal-color:#002C46;}.elementor-6 .elementor-element.elementor-element-d91a3a7 > .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title{border-style:solid;border-width:1px 0px 0px 0px;border-color:#002C46;}:where( .elementor-6 .elementor-element.elementor-element-d91a3a7 > .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title > .e-n-accordion-item-title-header ) > .e-n-accordion-item-title-text{font-family:"Outfit", Sans-serif;font-weight:300;line-height:28px;}:where( .elementor-6 .elementor-element.elementor-element-d91a3a7 > .e-n-accordion > .e-n-accordion-item ) > .e-con{--border-radius:0px 0px 0px 0px;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;}.elementor-6 .elementor-element.elementor-element-85c7777{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-332b63c{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-653271c{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-8448e5f{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-c899279{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-62c698f{--display:flex;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-860cfec{--n-accordion-title-font-size:24px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--n-accordion-title-justify-content:space-between;--n-accordion-title-flex-grow:1;--n-accordion-title-icon-order:initial;--n-accordion-item-title-space-between:16px;--n-accordion-item-title-distance-from-content:0px;--n-accordion-title-normal-color:#002C46;--n-accordion-icon-size:10px;--n-accordion-icon-normal-color:#002C46;}.elementor-6 .elementor-element.elementor-element-860cfec > .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title{border-style:solid;border-width:1px 0px 0px 0px;border-color:#002C46;}:where( .elementor-6 .elementor-element.elementor-element-860cfec > .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title > .e-n-accordion-item-title-header ) > .e-n-accordion-item-title-text{font-family:"Outfit", Sans-serif;font-weight:300;line-height:27px;}:where( .elementor-6 .elementor-element.elementor-element-860cfec > .e-n-accordion > .e-n-accordion-item ) > .e-con{--border-radius:0px 0px 0px 0px;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;}body.elementor-page-6:not(.elementor-motion-effects-element-type-background), body.elementor-page-6 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFAF7;}:root{--page-title-display:none;}@media(max-width:1024px){.elementor-6 .elementor-element.elementor-element-f22c964 img{width:150px;}.elementor-6 .elementor-element.elementor-element-186441c img{width:150px;}.elementor-6 .elementor-element.elementor-element-610b690 img{width:180px;}.elementor-6 .elementor-element.elementor-element-d91a3a7{--n-accordion-title-font-size:20px;}}@media(max-width:767px){.elementor-6 .elementor-element.elementor-element-f22c964 img{width:120px;}.elementor-6 .elementor-element.elementor-element-186441c img{width:100px;}.elementor-6 .elementor-element.elementor-element-13b64df img{width:90px;}.elementor-6 .elementor-element.elementor-element-610b690 img{width:100px;}.elementor-6 .elementor-element.elementor-element-ca1c93e{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-d91a3a7{width:100%;max-width:100%;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--n-accordion-title-justify-content:initial;--n-accordion-title-flex-grow:initial;--n-accordion-item-title-space-between:8px;--n-accordion-item-title-distance-from-content:4px;--n-accordion-title-font-size:20px;--n-accordion-icon-size:12px;--n-accordion-icon-gap:0%;}.elementor-6 .elementor-element.elementor-element-860cfec{--n-accordion-title-justify-content:initial;--n-accordion-title-flex-grow:initial;--n-accordion-title-font-size:20px;--n-accordion-icon-size:0px;--n-accordion-icon-gap:0%;}}/* Start custom CSS *//* Il wrap crea lo spazio di scroll — overflow DEVE essere visible
   perché il blocco figlio diventa fixed e esce dal flusso */
#ds-wrap {
  position: relative;
  height: 350vh;
  /* NON impostare overflow hidden qui */
}

/* Forza overflow visible su tutta la catena Elementor */
.elementor-section:has(#ds-wrap),
.elementor-column:has(#ds-wrap),
.elementor-widget-wrap:has(#ds-wrap),
.elementor-widget-container:has(#ds-wrap) {
  overflow: visible !important;
}

/* Il blocco parte absolute. Il JS lo porta a fixed
   quando la sezione entra nel viewport. */
#ds-sticky {
  position: absolute;
  top: 50%;
  left: 0;
  padding-right: 10%;
  width: 100%;
  height: px;
  /* z-index alto: deve stare sopra tutto mentre è fixed */
  z-index: 1;
}

/* Quando il JS applica fixed, la sezione sotto
   non deve sovrapporsi — il z-index lo gestisce */

#ds-wrap .ds-label {
  display: block;
  font-size: 48px;
  font-family: Outfit, sans-serif;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #E5D9D4;
  padding-left: 5%;
  line-height: 1;
  margin: 0;
  padding-top: 0;
  padding-bottom: 0;
  transform: translateY(0.15em);
}

#ds-wrap .ds-bg {
  width: 100%;
  height: 552px;
  background: #E5D9D4;
  border-radius: 0 280px 280px 0;
  overflow: hidden;
  display: flex;
}

#ds-wrap .ds-photos {
  position: relative;
  width: 44%;
  flex-shrink: 0;
  overflow: hidden;
   border-radius: 0 280px 280px 0;
}

#ds-wrap .ds-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0 !important;
  transition: opacity 0.75s ease !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block;
}

#ds-wrap .ds-photo.ds-on {
  opacity: 1 !important;
}

#ds-wrap .ds-texts {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 5%;
  overflow: hidden;
}

#ds-wrap .ds-stage {
  position: relative;
  width: 80%;
  height: 280px;
}

#ds-wrap .ds-box {
  position: absolute;
  top: 0; left: 0; right: 0;
  opacity: 0 !important;
  transform: translateY(0) !important;
  transition: opacity 0.6s ease, transform 0.6s ease;
  pointer-events: none;
}

#ds-wrap .ds-box.ds-enter {
  opacity: 0 !important;
  transform: translateY(32px) !important;
}

#ds-wrap .ds-box.ds-show {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto;
}

#ds-wrap .ds-box.ds-leave {
  opacity: 0 !important;
  transform: translateY(-32px) !important;
}

#ds-wrap .ds-row {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 0.85rem;
}

#ds-wrap .ds-icon {
  width: 40px; height: 40px;
  flex-shrink: 0; display: block;
  margin: 0 !important; padding: 0 !important;
}

#ds-wrap .ds-title {
  font-size: 30px; font-weight: 600;
  color: #002C46; line-height: 1.25;
  font-family: Outfit, sans-serif; margin: 0;
}

#ds-wrap .ds-body {
  font-size: 1.1em;
  font-family: Fustat, sans-serif;
  line-height: 1.75; color: #5C727F; margin: 0;
}

/* ============================================
   DOMOSENSE — Sezione Professionisti
   Versione speculare: foto destra, testi sinistra
   Sfondo: bordo sinistro sferico, bordo destro piatto
   Aggiungilo allo snippet CSS esistente in WPCode
   ============================================ */

#ds2-wrap {
  position: relative;
  height: 350vh;
  overflow: visible !important;
}

/* Forza overflow visible su tutti i wrapper Elementor */
.elementor-section:has(#ds2-wrap),
.elementor-column:has(#ds2-wrap),
.elementor-widget-wrap:has(#ds2-wrap),
.elementor-widget-container:has(#ds2-wrap) {
  overflow: visible !important;
}

#ds2-sticky {
  position: absolute;
  top: 10%;
  left: 0;
    padding-left: 10%;
  width: 100%;
  height: px;
  z-index: 1;
  will-change: position, top, left, width, transform;
}

/* Titolo — allineato sopra la colonna foto (destra) */
#ds2-wrap .ds2-label {
  display: block;
  font-size: 48px;
  font-family: Outfit, sans-serif;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #D6E8ED;
  /* Allineato a destra, sopra la colonna foto */
  padding-right: 5%;
  text-align: right;
  line-height: 1;
  margin: 0;
  padding-top: 0;
  padding-bottom: 0;
  transform: translateY(0.15em);
}

/* Sfondo speculare:
   bordo sinistro sferico, bordo destro piatto (tocca il bordo schermo) */
#ds2-wrap .ds2-bg {
  width: 100%;
  height: 552px;
  background: #D6E8ED;
  border-radius: 280px 0 0 280px; /* opposto alla sezione familiari */
  overflow: hidden;
  display: flex;
  flex-direction: row; /* testi sx, foto dx */
}

/* Colonna testi — sinistra */
#ds2-wrap .ds2-texts {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 5%;
  overflow: hidden;
}

#ds2-wrap .ds2-stage {
  position: relative;
  width: 80%;
  height: 280px;
}

#ds2-wrap .ds2-box {
  position: absolute;
  top: 0; left: 0; right: 0;
  opacity: 0 !important;
  transform: translateY(0) !important;
  transition: opacity 0.6s ease, transform 0.6s ease;
  pointer-events: none;
}

#ds2-wrap .ds2-box.ds2-enter {
  opacity: 0 !important;
  transform: translateY(32px) !important;
}

#ds2-wrap .ds2-box.ds2-show {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto;
}

#ds2-wrap .ds2-box.ds2-leave {
  opacity: 0 !important;
  transform: translateY(-32px) !important;
}

#ds2-wrap .ds2-row {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 0.85rem;
}

#ds2-wrap .ds2-icon {
  width: 40px; height: 40px;
  flex-shrink: 0; display: block;
  margin: 0 !important; padding: 0 !important;
}

#ds2-wrap .ds2-title {
  font-size: 30px; font-weight: 600;
  color: #002C46; line-height: 1.25;
  font-family: Outfit, sans-serif; margin: 0;
}

#ds2-wrap .ds2-body {
  font-size: 1.1em;
  font-family: Fustat, sans-serif;
  line-height: 1.75; color: #002C46; margin: 0;
}

/* Colonna foto — destra */
#ds2-wrap .ds2-photos {
  position: relative;
  width: 44%;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 280px 0 0 280px; /* opposto alla sezione familiari */
}

#ds2-wrap .ds2-photo {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0 !important;
  transition: opacity 0.75s ease !important;
  margin: 0 !important; padding: 0 !important;
  display: block;
}

#ds2-wrap .ds2-photo.ds2-on {
  opacity: 1 !important;
}

/* ============================================
   FIX SPAZIO TRA SEZIONI
   Aggiungilo in fondo allo snippet CSS in WPCode
   ============================================ */

/* Spazio verticale tra la sezione Familiari e Professionisti.
   Questo crea una "zona neutra" che impedisce la sovrapposizione
   durante lo scroll tra le due sezioni. */
#ds-wrap + * ,
.elementor-widget:has(#ds-wrap) {
  margin-bottom: 0 !important;
}

/* Il gap reale è creato da un padding-top sul wrapper
   della seconda sezione — modifica questo valore se
   vuoi più o meno spazio */
.elementor-widget:has(#ds2-wrap),
.elementor-section:has(#ds2-wrap) {
  padding-top: 80px !important;
}

/* ============================================
   DOMOSENSE — Mobile Fix v3 (definitivo)
   Sostituisce TUTTO il CSS mobile precedente.
   Approccio: breakout assoluto via viewport units,
   non dipende dalla struttura esatta di Elementor.
   ============================================ */

#ds-dots, #ds2-dots { display: none; }

@media (max-width: 768px) {

  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
  }

  /* ── AZZERA OGNI POSSIBILE PADDING/MARGIN ELEMENTOR ───
     Selettore generico: qualsiasi elemento Elementor che
     sia genitore di #ds-wrap o #ds2-wrap, a qualunque
     livello di annidamento (non solo diretto) */
  body *:has(> * > * > #ds-wrap),
  body *:has(> * > #ds-wrap),
  body *:has(> #ds-wrap),
  body *:has(#ds-wrap),
  body *:has(> * > * > #ds2-wrap),
  body *:has(> * > #ds2-wrap),
  body *:has(> #ds2-wrap),
  body *:has(#ds2-wrap) {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  /* ── WRAP: breakout totale dal contenitore Elementor ───
     Tecnica "viewport breakout": indipendentemente da
     quanto padding hanno i genitori, questo elemento si
     estende sempre esattamente 100vw, centrato. */
  #ds-wrap, #ds2-wrap {
    height: auto !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: 50% !important;
    transform: translateX(-50vw) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    position: relative !important;
    left: 0 !important;
  }

  #ds-sticky, #ds2-sticky {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    transform: none !important;
    will-change: auto !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  /* ── TITOLO: centrato ──────────────────────────────── */
  #ds-wrap .ds-label,
  #ds2-wrap .ds2-label {
    display: block !important;
    font-size: 28px !important;
    text-align: center !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    padding-top: 24px !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
    transform: none !important;
    line-height: 1.2 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* ── SFONDO: piena larghezza, niente bordi sferici ──── */
  #ds-wrap .ds-bg,
  #ds2-wrap .ds2-bg {
    flex-direction: column !important;
    height: auto !important;
    width: 100% !important;
    max-width: 100vw !important;
    border-radius: 32px 32px 32px 32px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  /* ── FOTO in alto: piena larghezza esatta ──────────── */
  #ds-wrap .ds-photos,
  #ds2-wrap .ds2-photos {
    width: 100% !important;
    max-width: 100vw !important;
    height: 260px !important;
    flex-shrink: 0 !important;
    border-radius: 32px 32px 32px 32px !important;
    overflow: hidden !important;
    position: relative !important;
    order: -1 !important;
    box-sizing: border-box !important;
  }

  #ds-wrap .ds-photo,
  #ds2-wrap .ds2-photo {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    opacity: 0 !important;
    transition: opacity 0.5s ease !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #ds-wrap .ds-photo.ds-on,
  #ds2-wrap .ds2-photo.ds2-on {
    opacity: 1 !important;
  }

  /* ── COLONNA TESTI ──────────────────────────────────── */
  #ds-wrap .ds-texts,
  #ds2-wrap .ds2-texts {
    width: 100% !important;
    max-width: 100vw !important;
    padding: 0 !important;
    overflow: hidden !important;
    display: block !important;
    box-sizing: border-box !important;
  }

  /* ── STAGE: riga orizzontale del carousel ──────────── */
  #ds-wrap .ds-stage,
  #ds2-wrap .ds2-stage {
    display: flex !important;
    flex-direction: row !important;
    width: 100% !important;
    height: auto !important;
    position: relative !important;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1) !important;
    will-change: transform !important;
  }

  /* ── BOX: ogni slide = esattamente 100vw, mai più ──── */
  #ds-wrap .ds-box,
  #ds2-wrap .ds2-box {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    flex: 0 0 100% !important;     /* flex-basis 100%, niente grow/shrink extra */
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding: 24px 6% 32px !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    pointer-events: auto !important;
  }

  #ds-wrap .ds-box.ds-enter,
  #ds-wrap .ds-box.ds-leave,
  #ds2-wrap .ds2-box.ds2-enter,
  #ds2-wrap .ds2-box.ds2-leave {
    opacity: 1 !important;
    transform: none !important;
  }

  #ds-wrap .ds-row,
  #ds2-wrap .ds2-row {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    margin-bottom: 0.65rem !important;
    flex-wrap: nowrap !important;
  }

  #ds-wrap .ds-icon,
  #ds2-wrap .ds2-icon {
    width: 36px !important;
    height: 36px !important;
    flex-shrink: 0 !important;
  }

  #ds-wrap .ds-title,
  #ds2-wrap .ds2-title {
    font-size: 20px !important;
    line-height: 1.3 !important;
  }

  #ds-wrap .ds-body,
  #ds2-wrap .ds2-body {
    font-size: 15px !important;
    line-height: 1.65 !important;
  }

  /* ── DOTS ───────────────────────────────────────────── */
  #ds-dots, #ds2-dots {
    display: flex !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 16px 0 28px !important;
    width: 100% !important;
  }

  .ds-dot, .ds2-dot {
    width: 8px !important;
    height: 8px !important;
    border-radius: 50% !important;
    background: #055A75 !important;
    opacity: 0.2 !important;
    transition: opacity 0.3s ease, transform 0.3s ease !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
  }

  .ds-dot.active, .ds2-dot.active {
    opacity: 1 !important;
    transform: scale(1.3) !important;
  }
}

/* ============================================
   FIX PADDING RESIDUO DESKTOP SU MOBILE
   Aggiungilo IN FONDO al CSS mobile esistente
   (dopo mobile-fix-v3.css) in WPCode.
   ============================================ */

@media (max-width: 768px) {

  /* Azzera esplicitamente il padding desktop su #ds-wrap
     e #ds2-wrap stessi — non solo sui loro figli.
     Il padding-right 5% (Familiari) e padding-left 5%
     (Professionisti) probabilmente vive su #ds-wrap/#ds2-wrap
     o su #ds-sticky/#ds2-sticky nel CSS desktop, fuori
     dal blocco media query, quindi va sovrascritto qui
     con la stessa specificità. */

  #ds-wrap,
  #ds2-wrap,
  #ds-sticky,
  #ds2-sticky {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Stessa cosa sullo sfondo colorato e le sue colonne dirette */
  #ds-wrap .ds-bg,
  #ds2-wrap .ds2-bg {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #ds-wrap .ds-photos,
  #ds-wrap .ds-texts,
  #ds2-wrap .ds2-photos,
  #ds2-wrap .ds2-texts {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Il padding del testo dentro i box va mantenuto (6% l/r)
     ma va reimpostato qui per essere sicuri che vinca su
     qualsiasi regola desktop con padding diverso */
  #ds-wrap .ds-box,
  #ds2-wrap .ds2-box {
    padding-left: 6% !important;
    padding-right: 6% !important;
  }
}

/* ============================================
   BULLET POINT NAVIGAZIONE DESKTOP
   Aggiungilo in fondo al CSS desktop esistente
   (fuori da qualsiasi @media query) in WPCode.
   ============================================ */


.ds-bullets-desktop {
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 14px;
  z-index: 110; /* sopra il blocco sticky */
}

.ds-bullets-desktop .ds-bullet {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #E5D9D4;
  opacity: 0.25;
  cursor: pointer;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.ds-bullets-desktop .ds-bullet:hover {
  opacity: 0.6;
  transform: scale(1.15);
}

.ds-bullets-desktop .ds-bullet.active {
  opacity: 1;
  transform: scale(1.3);
}



/* ── Sezione Professionisti: bullet a SINISTRA dello sfondo ── */

.ds2-bullets-desktop {
  position: absolute;
  left: 24px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 14px;
  z-index: 110;
}

.ds2-bullets-desktop .ds2-bullet {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #D6E8ED;
  opacity: 0.25;
  cursor: pointer;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.ds2-bullets-desktop .ds2-bullet:hover {
  opacity: 0.6;
  transform: scale(1.15);
}

.ds2-bullets-desktop .ds2-bullet.active {
  opacity: 1;
  transform: scale(1.3);
}



/* ── Nascondi i bullet desktop su mobile ── */
@media (max-width: 768px) {
  .ds-bullets-desktop,
  .ds2-bullets-desktop {
    display: none !important;
  }
}/* End custom CSS */