/* =========================================================================
   AirAffitti Valutatore Pro — REDESIGN premium (solo UI/UX).
   Nessuna modifica a logica/campi/AJAX. Override sopra widget.css.
   FIX leggibilità: pannello OPACO, colori testo espliciti, blur solo overlay.
   I token sono definiti su #aa-val (dialog) così ereditano a card, close e
   widget (le custom properties NON risalgono al genitore).
   ========================================================================= */

#aa-val{
  --v-panel:#FCFAF6;         /* sfondo pannello (opaco) */
  --v-title:#11151B;         /* titolo principale */
  --v-sec:#171B22;           /* titoli sezione / testo input */
  --v-label:#4F5865;         /* label */
  --v-text2:#69717D;         /* testi secondari */
  --v-placeholder:#98A0AC;   /* placeholder */
  --v-input-bg:rgba(255,255,255,.88);      /* sfondo input (leggermente traslucido) */
  --v-beige:#C9B18A; --v-beige-scuro:#9c8352; --v-beige-chiaro:#EDE5D5;
  --v-btn-text:#17130B;      /* testo su beige */
  --v-linea:rgba(30,35,45,.16);
}
.aavp-widget{
  font-family:"Montserrat",system-ui,-apple-system,sans-serif; color:var(--v-sec);
  /* rimappa l'accento del plugin (coral #e85a4f / #ff8a65) sul beige AirAffitti:
     corregge alla radice pin Città, icone risultato, checkbox, grafico, ecc. */
  --aavp-accent:#9c8352 !important; --aavp-accent-2:#C9B18A !important;
}
/* rispetta SEMPRE l'attributo hidden usato dal plugin per mostrare il risultato */
#aa-val [hidden], .aavp-widget [hidden]{ display:none !important; }

/* ---------- Overlay (blur SOLO qui, dietro al popup) ------------------- */
#aa-val::backdrop{
  background:rgba(8,10,14,.62);
  backdrop-filter:blur(12px) saturate(105%);
  -webkit-backdrop-filter:blur(12px) saturate(105%);
}

/* ---------- Dialog: largo quanto il contenuto (il default .aa-modal è 480px, stretto) e centrato */
#aa-val.aa-modal{ width:-moz-fit-content !important; width:fit-content !important; max-width:calc(100vw - 40px) !important; }

/* ---------- Pannello: OPACO, nessuna trasparenza sul contenuto -------- */
#aa-val .aa-modal__card{
  max-width:800px; width:calc(100vw - 40px); max-height:90vh;
  overflow-y:auto; overflow-x:hidden; -webkit-overflow-scrolling:touch;
  padding:44px 48px; border-radius:30px;
  background:rgba(252,250,246,.94) !important;   /* UNICA superficie: frosted glass leggero, leggibile */
  opacity:1 !important;                          /* mai opacity sul wrapper */
  backdrop-filter:blur(20px) saturate(120%) !important; -webkit-backdrop-filter:blur(20px) saturate(120%) !important;
  filter:none !important;
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 32px 90px rgba(10,14,20,.22);
}
#aa-val .aa-modal__card::-webkit-scrollbar{ width:9px; }
#aa-val .aa-modal__card::-webkit-scrollbar-thumb{ background:rgba(156,131,82,.4); border-radius:5px; }
#aa-val .aa-modal__card::-webkit-scrollbar-track{ background:transparent; }
/* il widget/plugin wrapper e i blocchi interni NON devono essere una seconda superficie */
#aa-val .aa-valutatore-popup, #aa-val .aavp-widget, #aa-val .aavp-wizard, #aa-val .aavp-step{
  background:transparent !important; border:0 !important; border-radius:0 !important;
  box-shadow:none !important; padding:0 !important; margin:0 !important;
}
#aa-val .aavp-widget::before, #aa-val .aavp-widget::after,
#aa-val .aa-valutatore-popup::before, #aa-val .aa-valutatore-popup::after{ display:none !important; }

/* ---------- Chiusura --------------------------------------------------- */
#aa-val .aa-modal__x{
  position:absolute; top:20px; right:20px; width:42px; height:42px; min-width:42px;
  border-radius:50%; background:rgba(255,255,255,.72); border:1px solid rgba(20,24,30,.12);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--v-sec); z-index:6;
  box-shadow:0 2px 6px rgba(15,20,30,.06);
  transition:transform .25s cubic-bezier(.16,1,.3,1), background .25s ease, border-color .25s ease;
}
#aa-val .aa-modal__x:hover{ background:var(--v-beige-chiaro); border-color:var(--v-beige); transform:rotate(90deg); }
#aa-val .aa-modal__x:focus-visible{ outline:2px solid var(--v-beige-scuro); outline-offset:2px; }
#aa-val .aa-modal__x svg{ width:18px; height:18px; }

