@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600&family=Nunito:wght@300;400;500;600&display=swap');

:root{
  --br:#2c1a0e;--bm:#5a3a1a;--bw:#8b5e2a;--bc:#fdf6ec;
  --bl:#f5ead8;--bb:#e8d5b8;--bg:#c8860a;--bt:#3a2010;
  --bmu:#7a5c3a;--green:#2e7d32;--red:#c0392b;--blue:#1565c0;
}
.hbb-wrap *{box-sizing:border-box;margin:0;padding:0}
.hbb-wrap{max-width:660px;margin:0 auto;font-family:'Nunito',sans-serif;color:var(--bt);padding:10px 0 40px}

/* HEADER */
.hbb-form-header{text-align:center;padding:30px 20px 22px;background:var(--br);border-radius:16px 16px 0 0;position:relative;overflow:hidden}
.hbb-header-paw{position:absolute;font-size:100px;opacity:0.06;right:-15px;top:-10px;line-height:1}
.hbb-form-header h2{font-family:'Playfair Display',serif;font-size:24px;color:#fdf6ec;font-weight:500;margin-bottom:5px}
.hbb-form-header p{font-size:13px;color:#c4a07a;font-weight:300}

/* BODY */
.hbb-form-body{background:var(--bc);border:1px solid var(--bb);border-top:none;border-radius:0 0 16px 16px;padding:26px 26px 30px}

/* SECTIONS */
.hbb-section{margin-bottom:24px}
.hbb-section-title{font-family:'Playfair Display',serif;font-size:15px;font-weight:500;color:var(--bm);margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--bb);display:flex;align-items:center;gap:8px}
.hbb-sec-icon{font-size:16px}
.hbb-paws-divider{text-align:center;font-size:17px;color:var(--bb);letter-spacing:6px;margin:4px 0 18px;opacity:0.8}

/* FIELDS */
.hbb-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hbb-field{margin-bottom:12px}
.hbb-field:last-child{margin-bottom:0}
.hbb-field label{display:block;font-size:11px;font-weight:700;color:var(--bm);margin-bottom:5px;text-transform:uppercase;letter-spacing:0.04em}
.hbb-req{color:var(--bg);margin-left:2px}
.hbb-field input,.hbb-field select{width:100%;padding:10px 13px;font-size:14px;font-family:'Nunito',sans-serif;border:1.5px solid var(--bb);border-radius:9px;background:#fff;color:var(--bt);transition:border-color 0.2s;-webkit-appearance:none}
.hbb-field input:focus,.hbb-field select:focus{outline:none;border-color:var(--bw);box-shadow:0 0 0 3px rgba(139,94,42,0.1)}
.hbb-field input::placeholder{color:#c4a880}
.hbb-hint{font-size:12px;color:var(--bmu);margin-top:5px;padding:6px 10px;background:var(--bl);border-radius:6px;border-left:3px solid var(--bg);display:none}

/* LEGEND */
.hbb-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:12px;padding:8px 12px;background:#fff;border:1px solid var(--bb);border-radius:8px}
.hbb-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--bmu)}
.hbb-dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex-shrink:0}
.hbb-dot-available{background:#4caf50}
.hbb-dot-limited{background:#8bc34a}
.hbb-dot-partial{background:#ff9800}
.hbb-dot-full{background:#f44336}
.hbb-dot-selected{background:var(--br)}

/* CALENDAR */
.hbb-calendar-wrap{background:#fff;border:1.5px solid var(--bb);border-radius:12px;overflow:hidden;margin-bottom:14px}
.hbb-cal-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--br);color:#fdf6ec}
.hbb-cal-month-title{font-family:'Playfair Display',serif;font-size:16px;font-weight:500;color:#fdf6ec}
.hbb-cal-btn{background:rgba(255,255,255,0.15);border:none;color:#fdf6ec;width:30px;height:30px;border-radius:6px;font-size:18px;cursor:pointer;line-height:1;transition:background 0.2s}
.hbb-cal-btn:hover{background:rgba(255,255,255,0.25)}
.hbb-cal-days-header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bl);border-bottom:1px solid var(--bb)}
.hbb-cal-days-header span{text-align:center;padding:6px 0;font-size:11px;font-weight:700;color:var(--bmu);text-transform:uppercase;letter-spacing:0.03em}
.hbb-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:8px}
.hbb-cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;border-radius:8px;cursor:pointer;transition:all 0.15s;position:relative;color:var(--bt);margin:2px}
.hbb-cal-day:hover:not(.hbb-cal-empty):not(.hbb-cal-past):not(.hbb-cal-full){background:var(--bl);border:1.5px solid var(--bw)}
.hbb-cal-empty{cursor:default}
.hbb-cal-past{color:#ccc;cursor:not-allowed}
.hbb-cal-available{border:1.5px solid #c8e6c9}
.hbb-cal-available::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:#4caf50}
.hbb-cal-limited::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:#8bc34a}
.hbb-cal-partial{background:#fff8e1}
.hbb-cal-partial::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:#ff9800}
.hbb-cal-full{background:#fde8e8;color:#c62828;cursor:not-allowed}
.hbb-cal-full::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:#f44336}
.hbb-cal-selected-start,.hbb-cal-selected-end{background:var(--br) !important;color:#fdf6ec !important;border:none !important}
.hbb-cal-selected-start::after,.hbb-cal-selected-end::after{display:none}
.hbb-cal-in-range{background:var(--bl);border-radius:0}
.hbb-cal-in-range.hbb-cal-selected-start{border-radius:8px 0 0 8px}
.hbb-cal-in-range.hbb-cal-selected-end{border-radius:0 8px 8px 0}
.hbb-cal-today{font-weight:700;text-decoration:underline;text-decoration-color:var(--bg)}
.hbb-cal-loading{grid-column:span 7;text-align:center;padding:24px;color:var(--bmu);font-size:13px}

/* SELECTED DATES DISPLAY */
.hbb-dates-display{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border:1.5px solid var(--bw);border-radius:10px;margin-bottom:10px}
.hbb-date-box{flex:1;text-align:center}
.hbb-date-label{font-size:11px;font-weight:700;color:var(--bmu);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:3px}
.hbb-date-val{font-family:'Playfair Display',serif;font-size:16px;color:var(--br)}
.hbb-date-arrow{font-size:20px;color:var(--bb)}
.hbb-clear-dates{background:none;border:1px solid var(--bb);border-radius:6px;color:var(--bmu);padding:4px 8px;cursor:pointer;font-size:13px;transition:all 0.15s}
.hbb-clear-dates:hover{border-color:var(--red);color:var(--red)}

/* NIGHTS + DISCOUNT */
.hbb-nights-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.hbb-nights-pill{background:var(--br);color:var(--bc);font-size:13px;font-weight:600;padding:5px 15px;border-radius:20px}
.hbb-discount-badge{background:#e8f5e9;color:#1b5e20;font-size:12px;font-weight:600;padding:4px 12px;border-radius:20px}
.hbb-no-disc-badge{background:#fff8e1;color:#e65100;font-size:12px;font-weight:600;padding:4px 12px;border-radius:20px}

/* ALERTS */
.hbb-alert{border-radius:0;padding:11px 15px;font-size:13px;margin-bottom:12px;line-height:1.6;border-left-width:3px;border-left-style:solid}
.hbb-alert strong{display:block;margin-bottom:3px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:0.03em}
.hbb-alert-warn{background:#fff8e8;border-left-color:#d4a017;color:#6b4c00}
.hbb-alert-info{background:#e8f4ff;border-left-color:#2196f3;color:#0d47a1}
.hbb-alert-danger{background:#fdf2f2;border-left-color:var(--red);color:#7a1a1a}
.hbb-alert-success{background:#e8f5e9;border-left-color:var(--green);color:#1b5e20}
.hbb-waitlist-btn{display:inline-block;margin-top:8px;padding:7px 14px;background:var(--bt);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;font-family:'Nunito',sans-serif}
.hbb-waitlist-btn:hover{background:var(--bm)}

/* TRIAL BOX */
.hbb-trial-box{margin-top:10px;background:#fff9f0;border:1.5px solid #e8c888;border-radius:12px;padding:16px;margin-bottom:12px}
.hbb-trial-title{font-family:'Playfair Display',serif;font-size:15px;color:var(--bm);margin-bottom:4px}
.hbb-trial-desc{font-size:12px;color:var(--bmu);margin-bottom:12px}
.hbb-radio-group{display:flex;flex-direction:column;gap:9px}
.hbb-radio{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:500;padding:11px 14px;border:1.5px solid var(--bb);border-radius:9px;background:#fff;cursor:pointer;transition:all 0.2s;color:var(--bt)}
.hbb-radio:hover,.hbb-radio.sel{border-color:var(--bw);background:#fdf6ec;box-shadow:0 0 0 3px rgba(139,94,42,0.08)}
.hbb-radio input{width:15px;height:15px;accent-color:var(--bw);flex-shrink:0}
.hbb-radio-icon{font-size:16px}

/* SUMMARY */
.hbb-summary-card{background:#fff;border:1.5px solid var(--bb);border-radius:13px;overflow:hidden;margin-bottom:16px}
.hbb-summary-rows{padding:14px 18px 0}
.hbb-sum-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:13px;border-bottom:1px dashed var(--bb);color:var(--bt)}
.hbb-sum-row:last-child{border-bottom:none}
.hbb-sum-row .lbl{color:var(--bmu)}
.hbb-sum-row .dv{color:var(--green);font-weight:600}
.hbb-sum-total{display:flex;justify-content:space-between;align-items:center;padding:11px 18px;background:var(--bl);font-size:14px;font-weight:700;color:var(--br);border-top:1.5px solid var(--bb)}
.hbb-deposit-box{background:var(--br);padding:18px}
.hbb-deposit-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.hbb-deposit-label{font-size:12px;color:#c4a07a;font-weight:500}
.hbb-deposit-amount{font-family:'Playfair Display',serif;font-size:26px;color:#fdf6ec}
.hbb-badge-deposit{background:var(--bg);color:#fff;font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:0.05em}
.hbb-remaining-line{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid rgba(255,255,255,0.1);font-size:12px;color:#a08060}
.hbb-remaining-line strong{color:#d4b080}
.hbb-reminder-note{font-size:11px;color:#7a6050;margin-top:7px;font-style:italic}

/* SUBMIT */
.hbb-submit-wrap{margin-top:4px}
.hbb-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px 24px;background:var(--br);color:var(--bc);border:none;border-radius:11px;font-family:'Playfair Display',serif;font-size:16px;cursor:pointer;transition:background 0.2s,transform 0.1s;letter-spacing:0.02em;font-weight:400}
.hbb-btn:hover{background:var(--bm)}
.hbb-btn:active{transform:scale(0.99)}
.hbb-btn-arrow{transition:transform 0.2s;font-size:18px}
.hbb-btn:hover .hbb-btn-arrow{transform:translateX(4px)}
.hbb-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px;font-size:13px;color:var(--bmu)}
.hbb-spinner{width:18px;height:18px;border:2px solid var(--bb);border-top-color:var(--bw);border-radius:50%;animation:hbb-spin 0.7s linear infinite;display:inline-block;flex-shrink:0}
@keyframes hbb-spin{to{transform:rotate(360deg)}}

/* WAITLIST OVERLAY (inline block, not fixed) */
.hbb-waitlist-overlay{background:rgba(44,26,14,0.55);padding:20px;border-radius:12px;margin-top:16px}
.hbb-waitlist-modal{background:#fff;border-radius:12px;overflow:hidden;max-width:460px;margin:0 auto}
.hbb-wl-header{background:var(--br);padding:16px 20px;display:flex;justify-content:space-between;align-items:center}
.hbb-wl-title{font-family:'Playfair Display',serif;font-size:17px;color:#fdf6ec}
.hbb-wl-close{background:none;border:none;color:#c4a07a;font-size:18px;cursor:pointer;line-height:1;padding:0}
.hbb-wl-close:hover{color:#fdf6ec}
.hbb-wl-body{padding:20px}
.hbb-wl-desc{font-size:13px;color:var(--bmu);margin-bottom:16px}

/* ADMIN */
.hbb-table th{font-weight:600;font-size:13px}
.hbb-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600}
.hbb-green{background:#e8f5e9;color:#2e7d32}
.hbb-warn{background:#fff8e1;color:#e65100}
.hbb-red{background:#fce4ec;color:#c62828}

@media(max-width:540px){
  .hbb-row{grid-template-columns:1fr}
  .hbb-form-body{padding:18px 14px 22px}
  .hbb-legend{gap:8px}
  .hbb-cal-day{font-size:12px}
}
