/* =========================
   VARIABILI (Elementor Kit)
   ========================= */
[class*="elementor-kit-"] .ea-wizard {
  --ea-primary:   var(--e-global-color-primary,   #10739C);
  --ea-secondary: var(--e-global-color-secondary, #E66441);
  --ea-accent:    var(--e-global-color-accent,    #088E5C);
  --ea-text:      var(--e-global-color-text,      #111827);

  --ea-font-headings: var(--e-global-typography-primary-font-family, "Playfair Display"), serif;
  --ea-font-body:     var(--e-global-typography-text-font-family, "Lato"), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  --ea-muted:  #64748b;
  --ea-border: #e6e9f0;
  --ea-soft:   #fafbfc;
}

/* =========================
   WRAPPER / TIPOGRAFIA
   ========================= */
.ea-wizard{
  max-width:1120px; margin:40px auto; padding:0 16px;
  color:var(--ea-text); font-family:var(--ea-font-body);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
.ea-title{
  font-family:var(--ea-font-headings);
  font-size:20px; font-weight:500; letter-spacing:.2px;
  margin:10px 0 16px; color:var(--ea-text);
}

/* =========================
   CARD & LAYOUT
   ========================= */
.ea-card{
  background:#fff; border:1px solid #eef2f7; border-radius:16px; box-shadow:none;
}
.ea-card-h{ padding:12px 16px; border-bottom:1px solid #eef2f7; background:linear-gradient(180deg,#fafbfc 0%,#f7f9fc 100%); display:flex; align-items:center; justify-content:space-between; }
.ea-card-b{ padding:16px; }

.ea-row{ display:grid; grid-template-columns:1fr 2fr; gap:24px; }
.ea-colspan-2{ grid-column:span 2; }
@media (max-width:980px){ .ea-row{ grid-template-columns:1fr; } .ea-colspan-2{ grid-column:auto; } }

/* =========================
   STEPPER
   ========================= */
.ea-steps{ list-style:none; margin:0 0 24px; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.ea-step{ display:flex; align-items:center; gap:10px; padding:10px 14px; border:1px solid #eef2f7; border-radius:999px; color:#6b7280; background:#fff; box-shadow:none; transition:border-color .15s, background .15s, color .15s; }
.ea-step-num{ width:32px; height:32px; aspect-ratio:1/1; display:grid; place-items:center; border-radius:50%; border:2px solid currentColor; font-weight:500; font-size:14px; line-height:1; flex:0 0 auto; }
.ea-step-label{ font-weight:500; font-size:14px; color:var(--ea-text); }
.ea-step.is-current{ border-color:var(--ea-primary); background:color-mix(in srgb, var(--ea-primary) 10%, #fff 90%); color:var(--ea-primary); }
.ea-step.is-done{ border-color:color-mix(in srgb, var(--ea-primary) 35%, #fff 65%); background:color-mix(in srgb, var(--ea-primary) 12%, #fff 88%); color:var(--ea-primary); }

@media (max-width:820px){
  .ea-steps{ grid-auto-flow:column; grid-auto-columns:min(320px,88%); overflow-x:auto; scroll-snap-type:x mandatory; gap:10px; padding-bottom:6px; }
  .ea-step{ scroll-snap-align:start; min-width:280px; }
}
@media (max-width:480px){ .ea-step{ padding:10px 14px; } .ea-step-label{ font-size:13px; } }
@media (max-width:420px){ .ea-step-label{ display:none; } }

/* =========================
   PANNI STEP
   ========================= */
.ea-steppane{ display:none; }
.ea-steppane.is-active{ display:block; }
.ea-steppane + .ea-steppane{ margin-top:10px; }

/* =========================
   CAMPI / INPUT
   ========================= */
.ea-field{ display:flex; flex-direction:column; gap:6px;margin-bottom:20px;}
.ea-field label{ font-size:13px; color:var(--ea-muted); font-weight:500; }

.ea-input,
.ea-field input,
.ea-field textarea,
.ea-field select{
  width:100%; border:1px solid var(--ea-border); border-radius:14px;
  padding:11px 12px; font-size:15px; background:#fff; transition:border-color .15s, box-shadow .15s; margin-bottom:0;
}
.ea-input:focus,
.ea-field input:focus,
.ea-field textarea:focus,
.ea-field select:focus{
  border-color:var(--ea-primary);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--ea-primary) 20%, transparent);
  outline:none;
}
::placeholder{ color:#9aa3ad; opacity:1; }

.ea-birthdate-grid{ display:flex; gap:8px; }
.ea-birthdate-grid select{ flex:1; min-width:0; }

/* =========================
   DATEPICKER (Flatpickr)
   ========================= */
.flatpickr-calendar{ border:1px solid var(--ea-border) !important; box-shadow:0 10px 26px rgba(15,23,42,.12) !important; border-radius:14px !important; }
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange{ background:var(--ea-primary) !important; border-color:var(--ea-primary) !important; color:#fff !important; }
.flatpickr-day.today{ border-color:var(--ea-primary) !important; }

/* =========================
   SLOT ORARI
   ========================= */
.ea-slots{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(90px,1fr));
  gap:12px; min-height:120px; padding:10px; border:1px dashed #e8edf5; border-radius:12px; background:#fbfdff;
}
.ea-slots-empty,.ea-slots-loading{ grid-column:1/-1; text-align:center; color:#6b7280; padding:20px 6px; }
.ea-slots .ea-slot{
  all:unset; display:block; width:100%; box-sizing:border-box; text-align:center;
  font:14px/1.2 var(--ea-font-body); background:#fff; color:var(--ea-text);
  border:1px solid var(--ea-border); border-radius:12px; padding:10px 8px; cursor:pointer; transition:background .18s, border-color .18s;
}
.ea-slots .ea-slot.is-selected{ background:var(--ea-primary); border-color:var(--ea-primary); color:#fff; }
.ea-slots .ea-slot.is-busy{ background:#f5f6f8; color:#9aa3ad; border-style:dashed; cursor:not-allowed; }
.ea-slots .ea-slot.is-blocked{ background:#fff8ef; color:#a15a10; border-color:#fdcc95; cursor:not-allowed; }

@media (max-width:820px){ .ea-slots{ grid-template-columns:repeat(auto-fill, minmax(120px,1fr)); } }
@media (max-width:480px){ .ea-slots{ grid-template-columns:repeat(2,1fr); } }

/* =========================
   LEGEND / SUMMARY / BRANDS
   ========================= */
.ea-legend{ display:flex; align-items:center; gap:12px; font-size:12px; color:#7a8797; flex-wrap:wrap; row-gap:6px; }
.ea-dot{ width:10px; height:10px; display:inline-block; border-radius:999px; border:1px solid currentColor; transform:translateY(1px); }
.ea-dot.ea-free{ background:#fff; color:#9ca3af; border-color:#dbe2ea; }
.ea-dot.ea-busy{ background:#f3f4f6; color:#9ca3af; }
.ea-dot.ea-blocked{ background:#fff7ed; color:#b45309; border-color:#fdba74; }

.ea-summary{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px 14px; margin:14px 0; }
.ea-summary span{ color:var(--ea-muted); font-weight:500; }
@media (max-width:500px){ .ea-summary{ grid-template-columns:1fr; } }

.ea-brands{ display:flex; align-items:center; gap:14px; margin:10px 0 6px; opacity:.92; flex-wrap:wrap; row-gap:8px; }
.ea-wizard img{ max-width:100%; height:auto; }

/* =========================
   BOTTONI (coerenti con Elementor)
   ========================= */
.ea-wizard .button{ display:inline-flex !important; align-items:center !important; gap:8px !important; width:auto; justify-content:center;
  border-radius:12px !important; padding:12px 16px !important; font-family:var(--ea-font-body) !important; font-size:15px !important; line-height:1.2 !important; font-weight:500 !important; text-decoration:none !important; box-shadow:none !important; -webkit-text-fill-color:currentColor !important; background-image:none !important;
}
.ea-wizard .button, .ea-wizard .button *{ opacity:1 !important; }

.ea-wizard .button.button-primary,
.ea-wizard .button.button-primary *{ background-color:var(--ea-secondary) !important; border-color:var(--ea-secondary) !important; color:#fff !important; }

.ea-wizard .button:not(.button-primary){ background-color:color-mix(in srgb, var(--ea-primary) 12%, #fff 88%) !important; border-color:var(--ea-primary) !important; color:var(--ea-text) !important; }
.ea-wizard .button:not(.button-primary) *{ color:var(--ea-text) !important; }

.ea-wizard .ea-submit{ border-radius:12px; font-weight:500; letter-spacing:.2px; }
.ea-wizard-nav{ margin-top:30px; }
@media (max-width:500px){ .ea-wizard-nav{ display:grid; grid-template-columns:1fr 1fr; gap:10px; } .ea-wizard .button{ width:100% !important; } }

/* =========================
   RADIO GRANDI (PAGAMENTO)
   ========================= */
.ea-paygrid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:12px; }
@media (max-width:420px){ .ea-paygrid{ grid-template-columns:1fr; } }

.ea-paycard{ display:block; cursor:pointer; }
.ea-paycard input{ position:absolute; opacity:0; pointer-events:none; }
.ea-paycard-box{
  display:grid; grid-template-columns:56px 1fr; align-items:center; gap:12px;
  border:1px solid var(--ea-border); border-radius:14px; background:#fff; padding:12px; transition:border-color .18s, background .18s, transform .06s;
}
.ea-paycard:hover .ea-paycard-box{ transform:translateY(-1px); }
.ea-paycard input:focus-visible ~ .ea-paycard-box{ outline:3px solid color-mix(in srgb, var(--ea-primary) 30%, transparent); outline-offset:2px; }
.ea-paycard input:checked ~ .ea-paycard-box{ border-color:var(--ea-primary); background:color-mix(in srgb, var(--ea-primary) 6%, #fff 94%); }

.ea-paycard-logo{ width:56px; height:56px; display:grid; place-items:center; background:#fff; border:1px solid var(--ea-border); border-radius:12px; }
.ea-paycard-logo img{ max-width:42px; max-height:42px; width:auto; height:auto; object-fit:contain; }
.ea-paycard-meta strong{ display:block; font-weight:500; color:var(--ea-text); }
.ea-paycard-meta span{ display:block; font-size:13px; color:var(--ea-muted); margin-top:2px; }
@media (max-width:420px){ .ea-paycard-box{ grid-template-columns:48px 1fr; } .ea-paycard-logo{ width:48px; height:48px; } .ea-paycard-logo img{ max-width:36px; max-height:36px; } }

/* =========================
   VISIT CARDS (STEP 1)
   ========================= */
.ea-visit-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:14px; }
.ea-visitcard{ display:block; cursor:pointer; user-select:none; }
.ea-visitcard input{ position:absolute; opacity:0; pointer-events:none; }
.ea-visitcard-box{
  height:100%; border:1px solid var(--ea-border); border-radius:16px; background:#fff; padding:16px;
  display:grid; gap:12px; transition:border-color .18s, background .18s, transform .06s;
}
.ea-visitcard:hover .ea-visitcard-box{ border-color:color-mix(in srgb, var(--ea-primary) 25%, #e6e9f0); background:color-mix(in srgb, var(--ea-primary) 4%, #fff 96%); transform:translateY(-1px); }
.ea-visitcard input:checked ~ .ea-visitcard-box{ border-color:var(--ea-primary); background:color-mix(in srgb, var(--ea-primary) 8%, #fff 92%); box-shadow:0 0 0 4px color-mix(in srgb, var(--ea-primary) 16%, transparent); }

.ea-visitcard-h{ display:grid; grid-template-columns:48px 1fr auto; align-items:center; gap:12px; }
.ea-visitcard-icon{ width:48px; height:48px; display:grid; place-items:center; border:1px solid var(--ea-border); border-radius:12px; font-size:22px; background:#fff; }
.ea-visitcard-title strong{ display:block; font-size:16px; color:var(--ea-text); }
.ea-visitcard-title span{ display:block; font-size:13px; color:var(--ea-muted); margin-top:2px; }
.ea-visitcard-price{ font-weight:500; font-size:16px; color:var(--ea-primary); white-space:nowrap; }
.ea-visitcard-feats{ margin:4px 0 0; padding:0 0 0 18px; color:var(--ea-text); }
.ea-visitcard-feats li{ margin:4px 0; font-size:14px; }
@media (max-width:480px){
  .ea-visitcard-h{ grid-template-columns:40px 1fr auto; gap:10px; }
  .ea-visitcard-icon{ width:40px; height:40px; font-size:18px; }
  .ea-visitcard-price{ font-size:15px; }
}

/* =========================
   FALLBACK COLOR-MIX
   ========================= */
@supports not (color: color-mix(in srgb, #000 50%, #fff 50%)){
  .ea-step.is-current{ background:#f2f7ff !important; }
  .ea-step.is-done{ background:#f3f8ff !important; }
  .ea-paycard input:checked ~ .ea-paycard-box{ background:#f6faff !important; }
  .ea-slots .ea-slot.is-selected{ background:var(--ea-primary) !important; }
}

/* ============ PATCH "più elegante" ============ */

/* Tipografia base */
.ea-wizard { letter-spacing: .1px; }
.ea-title { font-weight: 500; margin: 6px 0 18px; }

/* Card: aria interna maggiore */
.ea-card { border-radius: 14px; }
.ea-card-h { padding: 14px 16px; font-weight: 500; }
.ea-card-b { padding: 18px; }

/* Paycards: testo più leggero e spaziatura migliore */
.ea-paycard-meta strong { font-weight: 500; }
.ea-paycard-meta span { font-size: 13px; color: var(--ea-muted); }
.ea-microlist { margin-top: 6px; padding-left: 18px; font-size: 12.5px; color: #737b86; }
.ea-microlist li { margin: 3px 0; }

/* Bordi/hover più sobri */
.ea-paycard:hover .ea-paycard-box { transform: translateY(-1px); }
.ea-paycard input:checked ~ .ea-paycard-box { box-shadow: 0 0 0 3px color-mix(in srgb, var(--ea-primary) 10%, transparent); }

/* Riga sicurezza + box bonifico: tipografia e spazi */
.ea-secureline { margin-top: 12px; padding: 10px 12px; font-size: 13px; }
.ea-bankbox { margin-top: 12px; }
.ea-bankbox-b p { margin: 0 0 6px; line-height: 1.5; }
.ea-bankbox-b small { color: var(--ea-muted); }

/* Riepilogo “ricevuta”: meno bold e più aria */
.ea-receipt li { padding: 8px 0; font-size: 15px; }
.ea-receipt li span { font-weight: 500; color: var(--ea-muted); }
.ea-total { font-size: 17px; font-weight: 500; }
.ea-receipt-sep { margin: 6px 0; }

/* Spazi verticali generali nello step */
.ea-check { margin-top: 10px; }
.ea-minihelp { margin-top: 12px; margin-bottom:20px; line-height: 1.45; }

/* Bottoni: meno “peso” visivo e più respiro */
.ea-wizard .button { font-weight: 500 !important; padding: 12px 18px !important; }
.ea-wizard .ea-submit { margin-top: 8px; }

/* Stepper: testo meno pesante e migliore leggibilità */
.ea-step-label { font-weight: 500; }
.ea-step { color: #7a8594; }
.ea-step.is-current,
.ea-step.is-done { color: var(--ea-primary); }

/* Liste puntate di WordPress/tema che si infilano nel layout */
.ea-card-b ul { margin: 0 0 8px 18px; }
.ea-card-b p  { margin: 0 0 10px; }

/* Responsive: più aria su mobile */
@media (max-width: 768px){
  .ea-card-b { padding: 16px; }
  .ea-wizard .button { padding: 12px 14px !important; }
  .ea-receipt li { padding: 7px 0; }
}
/* === Grid 2 colonne per i campi === */
.ea-grid-2{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  column-gap:16px;
  row-gap:14px;
}
.ea-grid-tight{ column-gap:14px; row-gap:12px; }

/* Forza i campi a metà riga dentro la grid */
.ea-grid-2 .ea-field{ margin-bottom:0; }

/* Span su 2 colonne quando serve (indirizzo, note) */
.ea-span-2{ grid-column:1 / -1; }

/* Responsivo: su tablet/mobile si torna a 1 colonna */
@media (max-width: 820px){
  .ea-grid-2{ grid-template-columns:1fr; }
  .ea-span-2{ grid-column:auto; }
}