/* ---------- Hero / header --------------------------------------------- */
.aavp-hero{ display:flex; flex-direction:column; align-items:flex-start; gap:.3rem; margin-bottom:1.15rem; max-width:40rem; }
.aavp-hero__badge{
  width:46px; height:46px; border-radius:14px; margin-bottom:.3rem;
  background:linear-gradient(140deg,#D8C39B,#C0A063); color:#17130B;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 18px -10px rgba(156,131,82,.7);
}
.aavp-hero__badge svg{ width:22px; height:22px; }
.aavp-widget .aavp-widget__title{ margin:0; font-size:2.15rem; font-weight:800; line-height:1.12; letter-spacing:-.015em; color:var(--v-title); }
.aavp-widget .aavp-widget__subtitle{ margin:.25rem 0 0; font-size:1.12rem; line-height:1.5; color:var(--v-label); max-width:40rem; }

/* ---------- Stepper ---------------------------------------------------- */
.aavp-progress{ position:relative; margin:1rem 0 1.6rem; }
.aavp-progress__steps{ list-style:none; margin:0; padding:0; display:flex; justify-content:space-between; position:relative; z-index:1; }
.aavp-progress__step{ display:flex; flex-direction:column; align-items:center; gap:.45rem; flex:1 1 0; min-width:0; position:relative; }
.aavp-progress__dot{
  width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.9); border:2px solid var(--v-linea);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.92rem;
  color:var(--v-text2); position:relative;
  transition:background .28s cubic-bezier(.16,1,.3,1), color .28s ease, border-color .28s ease, transform .28s ease, box-shadow .28s ease;
}
.aavp-progress__label{ font-size:.76rem; font-weight:700; letter-spacing:.01em; color:var(--v-label); text-align:center; transition:color .28s ease; line-height:1.2; }
.aavp-progress__step--active .aavp-progress__dot{ background:var(--v-beige); border-color:var(--v-beige); color:#17130B; transform:scale(1.06); box-shadow:0 8px 18px -6px rgba(156,131,82,.6); }
.aavp-progress__step--active .aavp-progress__label{ color:var(--v-title); }
.aavp-progress__step--done .aavp-progress__dot{ background:var(--v-beige-chiaro); border-color:var(--v-beige); color:var(--v-beige-scuro); }
.aavp-progress__step--done .aavp-progress__number{ visibility:hidden; }
.aavp-progress__step--done .aavp-progress__dot::after{
  content:""; position:absolute; width:11px; height:6px;
  border-left:2.5px solid var(--v-beige-scuro); border-bottom:2.5px solid var(--v-beige-scuro);
  transform:rotate(-45deg) translateY(-1px);
}
/* track allineato ai centri di dot1 e dot4 (4 colonne flex => da 12.5% a 87.5% = width 75%) */
.aavp-progress__track{ position:absolute; left:12.5% !important; right:auto !important; width:75% !important; top:18px; height:2px; background:var(--v-beige-chiaro); border-radius:2px; z-index:0; }
.aavp-progress__fill{ height:100%; background:linear-gradient(90deg,var(--v-beige-scuro),var(--v-beige)); border-radius:2px; transition:width .3s cubic-bezier(.16,1,.3,1); }

/* ---------- Step + titolo --------------------------------------------- */
.aavp-step{ display:none; }
.aavp-step--active{ display:block; }
.aavp-step--entering{ animation:aavpStepIn .3s cubic-bezier(.16,1,.3,1); }
@keyframes aavpStepIn{ from{ opacity:0; transform:translateX(10px); } to{ opacity:1; transform:none; } }
.aavp-step__title{ display:flex; align-items:center; gap:.6rem; margin:0 0 1.1rem; font-size:1.82rem; font-weight:800; line-height:1.12; letter-spacing:-.01em; color:var(--v-sec); }
.aavp-step__title svg, .aavp-step__title .aavp-icon{ width:24px; height:24px; flex:none; color:var(--v-beige-scuro); }

/* ---------- Campi (grid + input) -------------------------------------- */
.aavp-wizard{ display:block; }
.aavp-field{ display:flex; flex-direction:column; gap:.42rem; margin-bottom:1.1rem; }
.aavp-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:1.1rem; }
.aavp-field-row--3{ grid-template-columns:repeat(3,1fr); }
.aavp-field-row .aavp-field{ margin-bottom:0; }
.aavp-field__label{ font-size:.85rem; font-weight:700; color:var(--v-label); display:inline-flex; gap:.15rem; }
.aavp-field__required{ color:var(--v-beige-scuro); font-weight:800; }
.aavp-field__control{ position:relative; display:flex; align-items:center; }
.aavp-field__icon{ position:absolute; left:16px; display:flex; color:var(--v-beige-scuro); pointer-events:none; z-index:1; }
/* uniforma il colore di TUTTE le icone campo (il pin "Città" era coral) */
.aavp-widget .aavp-field__icon, .aavp-widget .aavp-field__icon svg, .aavp-widget .aavp-field__icon .aavp-icon{ color:var(--v-beige-scuro) !important; stroke:var(--v-beige-scuro) !important; }
.aavp-widget .aavp-field__control .aavp-input{ padding-left:46px !important; }

