.ce-custom-module {
  position: relative;
  padding: clamp(34px, 5vw, 76px) 0;
  background: var(--ce-paper, #fbf8f1);
  color: var(--ce-ink, #171717);
}
.ce-custom-module + .ce-custom-module { padding-top: 18px; }
.ce-module-copy { max-width: 780px; }
.ce-module-copy.is-center { margin-inline: auto; text-align: center; }
.ce-module-copy h2,
.ce-custom-module > .ce-shell > h2 {
  margin: 8px 0 14px;
  font-size: clamp(30px, 4.3vw, 60px);
  line-height: .98;
}
.ce-module-richtext { color: var(--ce-muted, #6a6863); font-size: clamp(16px, 1.6vw, 20px); line-height: 1.6; }
.ce-module-richtext p { margin: 0 0 12px; }
.ce-module-image-text {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
}
.ce-module-image-text.is-image-right .ce-module-media { order: 2; }
.ce-module-media img,
.ce-module-image-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 2px solid var(--ce-ink, #171717);
  border-radius: 24px;
}
.ce-module-image-placeholder {
  display: grid;
  place-items: center;
  min-height: 280px;
  padding: 24px;
  background: rgba(0,0,0,.04);
  color: var(--ce-muted, #6a6863);
  text-align: center;
}
.ce-module-image-text .ce-button { margin-top: 12px; display: inline-flex; }
.ce-module-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: clamp(28px, 5vw, 62px);
  border: 2px solid var(--ce-ink, #171717);
  border-radius: 28px;
  box-shadow: 8px 8px 0 var(--ce-ink, #171717);
}
.ce-module-banner h2 { margin: 8px 0 10px; font-size: clamp(28px, 4vw, 54px); line-height: 1; }
.ce-module-banner p { margin: 0; max-width: 700px; }
.ce-module-banner.is-hot { background: var(--ce-hot, #ff5a43); }
.ce-module-banner.is-cyan { background: var(--ce-cyan, #19c7d5); }
.ce-module-banner.is-lime { background: var(--ce-lime, #c7f43a); }
.ce-module-banner.is-violet { background: var(--ce-violet, #7457ff); color: #fff; }
.ce-module-banner.is-ink { background: var(--ce-ink, #171717); color: #fff; }
.ce-module-banner.is-paper { background: var(--ce-paper, #fbf8f1); }
.ce-module-products { margin-top: 24px; }
.ce-module-products .products { margin-bottom: 0 !important; }
.ce-module-faq-list { display: grid; gap: 10px; margin-top: 24px; }
.ce-module-faq-item { border: 2px solid var(--ce-ink, #171717); border-radius: 16px; background: #fff; overflow: hidden; }
.ce-module-faq-item summary { cursor: pointer; padding: 18px 20px; font-weight: 800; list-style: none; }
.ce-module-faq-item summary::-webkit-details-marker { display: none; }
.ce-module-faq-item summary::after { content: '+'; float: right; font-size: 22px; }
.ce-module-faq-item[open] summary::after { content: '−'; }
.ce-module-faq-item > div { padding: 0 20px 18px; color: var(--ce-muted, #6a6863); line-height: 1.6; }
.ce-module-faq-item p { margin: 0; }
.ce-module-spacer { pointer-events: none; }
.ce-module-spacer + * { margin-top: 0; }

@media (max-width: 760px) {
  .ce-module-image-text { grid-template-columns: 1fr; }
  .ce-module-image-text.is-image-right .ce-module-media { order: 0; }
  .ce-module-banner { align-items: flex-start; flex-direction: column; box-shadow: 5px 5px 0 var(--ce-ink, #171717); }
}

/* v3.1 - Terza scelta nella sezione "Scegli come creare" */
.ce-path-grid.ce-path-grid-has-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.ce-path-grid-has-3 .ce-path-card {
  grid-template-columns: 1fr;
  min-height: 500px;
}
.ce-path-grid-has-3 .ce-path-copy {
  padding: 28px;
}
.ce-path-grid-has-3 .ce-path-copy h3 {
  font-size: clamp(2rem, 2.8vw, 3.35rem);
  overflow-wrap: anywhere;
}
.ce-path-grid-has-3 .ce-path-visual {
  border-left: 0;
  border-top: 3px solid var(--ce-ink);
  min-height: 190px;
}
.ce-path-grid-has-3 .ce-path-visual img {
  min-height: 180px;
  max-height: 230px;
}
.ce-path-3 {
  background: var(--ce-lime, #c7f43a);
}

@media (max-width: 1050px) and (min-width: 821px) {
  .ce-path-grid.ce-path-grid-has-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ce-path-grid-has-3 .ce-path-3 {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0,1fr) minmax(180px,.7fr);
    min-height: 360px;
  }
  .ce-path-grid-has-3 .ce-path-3 .ce-path-visual {
    border-top: 0;
    border-left: 3px solid var(--ce-ink);
  }
}

@media (max-width: 820px) {
  .ce-path-grid.ce-path-grid-has-3 {
    grid-template-columns: 1fr;
  }
  .ce-path-grid-has-3 .ce-path-3 {
    grid-column: auto;
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .ce-path-grid-has-3 .ce-path-3 .ce-path-visual {
    border-left: 0;
    border-top: 2px solid var(--ce-ink);
  }
}
