/* ================================================================
   鳴白 リミテッドイベント予約 - フロントエンド予約フォーム
================================================================ */
:root {
    --np-gold:#c9a84c;--np-gold-l:#e2c97e;--np-gold-d:#7a6030;
    --np-bg:#0e0e0e;--np-bg2:#161616;--np-bg3:#1e1e1e;
    --np-border:#2a2a2a;--np-border-g:rgba(201,168,76,.3);
    --np-text:#d4d4d4;--np-text-d:#7a7a7a;--np-radius:8px;
}
.nhleb-booking{max-width:680px;margin:0 auto;font-family:'Noto Serif JP','Yu Mincho',serif;color:var(--np-text)}
.nhleb-steps{display:flex;align-items:center;justify-content:center;margin-bottom:36px}
.nhleb-step{display:flex;flex-direction:column;align-items:center;gap:6px;opacity:.35;transition:opacity .3s}
.nhleb-step.active{opacity:1}
.nhleb-step-num{width:32px;height:32px;border-radius:50%;background:var(--np-bg3);border:1px solid var(--np-border);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--np-text-d)}
.nhleb-step.active .nhleb-step-num{background:linear-gradient(135deg,#8a6e2f,#c9a84c);border-color:var(--np-gold);color:#0e0e0e;font-weight:700;box-shadow:0 0 12px rgba(201,168,76,.3)}
.nhleb-step-label{font-size:11px;color:var(--np-text-d);letter-spacing:.04em;white-space:nowrap}
.nhleb-step.active .nhleb-step-label{color:var(--np-gold-l)}
.nhleb-step-line{flex:1;height:1px;background:var(--np-border);margin:0 12px 20px;min-width:40px}
.nhleb-section{background:var(--np-bg2);border:1px solid var(--np-border);border-top:1px solid var(--np-border-g);border-radius:12px;padding:28px;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.nhleb-section.hidden{display:none}
.nhleb-section-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--np-gold-l);margin:0 0 22px;letter-spacing:.04em}
.nhleb-section-title svg{width:20px;height:20px;flex-shrink:0}
.nhleb-cal-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:16px}
.nhleb-cal-btn{background:transparent;border:1px solid var(--np-border);border-radius:6px;color:var(--np-text-d);cursor:pointer;padding:6px 10px;display:flex;align-items:center;transition:all .2s}
.nhleb-cal-btn:hover{border-color:var(--np-gold-d);color:var(--np-gold-l)}
.nhleb-cal-btn svg{width:16px;height:16px}
#nhleb-pub-cal-title{font-size:15px;font-weight:600;color:var(--np-gold-l);letter-spacing:.06em;min-width:110px;text-align:center}
.nhleb-pub-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.nhleb-pub-cal-header{text-align:center;font-size:11px;color:var(--np-text-d);padding:6px 0;letter-spacing:.06em}
.nhleb-pub-cal-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;font-size:13px;border:1px solid transparent;cursor:default;color:var(--np-text-d);transition:all .2s}
.nhleb-pub-cal-cell.available{background:linear-gradient(135deg,#1a1508,#161616);border-color:rgba(201,168,76,.35);color:var(--np-gold-l);cursor:pointer}
.nhleb-pub-cal-cell.available:hover{border-color:var(--np-gold);background:linear-gradient(135deg,#221c0a,#1e1a08);box-shadow:0 0 10px rgba(201,168,76,.15)}
.nhleb-pub-cal-cell.selected{background:linear-gradient(135deg,#8a6e2f,#c9a84c);border-color:var(--np-gold);color:#0e0e0e;font-weight:700}
.nhleb-pub-cal-cell.unavailable{opacity:.3}
.nhleb-pub-cal-cell.empty{background:transparent;border-color:transparent}
.nhleb-avail-dot{width:4px;height:4px;border-radius:50%;background:var(--np-gold);margin-top:3px}
.nhleb-cal-loading{grid-column:1/-1;text-align:center;padding:24px;color:var(--np-text-d);font-size:13px}
.nhleb-cal-legend{display:flex;align-items:center;gap:16px;margin-top:12px;font-size:11px;color:var(--np-text-d)}
.nhleb-legend-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px}
.nhleb-legend-dot.available{background:rgba(201,168,76,.5);border:1px solid var(--np-gold-d)}
.nhleb-legend-dot.unavailable{background:var(--np-bg3);border:1px solid var(--np-border);opacity:.4}
.nhleb-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.nhleb-slot-card{background:var(--np-bg3);border:1px solid var(--np-border);border-radius:var(--np-radius);padding:16px 12px;text-align:center;cursor:pointer;transition:all .2s}
.nhleb-slot-card:hover,.nhleb-slot-card.selected{border-color:var(--np-gold);background:rgba(201,168,76,.07)}
.nhleb-slot-time{font-size:16px;font-weight:600;color:var(--np-gold-l);margin-bottom:6px}
.nhleb-slot-name{font-size:11px;color:var(--np-text-d);margin-bottom:8px}
.nhleb-slot-price{font-size:13px;color:var(--np-gold);font-weight:600}
.nhleb-slot-remaining{font-size:10px;color:var(--np-text-d);margin-top:4px}
.nhleb-slot-full{opacity:.4;cursor:not-allowed}
.nhleb-slot-full .nhleb-slot-time{color:var(--np-text-d)}
.nhleb-back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--np-text-d);cursor:pointer;font-size:12px;font-family:inherit;padding:0;margin-bottom:20px;transition:color .2s}
.nhleb-back-btn:hover{color:var(--np-gold-l)}
.nhleb-back-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.nhleb-booking-summary{background:var(--np-bg3);border:1px solid var(--np-border-g);border-radius:var(--np-radius);padding:16px 20px;margin-bottom:22px;font-size:13px;line-height:1.8;color:var(--np-text)}
.nhleb-booking-summary strong{color:var(--np-gold-l)}
.nhleb-customer-form{display:flex;flex-direction:column;gap:16px;margin-bottom:22px}
.nhleb-field{display:flex;flex-direction:column;gap:6px}
.nhleb-field label{font-size:12px;color:var(--np-text-d);letter-spacing:.04em}
.nhleb-required{color:var(--np-gold)}
.nhleb-field input{background:var(--np-bg3);border:1px solid var(--np-border);color:var(--np-text);padding:10px 14px;border-radius:var(--np-radius);font-family:inherit;font-size:14px;outline:none;transition:border-color .2s}
.nhleb-field input:focus{border-color:var(--np-gold-d);box-shadow:0 0 0 2px rgba(201,168,76,.1)}
.nhleb-submit-area{text-align:center}
.nhleb-submit-btn{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,#8a6e2f,#c9a84c);color:#0a0a0a;border:none;padding:14px 36px;border-radius:40px;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;letter-spacing:.06em;transition:all .3s;box-shadow:0 4px 20px rgba(201,168,76,.25)}
.nhleb-submit-btn:hover{background:linear-gradient(135deg,#c9a84c,#e2c97e);box-shadow:0 6px 24px rgba(201,168,76,.4);transform:translateY(-1px)}
.nhleb-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.nhleb-submit-btn svg{width:16px;height:16px;fill:#0a0a0a}
.nhleb-submit-note{margin-top:10px;font-size:11px;color:var(--np-text-d)}
.nhleb-error-msg{margin-top:16px;background:rgba(201,76,76,.12);border:1px solid rgba(201,76,76,.3);color:#e07070;border-radius:var(--np-radius);padding:12px 16px;font-size:13px}
.nhleb-error-msg.hidden{display:none}
@media(max-width:480px){.nhleb-section{padding:18px}.nhleb-slots-grid{grid-template-columns:repeat(2,1fr)}.nhleb-step-label{font-size:9px}.nhleb-step-line{min-width:20px}}
