/*
 * Variabili --vsb-*: un tema le può impostare per dare al widget i suoi colori e font
 * (con add_theme_support('vesuvio-booking') il plugin non stampa i colori delle impostazioni).
 */
#ne3-widget{
  --ink:var(--vsb-ink,#1c2430); --sub:var(--vsb-sub,#5b6472); --line:var(--vsb-line,#e3e6ec);
  --bg:var(--vsb-bg,#f6f7fa); --card:var(--vsb-card,#ffffff);
  --blue:var(--vsb-brand,#b34a1c); --blue2:var(--vsb-accent,#e2793c); --price:var(--vsb-price,#c1512e);
  --blue-text:var(--vsb-brand-text,var(--blue)); /* colore del marchio quando è testo */
  --blue-hover:var(--vsb-brand-hover,var(--blue2)); /* sfondo dei bottoni al passaggio */
  --on-blue:var(--vsb-on-brand,#ffffff); --on-blue2:var(--vsb-on-accent,#ffffff);
  --focus:var(--vsb-focus,#1c2430); --radius:var(--vsb-radius,10px);
  font-family:var(--vsb-font,'Manrope',system-ui,-apple-system,sans-serif);
  color:var(--ink); max-width:var(--vsb-max-width,380px); margin:0 auto; position:relative; isolation:isolate;
}
#ne3-widget :focus-visible{outline:3px solid var(--focus); outline-offset:2px;}
#ne3-widget button{font-family:inherit;}
#ne3-widget .ne3-live{position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap;}
#ne3-widget .ne3-card:focus{outline:none;}
#ne3-widget [tabindex="-1"]:focus{outline:none;}
#ne3-widget .ne3-fieldset{border:0; padding:0; margin:0; min-width:0;}
#ne3-widget .ne3-input-label{display:block; font-size:13px; font-weight:700; color:var(--ink); margin:0 0 4px;}
#ne3-widget .ne3-apply{background:var(--blue2); color:var(--on-blue2); border:none; border-radius:var(--radius); padding:0 16px; min-height:44px; font-weight:700; font-size:13px; cursor:pointer;}
#ne3-widget *{box-sizing:border-box;}
#ne3-widget .ne3-langbar{display:flex; gap:5px; justify-content:flex-end; margin-bottom:8px;}
#ne3-widget .ne3-langbtn{border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:8px; padding:6px 8px; min-height:32px; font-size:13px; font-weight:700; cursor:pointer; line-height:1; font-family:inherit;}
#ne3-widget .ne3-langbtn:hover{border-color:var(--blue2);}
#ne3-widget .ne3-langbtn.active{background:var(--blue2); border-color:var(--blue2); color:var(--on-blue2);}
#ne3-widget .ne3-card{
  background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden;
  box-shadow:0 10px 30px -18px rgba(22,58,107,.25);
}
#ne3-widget .ne3-skel-header{padding:20px;}
#ne3-widget .ne3-skel{height:80px; border-radius:10px; background:linear-gradient(90deg,#e3e6ec,#eef0f4,#e3e6ec); background-size:200% 100%; animation:ne3-shimmer 1.4s infinite;}
@keyframes ne3-shimmer{ 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }

#ne3-widget .ne3-header{padding:18px 20px 4px;}
#ne3-widget .ne3-name{font-size:16.5px; font-weight:800; color:var(--blue-text); line-height:1.25; margin:0 0 6px; font-family:inherit;}
#ne3-widget .ne3-price-top .amt{font-size:23px; font-weight:800; color:var(--blue-text);}
#ne3-widget .ne3-price-top .amt small{font-size:12px; font-weight:600; color:var(--sub);}

#ne3-widget .ne3-step-label{display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--sub); padding:10px 20px 4px;}
#ne3-widget .ne3-choice-list{display:flex; flex-direction:column; gap:8px; padding:10px 20px 20px;}
#ne3-widget .ne3-choice-btn{background:var(--blue); color:var(--on-blue); min-height:48px; border:none; border-radius:10px; padding:13px 16px; font-size:14.5px; font-weight:700; cursor:pointer; text-align:center;}
#ne3-widget .ne3-choice-btn:hover{background:var(--blue-hover);}

#ne3-widget .ne3-departure-bar{background:var(--blue2); color:var(--on-blue2); padding:14px 20px; display:flex; align-items:center; justify-content:space-between;}
#ne3-widget .ne3-departure-bar .lbl{font-size:11.5px; opacity:.85; display:block;}
#ne3-widget .ne3-departure-bar .val{font-size:15px; font-weight:800;}
#ne3-widget .ne3-departure-bar button{background:rgba(255,255,255,.18); border:1px solid currentColor; color:inherit; min-height:32px; border-radius:8px; padding:6px 10px; font-size:12px; font-weight:700; cursor:pointer;}

#ne3-widget .ne3-form-block{padding:16px 20px; border-bottom:1px solid var(--line);}
#ne3-widget .ne3-form-block:last-of-type{border-bottom:none;}
#ne3-widget .ne3-field-label{display:block; font-size:11.5px; font-weight:700; color:var(--sub); text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; padding:0;}
#ne3-widget select, #ne3-widget input[type=text], #ne3-widget input[type=email], #ne3-widget input[type=tel], #ne3-widget textarea{
  width:100%; border:1px solid var(--line); border-radius:10px; padding:11px 12px; font-size:14px; font-family:inherit; color:var(--ink); background:#fff;
}
#ne3-widget .ne3-two-col{display:grid; grid-template-columns:1fr 1fr; gap:10px;}

#ne3-widget .ne3-qty-row{display:flex; align-items:center; justify-content:space-between; padding:8px 0;}
#ne3-widget .ne3-qty-row .name{font-size:14px; font-weight:700;}
#ne3-widget .ne3-qty-row .price{font-size:12px; color:var(--sub);}
#ne3-widget .ne3-qty{display:flex; align-items:center; gap:10px;}
#ne3-widget .ne3-qty button{width:36px; height:36px; border-radius:50%; border:1px solid var(--ink); background:#fff; color:var(--ink); font-size:16px; cursor:pointer; line-height:1;}
#ne3-widget .ne3-qty button:disabled{opacity:.3; cursor:not-allowed;}
#ne3-widget .ne3-qty span{min-width:16px; text-align:center; font-weight:800;}

#ne3-widget .ne3-totalbar{background:var(--blue2); color:var(--on-blue2); padding:16px 20px; display:flex; align-items:center; justify-content:space-between;}
#ne3-widget .ne3-totalbar .lbl{font-size:22px; font-weight:800;}
#ne3-widget .ne3-totalbar .amt{font-size:22px; font-weight:800;}
#ne3-widget .ne3-cta{display:block; width:100%; background:var(--blue); color:var(--on-blue); min-height:48px; border:none; padding:15px; font-size:14.5px; font-weight:800; cursor:pointer;}
#ne3-widget .ne3-cta:hover{background:var(--blue-hover);}
#ne3-widget .ne3-cta:disabled{background:#b9c0cc; cursor:not-allowed;}
#ne3-widget .ne3-note{font-size:12px; color:var(--sub); padding:0 20px 16px;}

#ne3-widget .ne3-cal{border:1px solid var(--line); border-radius:12px; padding:10px; background:#fff;}
#ne3-widget .ne3-cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:8px;}
#ne3-widget .ne3-cal-month{font-size:13.5px; font-weight:800; color:var(--ink);}
#ne3-widget .ne3-cal-nav{width:36px; height:36px; border-radius:8px; border:1px solid var(--line); background:#fff; color:var(--blue-text); font-size:16px; line-height:1; cursor:pointer;}
#ne3-widget .ne3-cal-nav:disabled{opacity:.3; cursor:not-allowed;}
#ne3-widget .ne3-cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:3px;}
#ne3-widget .ne3-cal-dow{text-align:center; font-size:10.5px; font-weight:700; color:var(--sub); padding:3px 0;}
#ne3-widget .ne3-cal-cell{aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:12.5px; border-radius:8px;}
#ne3-widget .ne3-cal-cell.empty{visibility:hidden;}
/* giorni non prenotabili: leggibili (contrasto ≥ 4.5:1), distinti dai prenotabili per peso e sfondo */
#ne3-widget .ne3-cal-cell.off{color:var(--sub); font-weight:400;}
#ne3-widget .ne3-cal-cell.avail{color:var(--ink); font-weight:700; cursor:pointer; background:var(--bg); border:0; padding:0; font-size:12.5px; width:100%;}
#ne3-widget .ne3-cal-cell.avail:hover{background:var(--vsb-day-hover,#f0e3da);}
#ne3-widget .ne3-cal-cell.sel:hover{background:var(--blue2);}
#ne3-widget .ne3-cal-cell.sel{background:var(--blue2); color:var(--on-blue2);}

#ne3-widget .ne3-tiles{display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:14px 20px;}
#ne3-widget .ne3-tile{background:var(--bg); border-radius:10px; padding:9px 11px;}
#ne3-widget .ne3-tile .k{font-size:10.5px; color:var(--sub); text-transform:uppercase; font-weight:700;}
#ne3-widget .ne3-tile .v{font-size:13.5px; font-weight:800; color:var(--ink);}
#ne3-widget .ne3-line-item{display:flex; justify-content:space-between; align-items:baseline; padding:8px 20px; font-size:13.5px;}
#ne3-widget .ne3-line-item .price{color:var(--price); font-weight:800;}

#ne3-widget .ne3-back-link{display:block; background:none; border:0; text-align:start; padding:12px 20px 0; min-height:32px; font-size:12.5px; color:var(--blue-text); cursor:pointer; font-weight:700; text-decoration:underline; text-underline-offset:3px;}


#ne3-widget .ne3-toast{position:absolute; bottom:14px; left:50%; transform:translateX(-50%); background:var(--ink); color:#fff; padding:9px 16px; border-radius:999px; font-size:12.5px; z-index:30;}

#ne3-widget .ne3-cta-outline{display:block; width:calc(100% - 40px); margin:16px 20px 16px; background:#fff; color:var(--blue-text); border:1.5px solid var(--blue-text); border-radius:var(--radius); padding:12px; min-height:48px; font-size:13.5px; font-weight:800; cursor:pointer; text-align:center;}
#ne3-widget .ne3-cta-outline:hover{background:var(--bg);}
#ne3-widget .ne3-cart-item{display:flex; justify-content:space-between; align-items:flex-start; padding:12px 20px; border-bottom:1px solid var(--line); gap:10px;}
#ne3-widget .ne3-cart-item .ci-name{font-size:13.5px; font-weight:800; color:var(--ink);}
#ne3-widget .ne3-cart-item .ci-meta{font-size:11.5px; color:var(--sub); margin-top:2px;}
#ne3-widget .ne3-cart-item .ci-price{font-size:13.5px; font-weight:800; color:var(--price); white-space:nowrap;}
#ne3-widget .ne3-cart-remove{background:none; border:none; color:var(--sub); font-size:13px; cursor:pointer; padding:4px 0 4px 6px; min-height:24px; line-height:1; text-decoration:underline;}
#ne3-widget .ne3-empty{padding:24px 20px; color:var(--sub); font-size:13.5px; text-align:center;}