.aavp-widget .aavp-input,
.aavp-widget input.aavp-input,
.aavp-widget select,
.aavp-widget textarea{
  width:100%; min-height:56px; border-radius:15px; background:var(--v-input-bg);
  border:1px solid rgba(20,24,30,.14); padding:16px 18px; font-size:16px; font-family:inherit;
  color:var(--v-sec); box-shadow:0 4px 14px rgba(20,24,30,.035);
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.aavp-widget textarea{ min-height:112px; resize:vertical; line-height:1.5; border-radius:16px; }
.aavp-widget .aavp-input::placeholder, .aavp-widget textarea::placeholder{ color:var(--v-placeholder); opacity:1; }
.aavp-widget .aavp-input:hover, .aavp-widget select:hover, .aavp-widget textarea:hover{ border-color:rgba(30,35,45,.28); }
.aavp-widget .aavp-input:focus, .aavp-widget select:focus, .aavp-widget textarea:focus,
.aa-valutatore-popup .aavp-input:focus, .aa-valutatore-popup select:focus, .aa-valutatore-popup textarea:focus,
.aavp-widget .aavp-input:focus-visible, .aa-valutatore-popup .aavp-input:focus-visible{
  outline:none !important; border-color:#B79A68 !important; box-shadow:0 0 0 4px rgba(201,177,138,.22) !important;
}
/* input number: niente spinner nativo */
.aavp-widget .aavp-input[type=number]{ -moz-appearance:textfield; appearance:textfield; }
.aavp-widget .aavp-input[type=number]::-webkit-outer-spin-button,
.aavp-widget .aavp-input[type=number]::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
/* select: freccia coerente disegnata con gradienti */
.aavp-widget select{
  appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:44px;
  background-image:linear-gradient(45deg,transparent 50%,var(--v-beige-scuro) 50%),linear-gradient(135deg,var(--v-beige-scuro) 50%,transparent 50%);
  background-position:calc(100% - 22px) 24px,calc(100% - 16px) 24px;
  background-size:6px 6px,6px 6px; background-repeat:no-repeat;
}
/* error */
.aavp-widget .aavp-field--invalid .aavp-input, .aavp-widget .aavp-field--invalid select, .aavp-widget .aavp-field--invalid textarea{
  border-color:#d3564f; background:#fdf6f5;
}
.aavp-widget .aavp-field--invalid .aavp-input:focus{ box-shadow:0 0 0 4px rgba(211,86,79,.16); }
.aavp-field__error{ font-size:.78rem; color:#bd413a; min-height:1.1em; line-height:1.3; font-weight:600; }
.aavp-field--invalid .aavp-field__error::before{ content:"! "; font-weight:800; }

/* consenso / checkbox */
.aavp-consent{ flex-direction:row; align-items:flex-start; gap:.7rem; }
.aavp-consent input[type=checkbox]{ width:22px; height:22px; accent-color:var(--v-beige-scuro); margin-top:1px; flex:none; cursor:pointer; }
.aavp-consent label{ font-size:.85rem; line-height:1.5; color:var(--v-text2); }

/* amenity / selectable cards */
.aavp-amenity{
  display:inline-flex; align-items:center; gap:.5rem; padding:.7em 1em; margin:0;
  border:1px solid var(--v-linea); border-radius:12px; cursor:pointer; font-size:.88rem;
  background:#fff; color:var(--v-sec);
  transition:border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.aavp-amenity:hover{ border-color:var(--v-beige); }
.aavp-amenity:focus-within{ box-shadow:0 0 0 4px rgba(201,177,138,.18); border-color:var(--v-beige); }
.aavp-amenity--checked{ background:var(--v-beige-chiaro); border-color:var(--v-beige); font-weight:700; color:var(--v-title); }

/* ---------- Azioni (avanti / indietro) -------------------------------- */
.aavp-actions{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  margin-top:1.8rem; padding-top:1.5rem; border-top:1px solid var(--v-linea);
}
.aavp-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:54px; padding:14px 28px; border-radius:16px; font-size:.98rem; font-weight:800;
  font-family:inherit; cursor:pointer; border:1px solid transparent;
  transition:transform .22s cubic-bezier(.16,1,.3,1), box-shadow .22s ease, background .22s ease, border-color .22s ease;
}
.aavp-btn--primary{ background:linear-gradient(135deg,#D8C39B,#C0A063); color:var(--v-btn-text); box-shadow:0 8px 18px -10px rgba(156,131,82,.6); }
.aavp-btn--primary:hover{ transform:translateY(-2px); box-shadow:0 14px 26px -12px rgba(156,131,82,.72); }
.aavp-btn--secondary{ background:#fff; border-color:var(--v-linea); color:var(--v-sec); }
.aavp-btn--secondary:hover{ border-color:var(--v-beige); background:var(--v-panel); transform:translateY(-1px); }
.aavp-btn svg{ transition:transform .22s ease; }
.aavp-btn--primary:hover .aavp-btn__icon--right svg{ transform:translateX(3px); }
.aavp-btn--secondary:hover .aavp-btn__icon--left svg{ transform:translateX(-3px); }
.aavp-btn:focus-visible{ outline:2px solid var(--v-beige-scuro); outline-offset:3px; }
.aavp-btn[hidden]{ display:none; }
.aavp-btn:disabled{ opacity:.6; cursor:default; transform:none; }
.aavp-btn--primary:disabled{ position:relative; color:transparent; opacity:1; }
.aavp-btn--primary:disabled .aavp-btn__content{ visibility:hidden; }
.aavp-btn--primary:disabled::after{
  content:""; position:absolute; width:20px; height:20px; border-radius:50%;
  border:2.5px solid rgba(23,19,11,.3); border-top-color:var(--v-btn-text);
  animation:aavpSpin .7s linear infinite;
}
@keyframes aavpSpin{ to{ transform:rotate(360deg); } }

/* banner errore */
.aavp-error-banner{ background:#fdf3f2; border:1px solid #f0c9c5; color:#a5352f; border-radius:12px; padding:.9rem 1.1rem; font-size:.88rem; line-height:1.45; font-weight:600; margin-bottom:1.1rem; }
.aavp-error-banner[hidden]{ display:none; }

/* ---------- RISULTATO -------------------------------------------------- */
.aavp-result__header{ text-align:center; margin-bottom:1.5rem; }
.aavp-result__badge{ display:inline-block; background:var(--v-beige-chiaro); color:var(--v-beige-scuro); font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; padding:.42em 1.05em; border-radius:999px; margin-bottom:.7rem; }
.aavp-result__title{ margin:0; font-size:1.7rem; font-weight:800; line-height:1.15; color:var(--v-title); }
.aavp-result__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:1.4rem 0; }
.aavp-result__card{
  background:#fff; border:1px solid var(--v-linea); border-radius:18px;
  padding:1.3rem 1rem; text-align:center; display:flex; flex-direction:column; align-items:center; gap:.4rem;
}
.aavp-result__card--highlight{ background:#14181D; border-color:#14181D; }
.aavp-result__card--highlight .aavp-result__card-value{ color:var(--v-beige); }
.aavp-result__card--highlight .aavp-result__card-label{ color:rgba(255,255,255,.75); }
.aavp-result__card--highlight .aavp-result__card-icon{ color:var(--v-beige); }
.aavp-result__card-icon{ color:var(--v-beige-scuro); }
.aavp-result__card-icon svg{ width:22px; height:22px; }
.aavp-result__card-value{ font-size:1.8rem; font-weight:800; letter-spacing:-.02em; color:var(--v-title); line-height:1.05; }
.aavp-result__card-label{ font-size:.76rem; color:var(--v-text2); line-height:1.3; }

.aavp-result__chart, .aavp-result__quality, .aavp-result__recommendations{
  background:#fff; border:1px solid var(--v-linea); border-radius:18px; padding:1.4rem 1.5rem; margin:1.1rem 0;
}
.aavp-result__chart-title, .aavp-result__quality-label{ font-size:.9rem; font-weight:800; color:var(--v-title); margin-bottom:1rem; }
.aavp-result__bar-row{ display:grid; grid-template-columns:96px 1fr auto; align-items:center; gap:.9rem; margin-bottom:.85rem; }
.aavp-result__bar-row:last-child{ margin-bottom:0; }
.aavp-result__bar-label{ font-size:.8rem; color:var(--v-text2); }
.aavp-result__bar-track{ height:10px; background:var(--v-beige-chiaro); border-radius:5px; overflow:hidden; }
.aavp-result__bar-fill{ height:100%; background:linear-gradient(90deg,var(--v-beige-scuro),var(--v-beige)); border-radius:5px; transition:width .8s cubic-bezier(.16,1,.3,1); }
.aavp-result__bar-value{ font-size:.84rem; font-weight:800; color:var(--v-title); white-space:nowrap; }

.aavp-result__score-row{ display:flex; align-items:center; gap:1.3rem; flex-wrap:wrap; }
.aavp-result__score-ring{ width:98px; height:98px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; padding:7px; background:var(--v-beige-chiaro); }
.aavp-result__score-inner{ width:100%; height:100%; border-radius:50%; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.aavp-result__score-value{ font-size:1.7rem; font-weight:800; color:var(--v-title); line-height:1; }
.aavp-result__score-max{ font-size:.72rem; color:var(--v-text2); }
.aavp-result__quality-track{ height:8px; background:var(--v-beige-chiaro); border-radius:4px; overflow:hidden; margin-top:.5rem; }
.aavp-result__quality-fill{ height:100%; background:linear-gradient(90deg,var(--v-beige-scuro),var(--v-beige)); border-radius:4px; transition:width .8s cubic-bezier(.16,1,.3,1); }
.aavp-result__recommendation{ display:flex; gap:.7rem; align-items:flex-start; padding:.7rem 0; border-bottom:1px solid var(--v-linea); font-size:.9rem; line-height:1.5; color:var(--v-text2); }
.aavp-result__recommendation:last-child{ border-bottom:0; padding-bottom:0; }
.aavp-result__recommendation-icon{ color:var(--v-beige-scuro); flex:none; margin-top:2px; }
.aavp-result__recommendation-icon svg{ width:18px; height:18px; }
.aavp-result__cta{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:54px; padding:15px 26px; border-radius:15px; font-weight:800; font-size:.95rem;
  text-decoration:none; cursor:pointer; border:1px solid transparent;
  background:linear-gradient(135deg,#D8C39B,#C0A063); color:var(--v-btn-text);
  box-shadow:0 8px 18px -10px rgba(156,131,82,.6);
  transition:transform .22s ease, box-shadow .22s ease;
}
.aavp-result__cta:hover{ transform:translateY(-2px); box-shadow:0 14px 26px -12px rgba(156,131,82,.72); }

/* ---------- Tablet ----------------------------------------------------- */
@media(max-width:1024px){
  #aa-val .aa-modal__card{ max-width:calc(100vw - 48px); padding:36px; border-radius:26px; }
}
/* ---------- Smartphone ------------------------------------------------- */
@media(max-width:600px){
  #aa-val.aa-modal{ max-width:calc(100vw - 12px) !important; }
  #aa-val .aa-modal__card{
    width:calc(100vw - 12px); max-width:none; max-height:calc(100dvh - 12px);
    margin:6px auto; padding:22px 16px; border-radius:22px;
  }
  #aa-val .aa-modal__x{ top:14px; right:14px; position:sticky; float:right; margin:-6px -6px 0 0; }
  .aavp-widget .aavp-widget__title{ font-size:1.7rem; }
  .aavp-widget .aavp-widget__subtitle{ font-size:1rem; }
  .aavp-step__title{ font-size:1.5rem; }
  .aavp-field-row, .aavp-field-row--3{ grid-template-columns:1fr; gap:16px; }
  .aavp-result__grid{ grid-template-columns:1fr; }
  .aavp-result__bar-row{ grid-template-columns:78px 1fr auto; gap:.6rem; }
  /* stepper mobile: pallini compatti, solo label attiva */
  .aavp-progress{ margin-bottom:2.8rem; }
  .aavp-progress__dot{ width:34px; height:34px; font-size:.85rem; }
  .aavp-progress__track{ top:17px; }
  .aavp-progress__label{ display:none; }
  .aavp-progress__step--active .aavp-progress__label{
    display:block; position:absolute; top:42px; left:50%; transform:translateX(-50%);
    white-space:nowrap; font-size:.82rem; color:var(--v-title);
  }
  .aavp-actions{ flex-direction:column-reverse; gap:.6rem; }
  .aavp-actions .aavp-btn{ width:100%; }
}

/* ---------- Reduced motion -------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  .aavp-step--entering{ animation:none; }
  .aavp-btn, .aavp-progress__dot, .aavp-progress__fill, .aavp-result__bar-fill,
  .aavp-result__quality-fill, #aa-val .aa-modal__x, .aavp-input{ transition:none; }
  .aavp-btn--primary:disabled::after{ animation:none; }
}
