/* FC CUSTOM CSS – file autonomo del modulo.
   Fulvio può modificare selettori, variabili e media query.
   Non dipende da Helix, Bootstrap, jQuery o da altri moduli. */
.fcq {
  /* 01 — VARIABILI: modifica qui colori, dimensioni e raggi. */
  --fcq-ink:#183247;
  --fcq-header:#102d43;
  --fcq-header-end:#175c65;
  --fcq-soft:#edf7f8;
  --fcq-muted:#526775;
  --fcq-accent:#116777;
  --fcq-line:#ced9df;
  --fcq-surface:#ffffff;
  --fcq-radius:24px;
  --fcq-shadow:0 20px 65px #15354718;
  max-width:1000px;
  margin:24px auto;
  color:var(--fcq-ink);
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.55;
  background:var(--fcq-surface);
  border:1px solid var(--fcq-line);
  border-radius:var(--fcq-radius);
  overflow:hidden;
  box-shadow:var(--fcq-shadow)
}

.fcq * {
  box-sizing:border-box
}

.fcq [hidden] {
  display:none!important
}

/* 02 — TESTATA: sfondo, titolo e badge. Nessuna immagine esterna. */
.fcq .fcq-head {
  background:linear-gradient(120deg,var(--fcq-header),var(--fcq-header-end));
  padding:42px 44px;
  color:#fff;
  position:relative;
}
.fcq .fcq-eyebrow {
  font-size:11px; letter-spacing:.17em; font-weight:750;
  color:#d4eded; margin:0 0 16px;
}
.fcq .fcq-head h2 {
  font-size:clamp(28px,4vw,40px); line-height:1.16; letter-spacing:-.035em;
  margin:0 0 18px; color:#fff; font-weight:750;
}
.fcq .fcq-head>p:not(.fcq-eyebrow) {max-width:690px;color:#e4f0f3;font-size:15px;line-height:1.7;margin:0;}
.fcq .fcq-badges {display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.fcq .fcq-badges span {font-size:12px;padding:6px 12px;border:1px solid #ffffff40;border-radius:30px;color:#fff;}
/* 03 — PALETTE: selezionabili dal pannello Grafica e CSS. */
.fcq[data-theme="forest"] {--fcq-accent:#286143;--fcq-header:#18392b;--fcq-header-end:#397653;--fcq-soft:#edf6f0;}
.fcq[data-theme="plum"] {--fcq-accent:#744070;--fcq-header:#38223f;--fcq-header-end:#794c78;--fcq-soft:#f7eff7;}
/* 04 — SEZIONI E GRIGLIA: due colonne, una sotto 640px. */
.fcq h3 {
  font-size:24px;
  margin:24px 0;
  outline-offset:5px;
  color:var(--fcq-ink)
}

.fcq-form {
  padding:30px 44px 36px
}

.fcq-progress-label {
  font-weight:600;
  font-size:14px;
  margin:0 0 8px
}

.fcq progress {
  width:100%;
  height:9px;
  accent-color:var(--fcq-accent)
}

.fcq-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}

.fcq-wide {
  grid-column:1/-1
}

/* 05 — CAMPI: etichette, controlli, selezioni e focus accessibile. */
.fcq-field>label,.fcq legend {
  display:block;
  font-size:15px;
  font-weight:600;
  margin:0 0 8px;
  float:none;
  width:auto
}

.fcq fieldset {
  padding:0;
  border:0;
  margin:0;
  min-width:0
}

.fcq input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.fcq textarea,.fcq select {
  width:100%;
  border:1px solid #aebfc8;
  border-radius:10px;
  padding:11px 12px;
  font:inherit;
  background:#fff;
  color:#163248;
  min-height:50px
}

.fcq textarea {
  resize:vertical
}

.fcq input:focus-visible,.fcq select:focus-visible,.fcq textarea:focus-visible,.fcq button:focus-visible,.fcq a:focus-visible {
  outline:3px solid #e5a839;
  outline-offset:3px
}

.fcq .fcq-choice {
  display:flex;
  align-items:flex-start;
  gap:10px;
  border:1px solid #dce4e8;
  padding:10px 12px;
  border-radius:10px;
  margin-bottom:8px;
  font-weight:400;
  cursor:pointer
}

.fcq .fcq-choice:has(input:checked) {
  border-color:var(--fcq-accent);
  background:var(--fcq-soft)
}

.fcq input[type=checkbox],.fcq input[type=radio] {
  width:18px;
  height:18px;
  flex:0 0 18px;
  margin:4px 0 0;
  accent-color:var(--fcq-accent)
}

.fcq-hint {
  display:block;
  font-size:13px;
  color:var(--fcq-muted);
  margin-top:6px
}

/* 06 — ERRORI E STATO: mantenere contrasto e visibilità. */
.fcq-error {
  color:#a52121;
  font-size:14px;
  margin:6px 0 0
}

.fcq [aria-invalid=true] {
  border-color:#a52121!important
}

.fcq-status:not(:empty) {
  padding:12px 16px;
  margin:16px 0;
  background:#f1f5f7;
  border-radius:6px
}

/* 07 — NAVIGAZIONE: Avanti, Indietro, Invia. */
.fcq-nav {
  display:flex;
  justify-content:flex-end;
  gap:12px;
  margin-top:28px;
  border-top:1px solid #dce4e8;
  padding-top:22px
}

.fcq button {
  background:var(--fcq-accent);
  color:white;
  border:1px solid var(--fcq-accent);
  border-radius:10px;
  min-height:50px;
  padding:10px 22px;
  font:inherit;
  font-weight:600;
  cursor:pointer
}

.fcq button.fcq-back,.fcq button.fcq-renew {
  background:white;
  color:var(--fcq-accent)
}

.fcq button:disabled {
  opacity:.5;
  cursor:wait
}

/* 08 — RIEPILOGO E PRIVACY. */
.fcq-review dl {
  margin:0
}

.fcq-review dt {
  font-weight:600;
  font-size:14px;
  padding-top:12px
}

.fcq-review dd {
  margin:4px 0 0;
  padding-bottom:12px;
  border-bottom:1px solid #e4eaed;
  white-space:pre-wrap;
  overflow-wrap:anywhere
}

.fcq-review h4 {
  margin-top:24px
}

.fcq-privacy {
  background:#f2f6f7;
  padding:18px;
  margin:24px 0
}

.fcq-privacy a {
  color:var(--fcq-accent);
  text-decoration:underline
}

.fcq-trap {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}

.fcq-success {
  padding:32px
}

.fcq-success h3 {
  margin-top:0
}

/* 09 — MOBILE. */
@media(max-width:640px) {
  .fcq {
  margin:12px 0;
  border-radius:10px
}

.fcq .fcq-head {
  padding:28px 22px
}

.fcq-form {
  padding:20px
}

.fcq-grid {
  grid-template-columns:1fr;
  gap:20px
}

.fcq-nav {
  flex-wrap:wrap
}

.fcq button {
  flex:1
}

.fcq h3 {
  font-size:22px
}


}



/* 10 — FINITURE E ACCESSIBILITÀ. */
.fcq .fcq-progress {padding:0 0 22px;border-bottom:1px solid var(--fcq-line);margin-bottom:26px;}
.fcq progress {display:block;border:0;border-radius:20px;overflow:hidden;background:#e5edef;}
.fcq progress::-webkit-progress-bar {background:#e5edef;border-radius:20px;}
.fcq progress::-webkit-progress-value {background:var(--fcq-accent);border-radius:20px;}
.fcq progress::-moz-progress-bar {background:var(--fcq-accent);border-radius:20px;}
.fcq .fcq-step h3 {font-size:23px;letter-spacing:-.02em;font-weight:720;}
.fcq .fcq-field {min-width:0;}
.fcq .fcq-choice {transition:background .15s,border-color .15s;}
.fcq .fcq-choice:hover {background:var(--fcq-soft);}
.fcq button:hover:not(:disabled) {filter:brightness(.92);}
.fcq .fcq-hint:empty {display:none;}
.fcq .fcq-success {background:var(--fcq-soft);padding:38px 44px;}
.fcq .fcq-success h3 {color:var(--fcq-accent);}
.fcq>p {margin:20px 24px;}
@media(prefers-reduced-motion:reduce) {.fcq * {transition:none!important;scroll-behavior:auto!important;}}
