/* ══════════════════════════════════════════════════════
   BB Booking – Front-end styles  v2.6.0
   ══════════════════════════════════════════════════════ */

/* ── Wrapper form ── */
.bb-form-wrap{max-width:560px;margin:0 auto;font-family:inherit}
.bb-single-room-wrap{max-width:580px}

/* ── Room summary ── */
.bb-room-summary{display:flex;gap:16px;align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:14px 18px;margin-bottom:22px}
.bb-room-thumb{width:90px;height:70px;object-fit:cover;border-radius:8px;flex-shrink:0}
.bb-room-title{margin:0 0 6px;font-size:17px;font-weight:700;color:inherit}
.bb-room-meta{display:flex;gap:14px;font-size:13px;color:#555;flex-wrap:wrap;align-items:center}

/* ── Calendario datepicker inline ── */
.bb-datepicker{background:#fff;border:1.5px solid #e5e7eb;border-radius:14px;overflow:hidden;margin-bottom:20px;user-select:none;box-shadow:0 2px 12px rgba(0,0,0,.06)}

/* Header mese */
.bb-dp-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px}
.bb-dp-title{font-size:15px;font-weight:700;color:inherit;letter-spacing:.01em}
.bb-dp-nav{background:none;border:1.5px solid #e5e7eb;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:inherit;transition:background .15s,border-color .15s;padding:0}
.bb-dp-nav:hover{background:#f3f4f6;border-color:#d1d5db}
.bb-dp-nav svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.5;fill:none}

/* Giorni settimana */
.bb-dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 10px 4px}
.bb-dp-weekdays span{text-align:center;font-size:11.5px;font-weight:600;color:#9ca3af;padding:4px 0;text-transform:uppercase;letter-spacing:.04em}

/* Griglia giorni */
.bb-dp-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:0 10px 12px;gap:2px}

/* Singola cella giorno */
.bb-dp-day{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:13.5px;cursor:pointer;border-radius:8px;transition:background .12s,color .12s;color:inherit;font-weight:400}
.bb-dp-day:not(.bb-dp-empty):not(.bb-dp-disabled):hover{background:#f3f4f6}
.bb-dp-day.bb-dp-other{color:#d1d5db;cursor:default}
.bb-dp-day.bb-dp-disabled{color:#e5e7eb;cursor:not-allowed;pointer-events:none}
.bb-dp-day.bb-dp-today{font-weight:700}
.bb-dp-day.bb-dp-today::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.4}

/* Selezione: range */
.bb-dp-day.bb-dp-in-range{background:#f0f9ff;border-radius:0;color:inherit}
.bb-dp-day.bb-dp-range-start,.bb-dp-day.bb-dp-range-end{background:#111!important;color:#fff!important;border-radius:8px!important;font-weight:700;z-index:1}
.bb-dp-day.bb-dp-range-start.bb-dp-in-range{border-radius:8px 0 0 8px!important}
.bb-dp-day.bb-dp-range-end.bb-dp-in-range{border-radius:0 8px 8px 0!important}
/* Connessione visiva tra start e end */
.bb-dp-day.bb-dp-in-range:not(.bb-dp-range-start):not(.bb-dp-range-end){background:#f0f9ff;border-radius:0}

/* Etichette range sotto il calendario */
.bb-dp-range-info{display:flex;align-items:center;justify-content:space-between;padding:10px 18px 14px;border-top:1px solid #f3f4f6;gap:8px}
.bb-dp-range-slot{flex:1;text-align:center}
.bb-dp-range-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;margin-bottom:2px}
.bb-dp-range-val{font-size:14px;font-weight:700;color:inherit;min-height:20px}
.bb-dp-range-val.bb-dp-placeholder{color:#d1d5db;font-weight:400;font-size:13px}
.bb-dp-range-sep{width:24px;text-align:center;color:#d1d5db;font-size:18px;flex-shrink:0;padding-top:14px}

/* Nights badge */
.bb-dp-nights{text-align:center;font-size:12px;color:#6b7280;padding:0 18px 12px;margin-top:-6px}
.bb-dp-nights strong{color:inherit}

/* ── Prezzo stimato ── */
.bb-price-box{background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:10px;padding:12px 16px;margin-bottom:14px;font-size:14px;color:#166534;display:flex;align-items:center;gap:8px}

/* ── Messaggio disponibilità ── */
.bb-avail-msg{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:12px}
.bb-avail-msg.avail-ok{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}
.bb-avail-msg.avail-no{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}

/* ── Ospiti ── */
.bb-guests-row{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.bb-guests-label{font-size:13px;color:#374151;flex:1}
.bb-guests-ctrl{display:flex;align-items:center;gap:6px}
.bb-guests-btn{width:32px;height:32px;border:1.5px solid #e5e7eb;border-radius:8px;background:#fff;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;color:inherit;transition:border-color .15s}
.bb-guests-btn:hover{border-color:#9ca3af}
.bb-guests-count{font-size:15px;font-weight:700;min-width:24px;text-align:center}

/* ── Campi form ── */
.bb-ff{margin-bottom:14px}
.bb-ff-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
@media(max-width:480px){.bb-ff-row{grid-template-columns:1fr;margin-bottom:0}.bb-ff-row .bb-ff{margin-bottom:14px}}
.bb-label{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;margin-bottom:5px;color:inherit}
.bb-form-wrap input[type=text],
.bb-form-wrap input[type=email],
.bb-form-wrap input[type=tel],
.bb-form-wrap input[type=number],
.bb-form-wrap textarea{width:100%;padding:10px 13px;border:1.5px solid #e5e7eb;border-radius:9px;font-size:14px;background:#fff;color:inherit;transition:border-color .15s,box-shadow .15s;outline:none;box-sizing:border-box}
.bb-form-wrap input:focus,
.bb-form-wrap textarea:focus{border-color:#111;box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.bb-form-wrap textarea{resize:vertical;min-height:70px}

/* ── Submit: eredita gli stili del tema ── */
.bb-submit-btn{
  /* all:unset azzera gli stili del plugin ma mantiene classi del tema */
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:100%!important;
  cursor:pointer!important;
  box-sizing:border-box!important;
  /* Padding di fallback – il tema può sovrascrivere con selettori propri */
  padding:14px 24px!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1.4!important;
  border-radius:4px!important;
  text-decoration:none!important;

}
/* Il tema sovrascrive background/color/radius via .wp-element-button */
.bb-submit-btn:not(:disabled){cursor:pointer!important}
.bb-submit-btn:disabled{opacity:.6!important;cursor:not-allowed!important}
.bb-submit-btn .bb-icon{margin-right:6px;vertical-align:middle}

/* ── Messaggi form ── */
#bb-front-msg{min-height:16px;margin-bottom:8px;font-size:13px}
.bb-msg-ok{color:#166534}.bb-msg-err{color:#991b1b}
.bb-form-note{font-size:11px;color:#9ca3af;text-align:center;margin-top:8px}

/* ── Modal successo ── */
.bb-modal-overlay{
    position:fixed;top:0;left:0;right:0;bottom:0;z-index:999999;
    background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
    display:none;align-items:center;justify-content:center;padding:20px;
    animation:bbFadeIn .25s ease;
}
@keyframes bbFadeIn{from{opacity:0}to{opacity:1}}
@keyframes bbSlideUp{from{opacity:0;transform:translateY(24px) scale(0.96)}to{opacity:1;transform:translateY(0) scale(1)}}

.bb-modal-card{
    background:#fff;border-radius:16px;padding:40px 36px 32px;text-align:center;
    max-width:420px;width:100%;position:relative;
    box-shadow:0 25px 50px -12px rgba(0,0,0,0.25);
    animation:bbSlideUp .35s cubic-bezier(0.16,1,0.3,1);
}
.bb-modal-close{
    position:absolute;top:14px;right:16px;background:none;border:none;
    font-size:24px;color:#9ca3af;cursor:pointer;line-height:1;padding:4px;
    transition:color .15s;
}
.bb-modal-close:hover{color:#374151}

.bb-modal-card .bb-success-icon{
    margin:0 auto 16px;width:64px;height:64px;background:#111;border-radius:50%;
    display:flex;align-items:center;justify-content:center;color:#fff;
}
.bb-modal-card .bb-check-icon{width:32px;height:32px}
.bb-modal-card h3{font-size:22px;font-weight:700;margin:0 0 10px;color:#111}
.bb-modal-card p{font-size:14px;color:#6b7280;margin:0 0 6px;line-height:1.6}
.bb-modal-sub{font-size:13px!important;color:#9ca3af!important;margin-top:4px!important}

.bb-modal-ok-btn{
    margin-top:20px;padding:12px 32px;background:#111;color:#fff;border:none;
    border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;
    transition:background .15s,transform .1s;
}
.bb-modal-ok-btn:hover{background:#333}
.bb-modal-ok-btn:active{transform:scale(0.97)}

/* ── Notice ── */
.bb-notice{padding:12px 16px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;color:#6b7280}

/* ── Icone inline ── */
.bb-icon{display:inline-block;vertical-align:middle;flex-shrink:0}
.bb-icon-label{display:inline-flex;align-items:center;gap:5px}
.bb-btn-icon{margin-right:4px;vertical-align:text-bottom}
.bb-lbl-icon{margin-right:3px;vertical-align:middle;opacity:.7}
.bb-meta-icon,.bb-select-icon{margin-right:3px;vertical-align:middle}
.bb-check-icon{color:#fff;width:28px;height:28px}

.bb-datepicker-mount{margin-bottom:4px}

/* ══════════════════════════════════════════════════════
   SHORTCODE DISPONIBILITA' [bb_availability]
   ══════════════════════════════════════════════════════ */
.bb-availability-wrap {
    font-family: inherit;
    margin-bottom: 30px;
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
}
.bb-availability-wrap h3 {
    margin: 0 0 16px 0;
    font-size: 20px;
    color: #1f2937;
    font-weight: 600;
}
.bb-avail-room {
    margin-bottom: 24px;
}
.bb-avail-room:last-child {
    margin-bottom: 0;
}
.bb-avail-room > strong {
    display: block;
    margin-bottom: 12px;
    font-size: 16px;
    color: #374151;
}
.bb-avail-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
}
.bb-avail-cell {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
}
.bb-avail-header {
    background: transparent;
    color: #6b7280;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}
.bb-avail-empty {
    background: transparent;
}
.bb-avail-free {
    background: #f0fdf4;
    color: #166534;
    border: 1px solid #bbf7d0;
}
.bb-avail-booked {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
    position: relative;
    overflow: hidden;
}
.bb-avail-booked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 10%;
    right: 10%;
    height: 1.5px;
    background: #ef4444;
    transform: rotate(-45deg);
}

.bb-avail-partial {
    background: #fffbeb;
    color: #b45309;
    border: 1px solid #fde68a;
    position: relative;
    overflow: visible;
    cursor: help;
}
.bb-avail-partial::after {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 0; height: 0;
    border-top: 12px solid #f59e0b;
    border-right: 12px solid transparent;
}

.bb-avail-tooltip {
    display: none;
    position: absolute;
    bottom: 115%;
    left: 50%;
    transform: translateX(-50%);
    background: #1f2937;
    color: #f9fafb;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 13.5px;
    white-space: nowrap;
    z-index: 100;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    line-height: 1.6;
    text-align: left;
    font-weight: 400;
}
.bb-avail-tooltip::after {
    content: ''; position: absolute; top: 100%; left: 50%; margin-left: -6px;
    border-width: 6px; border-style: solid; border-color: #1f2937 transparent transparent transparent;
}
.bb-avail-partial:hover .bb-avail-tooltip {
    display: block;
    animation: bbFadeInUp 0.15s ease-out forwards;
}
.bb-avail-tooltip a {
    color: #60a5fa;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.15s;
}
.bb-avail-tooltip a:hover {
    color: #93c5fd;
    text-decoration: underline;
}
@keyframes bbFadeInUp {
    from { opacity: 0; transform: translate(-50%, 4px); }
    to { opacity: 1; transform: translate(-50%, 0); }
}