/* =====================================================================
 * Muraca — Design system MODULI (Contact Form 7) — valido per tutto il sito.
 * UX: floating label (tecnica :placeholder-shown, come l'esempio di riferimento).
 * UI: card bianche arrotondate, accenti verdi (dall'immagine Muraca).
 *
 * Il box È il controllo (input/select/textarea) stilizzato direttamente.
 * La label, associata via for/id, fa da placeholder al centro quando il campo
 * è vuoto e sale in alto su focus o quando c'è un valore.
 *
 * Markup: <span class="mrf-field">[tag* nome id:nome placeholder " "]<label for="nome">Etichetta *</label></span>
 * (i campi testo devono avere placeholder " " — uno spazio — per far funzionare
 *  il rilevamento del "vuoto"; i select galleggiano sempre.)
 * ===================================================================== */
:root{
  --mrf-card:#ffffff;
  --mrf-radius:16px;
  --mrf-btn-radius:40px;
  --mrf-label:#9a948b;
  --mrf-ink:#2c2a26;
  --mrf-placeholder:#8a857c;
  --mrf-green:#2c5e3e;
  --mrf-green-dark:#234b31;
  --mrf-border:#ece9e1;
  --mrf-shadow:0 2px 10px rgba(56,41,33,.05);
  --mrf-danger:#be2627;
  --mrf-gap:0;
}

.muraca-rfq{max-width:100%}

/* progress a step */
.muraca-rfq .rfq-progress{display:flex;gap:.5rem;list-style:none;margin:0 0 1.4rem;padding:0 0 1rem;
  border-bottom:1px solid var(--mrf-border);counter-reset:rfqstep}
.muraca-rfq .rfq-progress li{flex:1;display:flex;align-items:center;gap:.5rem;font-size: 1rem;
  font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mrf-label);cursor:pointer}
.muraca-rfq .rfq-progress li:hover{color:var(--mrf-ink)}
.muraca-rfq .rfq-progress li::before{counter-increment:rfqstep;content:counter(rfqstep);
  width:24px;height:24px;flex:0 0 24px;border-radius:50%;display:inline-flex;align-items:center;
  justify-content:center;background:#efeae0;color:var(--mrf-label);font-size:.78rem}
.muraca-rfq .rfq-progress li.is-active{color:var(--mrf-ink)}
.muraca-rfq .rfq-progress li.is-active::before{background:var(--mrf-green);color:#fff}

/* step */
.muraca-rfq .rfq-step{display:none;border:0;margin:0;padding:0;min-inline-size:0}
.muraca-rfq .rfq-step.is-active{display:block;animation:rfqfade .25s ease}
@keyframes rfqfade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* campi in griglia a 2 colonne (50%); il riquadro testo/recap va SOTTO i pulsanti.
   row-gap 0: la spaziatura verticale la dà il margin-bottom dei campi (tema). */
.muraca-rfq .rfq-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:1rem;row-gap:0}
.muraca-rfq .rfq-grid > .full{grid-column:1 / -1}
/* step 1: "Avanti" nella cella a destra di Quantità, in basso a destra */
.muraca-rfq .rfq-nav--cell{margin-top:0;justify-content:flex-end;align-items:flex-end}
.muraca-rfq .rfq-aside{margin-top:1.3rem}

/* colonna destra step 1: testo corpo dentro una card (nessun titolo/headline;
   la ul la stila il tema + il pallino verde site-wide da muraca-base.css) */
.muraca-rfq .rfq-intro{background:#fff;border:1px solid var(--mrf-border);border-radius:var(--mrf-radius);
  box-shadow:var(--mrf-shadow);padding:1.7rem 1.8rem;color:var(--mrf-ink);font-size:1rem;line-height:1.6}
.muraca-rfq .rfq-intro p{margin:0 0 1rem}
.muraca-rfq .rfq-intro > :last-child{margin-bottom:0}

/* titoletti dentro i recap */
.muraca-rfq .rfq-summary-title{font-size:1rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mrf-green);margin:0 0 .5rem}
.muraca-rfq .rfq-summary-title + .rfq-summary-list{margin-bottom:1.1rem}
.muraca-rfq [data-summary="full"] .rfq-summary-title:not(:first-child){margin-top:.4rem}

/* navigazione */
.muraca-rfq .rfq-nav{display:flex;justify-content:space-between;gap:.75rem;margin-top:1.3rem;flex-wrap:wrap;align-items:center}
.muraca-rfq .rfq-nav .btn--primary{margin-left:auto}
/* ultimo step: "Indietro" a sinistra, "Invia" a destra (space-between) */
.muraca-rfq .rfq-nav--final .wpcf7-submit{width:auto;display:inline-flex}

/* privacy */
.muraca-rfq .rfq-privacy{display:flex;flex-direction:row;align-items:flex-start;gap:.6rem;font-size:.92rem;color:var(--mrf-ink)}
.muraca-rfq .rfq-privacy a{color:var(--mrf-green);text-decoration:underline;font-size: 1.3em;}
.muraca-rfq .rfq-privacy.rfq-invalid{color:var(--mrf-danger)}
.muraca-rfq .rfq-privacy.rfq-invalid a{color:var(--mrf-danger)}

