@charset "UTF-8";
/* ============================================================
   性病LP B版 / booking widget スタイル
   lp-std 全体トーン（清潔感ある白＋濃紺アクセント）に合わせる
   ============================================================ */

.booking-widget{
  max-width:880px;
  margin:48px auto 0;
  padding:36px 28px 40px;
  background:#f4f8fb;
  border:1px solid #d5e2ee;
  border-radius:12px;
}
.booking-widget-inner{max-width:560px;margin:0 auto;}
.booking-widget .bw-label{
  font-size:12px;font-weight:700;letter-spacing:.18em;
  color:#1976a6;text-align:center;margin-bottom:6px;
}
.booking-widget .bw-title{
  font-size:24px;font-weight:700;line-height:1.5;
  text-align:center;color:#0e3a55;margin-bottom:16px;
}
.booking-lead{
  font-size:14px;line-height:1.85;text-align:center;color:#333;
  margin-bottom:10px;
}
.booking-lead strong{color:#0e3a55;font-weight:700;}
.booking-subnote{
  font-size:12px;line-height:1.7;text-align:center;color:#555;
  background:#fff9e6;border:1px dashed #d8c98c;
  border-radius:8px;padding:10px 12px;margin:0 auto 22px;max-width:520px;
}

.booking-form{display:flex;flex-direction:column;gap:16px;}
.bf-loading,.bf-empty{
  font-size:13.5px;color:#666;text-align:center;padding:14px 0;
}
.bf-slots{border:none;padding:0;margin:0;}
.bf-legend{
  font-size:14.5px;font-weight:700;margin-bottom:10px;color:#0e3a55;
  padding-left:10px;border-left:3px solid #1976a6;
}
.bf-slots-host{display:flex;flex-direction:column;gap:12px;}
.bf-slot-day{
  background:#fff;border:1px solid #d5e2ee;
  border-radius:10px;padding:12px 12px 14px;
}
.bf-day{
  font-size:14px;font-weight:700;margin-bottom:8px;color:#0e3a55;
  padding-left:6px;border-left:3px solid #1976a6;
}
.bf-slot-chips{display:flex;flex-wrap:wrap;gap:8px;}
.bf-slot-chip{
  position:relative;cursor:pointer;
  font-size:14px;font-weight:700;color:#0e3a55;
  background:#f0f5fa;border:2px solid transparent;border-radius:999px;
  padding:8px 14px;transition:.15s;
}
.bf-slot-chip input{
  position:absolute;opacity:0;pointer-events:none;width:0;height:0;
}
.bf-slot-chip:has(input:checked),
.bf-slot-chip.is-selected{
  background:#1976a6;color:#fff;
  border-color:#0e3a55;
  box-shadow:0 2px 6px rgba(25,118,166,.25);
}

.bf-contact{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;}
.bf-row{display:flex;flex-direction:column;gap:5px;}
.bf-label{font-size:14px;font-weight:700;color:#0e3a55;}
.bf-req{
  display:inline-block;font-size:11px;font-weight:700;color:#fff;
  background:#c0382b;padding:1px 8px;border-radius:4px;margin-left:4px;
}
.bf-input{
  font-family:inherit;font-size:16px;line-height:1.5;
  padding:11px 13px;border:1.5px solid #c4d4e2;border-radius:8px;
  background:#fff;color:#222;
  -webkit-appearance:none;
}
.bf-input:focus{
  outline:none;border-color:#1976a6;
  box-shadow:0 0 0 3px rgba(25,118,166,.20);
}
.bf-hint{font-size:11.5px;color:#666;}
.bf-error{
  background:#fff5f5;border:1px solid #f0bdbd;color:#a02020;
  font-size:13px;padding:10px 12px;border-radius:8px;font-weight:700;
}
.bf-submit{
  display:block;width:100%;
  margin-top:8px;cursor:pointer;border:none;
  font-family:inherit;font-size:17px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#1d8ab5 0%,#1976a6 60%,#0e3a55 100%);
  padding:16px 18px;border-radius:10px;letter-spacing:.04em;
  box-shadow:0 6px 14px rgba(14,58,85,.28);
}
.bf-submit:disabled{opacity:.6;cursor:not-allowed;}
.bf-submit:active{transform:translateY(2px);box-shadow:0 3px 8px rgba(14,58,85,.22);}
.bf-note{
  font-size:11.5px;color:#666;text-align:center;line-height:1.7;
}

.bf-success{
  background:#eef7ee;border:1px solid #bcd9bc;
  border-radius:10px;padding:24px 18px;text-align:center;max-width:520px;margin:0 auto;
}
.bf-success-title{
  font-size:18px;font-weight:700;color:#1d6a32;margin-bottom:12px;
}
.bf-success p{font-size:14px;line-height:1.8;margin-bottom:8px;color:#222;}
.bf-success-slot{
  display:inline-block;background:#fff;border:1px dashed #1976a6;
  padding:8px 14px;border-radius:8px;font-weight:700;color:#0e3a55;
  margin:6px 0 10px;
}
.bf-success-note{font-size:12px;color:#666;margin-top:12px;}
