/**
 * Studio Caputo Vellotti — CSS del multiform WhatsApp/Email.
 * PORT dal baseline v1.9 components.css (form-actions, stati errore, success
 * card, banner WhatsApp) mappato sui token cv del tema (cv-tokens.css).
 * Scope: .wpa-booking = il wrapper .cv-form-body del form (inc/cv-partials.php).
 */

.wpa-booking {
  --wpa-err-border: var(--danger, #c4453a);
  --wpa-err-text:   var(--danger, #c4453a);
  --wpa-err-bg:     rgba(196, 90, 90, .10);
  --wpa-err-ring:   rgba(196, 90, 90, .18);
  --wpa-booking-submit:      var(--c-primary);
  --wpa-booking-submit-deep: var(--c-primary-deep, var(--c-primary));
  --wpa-frame:       var(--c-primary);
  --wpa-frame-glow:  rgba(20, 40, 60, .25);
  --wpa-frame-ring:  var(--c-primary-soft, rgba(0, 0, 0, .06));
  --wpa-frame-width: 2px;
}

/* -- Intro strip: doppio canale WhatsApp/Email -- */
.cv-form-intro {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin: 0 0 18px; padding: 12px 16px;
  border-radius: var(--r-lg, 14px);
  background: var(--c-primary-soft, rgba(0, 0, 0, .05));
  color: var(--ink); font-size: 0.9375rem; line-height: 1.4;
}
.cv-form-intro .cv-form-intro-ico { display: inline-flex; }
.cv-form-intro i.fa-whatsapp { color: #25D366; font-size: 22px; }
.cv-form-intro i.fa-envelope { color: var(--c-primary); font-size: 19px; }

/* -- I DUE BOTTONI (WhatsApp verde semantico + Email = colore submit), impilati -- */
.wpa-booking .wpa-form-actions {
  display: grid; grid-template-columns: 1fr; gap: 12px;
  position: relative; align-items: stretch; margin-top: 14px;
}
.wpa-booking .wpa-form-actions > .wpcf7-spinner { position: absolute; left: 50%; bottom: -34px; transform: translateX(-50%); margin: 0; }
.wpa-booking .wpa-btn-book,
.wpa-booking .wpa-btn-booking {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 58px; padding: 12px 16px; border-radius: var(--r-pill, 999px);
  font-family: inherit; font-size: 1.0625rem; font-weight: 700; line-height: 1.1;
  cursor: pointer; text-decoration: none;
  transition: background-color .18s, color .18s, border-color .18s, box-shadow .18s;
}
.wpa-booking .wpa-btn-book i,
.wpa-booking .wpa-btn-booking i { font-size: 21px; }
.wpa-booking .wpa-btn-book[data-wpa-form-wa] { background: #25D366; color: #fff; border: 2px solid #25D366; }
.wpa-booking .wpa-btn-booking { background: var(--wpa-booking-submit); color: #fff; border: 2px solid var(--wpa-booking-submit); }
@media (hover: hover) {
  .wpa-booking .wpa-btn-book[data-wpa-form-wa]:hover { background: #fff; color: #128C40; border-color: #25D366; box-shadow: 0 14px 28px -10px rgba(0, 0, 0, .35); }
  .wpa-booking .wpa-btn-booking:hover { background: #fff; color: var(--wpa-booking-submit-deep); border-color: var(--wpa-booking-submit); }
}
.wpa-booking .wpa-btn-book:disabled,
.wpa-booking .wpa-btn-booking:disabled { opacity: .65; cursor: default; }

/* -- Validazione: campo invalido e box riassuntivo condividono i token --wpa-err-* --
      Percorso Email (CF7 aggiunge .wpcf7-not-valid) E percorso WhatsApp
      (cv-booking.js aggiunge .wpcf7-not-valid ai campi + .wpa-wa-error al box). */
.wpa-booking .cv-input.wpcf7-not-valid,
.wpa-booking .cv-textarea.wpcf7-not-valid,
.wpa-booking select.cv-select.wpcf7-not-valid { border-color: var(--wpa-err-border); background: var(--wpa-err-bg); color: var(--wpa-err-text); box-shadow: none; }
.wpa-booking .cv-input.wpcf7-not-valid:focus { box-shadow: 0 0 0 3px var(--wpa-err-ring); }
.wpa-booking .cv-input.wpcf7-not-valid::placeholder { color: var(--wpa-err-text); opacity: .7; }
.wpa-booking .wpcf7-not-valid-tip { color: var(--wpa-err-text); font-size: 13.5px; font-weight: 600; margin-top: 6px; display: block; }
.wpa-booking .wpcf7-form-control-wrap { display: block; }
.wpa-booking .wpcf7-response-output { margin: 18px 0 0; padding: 12px 16px; border-radius: var(--r-sm, 10px); font-size: 14.5px; font-weight: 600; line-height: 1.45; border: 1.5px solid var(--line, #ddd); }
.wpa-booking form.invalid .wpcf7-response-output,
.wpa-booking form.unaccepted .wpcf7-response-output,
.wpa-booking form.failed .wpcf7-response-output,
.wpa-booking form.spam .wpcf7-response-output,
.wpa-booking .wpcf7-response-output.wpa-wa-error { border-color: var(--wpa-err-border); color: var(--wpa-err-text); background: var(--wpa-err-bg); }
/* box del percorso WhatsApp: il form resta in stato .init → display:block per
   scavalcare CF7 styles.css (.wpcf7 form.init .wpcf7-response-output{display:none}). */
.wpa-booking .wpcf7-response-output.wpa-wa-error { display: block; }

/* -- Success card al posto del form (wpcf7mailsent) -- */
.wpa-booking.is-sent .wpcf7 { display: none; }
.wpa-booking form.sent .wpcf7-response-output { display: none; }
.wpa-success-card {
  background: var(--surface, #fff); border: var(--wpa-frame-width) solid var(--wpa-frame);
  border-radius: var(--r-xl, 18px); box-shadow: 0 14px 34px -16px var(--wpa-frame-glow);
  padding: 44px 34px 38px; text-align: center; outline: none;
}
.wpa-success-ico {
  width: 72px; height: 72px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--wpa-frame); color: #fff; font-size: 30px;
  box-shadow: 0 10px 24px -10px var(--wpa-frame-glow); margin: 0 auto 18px;
}
.wpa-success-title { font-family: var(--font-display); font-size: 30px; line-height: 1.2; color: var(--ink); margin: 0 0 10px; font-weight: 500; }
.wpa-success-body { font-size: 17.5px; line-height: 1.5; color: var(--ink); margin: 0 0 28px; }
.wpa-success-actions { display: grid; gap: 12px; }
.wpa-success-wa,
.wpa-success-reset {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 54px; padding: 12px 20px; border-radius: var(--r-pill, 999px);
  font-family: inherit; font-size: 1.0625rem; font-weight: 700; cursor: pointer;
  transition: background-color .18s, color .18s, border-color .18s;
}
.wpa-success-wa { background: #25D366; color: #fff; border: 2px solid #25D366; }
.wpa-success-wa .wpa-success-wa-ico i { font-size: 24px; }
.wpa-success-reset { background: var(--wpa-booking-submit); color: #fff; border: 2px solid var(--wpa-booking-submit); }
@media (hover: hover) {
  .wpa-success-wa:hover { background: #fff; color: #128C40; border-color: #25D366; }
  .wpa-success-reset:hover { background: #fff; color: var(--wpa-booking-submit-deep); border-color: var(--wpa-booking-submit); }
}
.wpa-success-wa:focus-visible,
.wpa-success-reset:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.wpa-success-wa:disabled { opacity: .65; cursor: default; }

/* -- Banner di stato percorso WhatsApp (sopra la riga dei bottoni) -- */
.wpa-wa-banner {
  margin: 18px 0 0; padding: 14px 18px; border-radius: var(--r-sm, 10px);
  border: 2px solid var(--wpa-frame); background: var(--wpa-frame-ring);
  color: var(--ink); font-size: 15.5px; font-weight: 700; line-height: 1.45;
}
.wpa-wa-banner[hidden] { display: none; }

/* -- Credit strip d'agenzia (footer scuro var(--ink)) -- */
.cv-credit-strip { border-top: 1px solid rgba(255,255,255,0.12); padding: 20px 0 26px; font-size: 0.8125rem; line-height: 1.5; }
.cv-credit-grid { display: flex; flex-wrap: wrap; gap: 20px 40px; align-items: center; justify-content: space-between; }
.cv-credit-block, .cv-credit-ews { display: flex; align-items: center; gap: 14px; }
.cv-credit-ava img { display: block; width: 68px; height: 68px; border-radius: 50%; }
.cv-credit-ews-logo img { display: block; height: 44px; width: auto; }
.cv-credit-name { font-weight: 700; color: rgba(255,255,255,0.9); }
.cv-credit-strip { color: rgba(255,255,255,0.7); }
.cv-credit-strip a { color: rgba(255,255,255,0.85); text-decoration: none; }
.cv-credit-strip a:hover { color: #fff; text-decoration: underline; }