/* riepilogo */
.muraca-rfq .rfq-hidden{display:none!important}
.muraca-rfq .rfq-summary{background:#fff;border:1px solid var(--mrf-border);border-radius:var(--mrf-radius);
  box-shadow:var(--mrf-shadow);padding:1.1rem 1.4rem;margin-bottom:1.1rem}
.muraca-rfq .rfq-summary-list{display:grid;grid-template-columns:1fr 1fr;gap:0 1.8rem;list-style:none;margin:0;padding:0}
.muraca-rfq .rfq-summary-list li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.5rem 0;border-bottom:1px solid var(--mrf-border)}
.muraca-rfq .rfq-summary-list li span{color:var(--mrf-label);font-size:.86rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;flex:0 0 auto}
.muraca-rfq .rfq-summary-list li strong{color:var(--mrf-ink);text-align:right}

/* stepper quantità (bottoni a sx/dx dell'input) */
.muraca-rfq .rfq-stepper{display:inline-flex!important;flex-wrap:nowrap;align-items:stretch;
  border:1px solid var(--mrf-border);border-radius:var(--mrf-radius);overflow:hidden;background:#fff;
  box-shadow:var(--mrf-shadow);width:fit-content;max-width:100%;line-height:0}
.muraca-rfq .rfq-stepper > .wpcf7-form-control-wrap{display:flex!important;flex:0 0 auto;
  width:auto!important;margin:0!important;padding:0!important}
.muraca-rfq .rfq-stepper .qty-btn{flex:0 0 48px;width:48px!important;min-width:48px;
  display:flex!important;align-items:center;justify-content:center;border:0;border-radius:0;margin:0;
  background:#fff;color:var(--mrf-ink);font-size:1.25rem;line-height:1;cursor:pointer;transition:background .15s}
.muraca-rfq .rfq-stepper .qty-btn:hover{background:#efeae0}
.muraca-rfq .rfq-stepper .qty-btn:disabled{color:var(--mrf-border);background:#fff;cursor:not-allowed}
.muraca-rfq .rfq-stepper input[type=number]{flex:0 0 auto;width:74px!important;min-width:0;text-align:center;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  border-left:1px solid var(--mrf-border)!important;border-right:1px solid var(--mrf-border)!important;
  background:#fff;margin:0;padding:.9rem .3rem;font-size:1rem;-moz-appearance:textfield;appearance:textfield}
.muraca-rfq .rfq-stepper input[type=number]:focus{background:#fff;outline:none}
.muraca-rfq .rfq-stepper input[type=number]::-webkit-outer-spin-button,
.muraca-rfq .rfq-stepper input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

@media(max-width:600px){
  .muraca-rfq .rfq-grid{grid-template-columns:1fr}
  .muraca-rfq .rfq-summary-list{grid-template-columns:1fr}
  .muraca-rfq .rfq-progress li span{display:none}
}


.wpcf7 .wpcf7-form,
form.wpcf7-form{font-family:'Source Sans 3',system-ui,-apple-system,sans-serif;color:var(--mrf-ink)}
.wpcf7-form *{box-sizing:border-box}

/* griglia opzionale */
.wpcf7-form .cf7-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--mrf-gap);margin:0 0 var(--mrf-gap)}
.wpcf7-form .cf7-full-width{grid-column:1 / -1}

.wpcf7-form li {
    font-size: revert;
    line-height: revert;
}

.etheme-contact-form-7 .wpcf7-form p {
  margin-bottom: revert;
}

/* ---------- controllo = box (stile diretto) ---------- */
.wpcf7-form input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]):not([type=file]),
.wpcf7-form select,
.wpcf7-form textarea{
  width:100%;font-family:inherit;font-size:1.05rem;line-height:1.3;color:var(--mrf-ink);
  background:var(--mrf-card);border:1px solid var(--mrf-border);border-radius:var(--mrf-radius);
  box-shadow:var(--mrf-shadow);padding:1.05rem 1.5rem;-webkit-appearance:none;appearance:none;
  outline:none;transition:border-color .15s,box-shadow .15s;
}
.wpcf7-form textarea{min-height:170px;resize:vertical;line-height:1.55}
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus{border-color:var(--mrf-green);box-shadow:0 0 0 3px rgba(44,94,62,.12)}
.wpcf7-form .mrf-field ::placeholder{color:transparent}   /* placeholder-spazio invisibile solo sui floating */

/* select: chevron */
.wpcf7-form select{cursor:pointer;padding-right:2.6rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23382921' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1.4rem center;background-size:15px}
/* email: icona busta */
.wpcf7-form input[type=email]{padding-right:2.8rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%232c5e3e' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpolyline points='3 7 12 13 21 7'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1.4rem center;background-size:20px}

/* ---------- floating label ---------- */
.wpcf7-form .mrf-field{position:relative;display:block}
.wpcf7-form .mrf-field.full{grid-column:1 / -1}
.wpcf7-form .mrf-field .wpcf7-form-control-wrap{display:block;width:100%}
/* spazio in alto per la label salita */
.wpcf7-form .mrf-field input:not([type=checkbox]):not([type=radio]),
.wpcf7-form .mrf-field select,
.wpcf7-form .mrf-field textarea{padding-top:1.6rem;padding-bottom:.55rem;min-height:62px}
.wpcf7-form .mrf-field textarea{min-height:170px}
/* label a riposo (placeholder) */
.wpcf7-form .mrf-field > label{
  position:absolute;left:1.5rem;top:1.15rem;margin:0;font-size:1.05rem;font-weight:400;
  color:var(--mrf-placeholder);pointer-events:none;white-space:nowrap;
  max-width:calc(100% - 3rem);overflow:hidden;text-overflow:ellipsis;
  transform-origin:left top;transition:top .16s ease-out,font-size .16s ease-out,color .16s ease-out;
}
.wpcf7-form .mrf-field > label .req{color:var(--mrf-danger)}
/* label salita: focus, valore presente, o qualsiasi select */
.wpcf7-form .mrf-field:has(input:focus) > label,
.wpcf7-form .mrf-field:has(textarea:focus) > label,
.wpcf7-form .mrf-field:has(input:not(:placeholder-shown)) > label,
.wpcf7-form .mrf-field:has(textarea:not(:placeholder-shown)) > label,
.wpcf7-form .mrf-field:has(select) > label,
.wpcf7-form .mrf-field.float > label{
  top:.5rem;font-size:.82rem;font-weight:600;color:var(--mrf-label);letter-spacing:.02em;
}
.wpcf7-form .mrf-field:has(input:focus) > label,
.wpcf7-form .mrf-field:has(textarea:focus) > label,
.wpcf7-form .mrf-field:has(select:focus) > label{color:var(--mrf-green)}

.wpcf7-form .mrf-field.mrf-field-text {
  padding: 1.05rem 1.5rem;
}

/* label statica (stepper quantità) */
.wpcf7-form .mrf-static{display:flex;flex-direction:column;gap:.45rem}
.wpcf7-form .mrf-static > label{font-size:.92rem;color:var(--mrf-label)}
.wpcf7-form .mrf-static > label .req{color:var(--mrf-danger)}

/* checkbox / acceptance */
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item{margin:0}
.wpcf7-form input[type=checkbox]{width:18px;height:18px;accent-color:var(--mrf-green);margin-right:.45rem}

/* validazione */
.wpcf7-form .mrf-field:has(.wpcf7-not-valid) input,
.wpcf7-form .mrf-field:has(.wpcf7-not-valid) select,
.wpcf7-form .mrf-field:has(.wpcf7-not-valid) textarea,
.wpcf7-form .mrf-field:has(.rfq-invalid) input,
.wpcf7-form .mrf-field:has(.rfq-invalid) select,
.wpcf7-form .wpcf7-not-valid{border-color:var(--mrf-danger)!important;box-shadow:0 0 0 3px rgba(190,38,39,.14)!important}
.wpcf7-form .wpcf7-not-valid-tip{color:var(--mrf-danger);font-size:.78rem;font-weight:600;margin-top:.3rem}
.wpcf7 .wpcf7-response-output{border-radius:var(--mrf-radius);margin:1.2rem 0 0;padding:.9rem 1.2rem;font-size:.92rem}

/* bottoni */
.wpcf7-form .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;
  font-family:inherit;font-weight:600;font-size:.98rem;padding:.95rem 1.8rem;border-radius:var(--mrf-btn-radius);
  border:1px solid transparent;transition:background .15s,border-color .15s,color .15s;line-height:1}
.wpcf7-form .btn--primary{background:var(--mrf-green);color:#fff;border-color:var(--mrf-green)}
.wpcf7-form .btn--primary:hover{background:var(--mrf-green-dark);border-color:var(--mrf-green-dark)}
.wpcf7-form .btn--ghost{background:transparent;color:var(--mrf-green);border-color:var(--mrf-green)}
.wpcf7-form .btn--ghost:hover{background:rgba(44,94,62,.07)}
.wpcf7-form .wpcf7-submit:not(.elementor-button),
.wpcf7-form input[type=submit]:not(.elementor-button){width:100%;display:block;background:var(--mrf-green);color:#fff;border:0;
  border-radius:var(--mrf-btn-radius);padding:1.15rem 1.5rem;font-family:inherit;font-size:1.08rem;
  font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .15s}
.wpcf7-form .wpcf7-submit:not(.elementor-button):hover,
.wpcf7-form input[type=submit]:not(.elementor-button):hover{background:var(--mrf-green-dark)}
.wpcf7-form .wpcf7-spinner{margin:0 0 0 .6rem}

@media(max-width:600px){
  .wpcf7-form .cf7-row{grid-template-columns:1fr}
  .wpcf7-form input:not([type=submit]),
  .wpcf7-form select,
  .wpcf7-form textarea{padding-left:1.2rem;padding-right:1.2rem}
  .wpcf7-form .mrf-field > label{left:1.2rem}
}
