.bp-wrap { display:grid; grid-template-columns:1fr 1fr; gap:32px; max-width:1200px; margin:30px auto; font-family:system-ui,-apple-system,sans-serif; align-items:flex-start; }

/* Left */
.bp-gallery { border-radius:16px; overflow:hidden; }
.bp-main-img { width:100%; height:320px; overflow:hidden; border-radius:16px; margin-bottom:10px; }
.bp-main-img img { width:100%; height:100%; object-fit:cover; transition:0.3s; }
.bp-thumbnails { display:flex; gap:8px; border-radius: 12px; border: 1px solid #e5e7eb; padding:8px; background:#fff; }
.bp-thumb { width:98px !important; height:65px !important; object-fit:cover; border-radius:10px !important; cursor:pointer; border:2px solid transparent !important; transition:0.2s; }
.bp-thumb.active, .bp-thumb:hover { border-color:#4f46e5; }

.bp-left { display:flex; flex-direction:column; gap:20px; }
.bp-slider { border-radius:16px; overflow:hidden; }
.bp-slider img { width:100%; height:320px; object-fit:cover; }
.bp-no-img { height:320px; display:flex; align-items:center; justify-content:center; font-size:80px; background:#f3f4f6; }
.bp-info { background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:24px; }
.bp-title-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:10px; }
.bp-title-row h2 { font-size:22px; font-weight:700; color:#111827; margin:0; }
.bp-badge { font-size:11px; padding:3px 8px; border-radius:6px; color:#fff; margin-left:8px; vertical-align:middle; }
.bp-price { font-size:22px; font-weight:700; color:#4f46e5; white-space:nowrap; }
.bp-price span { font-size:13px; color:#9ca3af; font-weight:400; }
.bp-verified { color:#22c55e; font-size:13px; font-weight:600; margin:0 0 8px; }
.bp-not-verified { color:#ef4444; font-size:13px; font-weight:600; margin:0 0 8px; }
.bp-location { color:#6b7280; font-size:14px; margin:0 0 8px; }
.bp-rating { color:#f59e0b; font-size:14px; font-weight:600; margin-bottom:12px; }
.bp-rating span { color:#9ca3af; font-weight:400; }
.bp-description { background:#f9fafb; border-left:4px solid #4f46e5; border-radius:8px; padding:14px; color:#374151; font-size:14px; line-height:1.6; margin-bottom:16px; }
.bp-amenities h4 { font-size:14px; font-weight:700; color:#1f2937; margin-bottom:10px; }
.bp-amenity-list { display:flex; flex-wrap:wrap; gap:8px; }
.bp-amenity-list span { background:#eef2ff; color:#4f46e5; padding:6px 12px; border-radius:20px; font-size:13px; font-weight:500; }
.bp-back-btn { display:inline-block; background:#4f46e5; color:#fff; border:none; border-radius:12px; padding:8px 14px; font-size:14px; font-weight:600; cursor:pointer; transition:background 0.2s; margin-top:18px; text-decoration:none !important; }
.bp-back-btn:hover { background-color: #4338ca; color: #fff; }

/* Right */
.bp-right { position:sticky; top:100px; }
.bp-form-wrap { background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:28px; box-shadow:0 4px 20px rgba(0,0,0,0.08); }
.bp-form-wrap h3 { font-size:20px; font-weight:700; color:#111827; margin:0 0 4px; }
.bp-form-sub { font-size:14px; color:#6b7280; margin:0 0 20px; }
.booking-form { display:flex; flex-direction:column; gap:16px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group label { font-size:13px; font-weight:600; color:#374151; }
.form-group input, .form-group select, .form-group textarea { border:1px solid #e5e7eb; border-radius:10px; padding:10px 14px; font-size:14px; outline:none; transition:border 0.2s; width:100%; box-sizing:border-box; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:#6366f1; box-shadow:0 0 0 3px rgba(99,102,241,0.1); }
.booking-submit-btn { background:#4f46e5; color:#fff; border:none; border-radius:12px; padding:14px; font-size:15px; font-weight:600; cursor:pointer; transition:background 0.2s; width:100%; }
.booking-submit-btn:hover { background:#4338ca; }
.booking-notice { text-align:center; font-size:12px; color:#9ca3af; }
.booking-msg { padding:12px 16px; border-radius:10px; font-size:14px; font-weight:500; }
.booking-msg.success { background:#f0fdf4; color:#16a34a; border:1px solid #bbf7d0; }
.booking-msg.error { background:#fef2f2; color:#dc2626; border:1px solid #fecaca; }

/* Mobile */
@media(max-width:768px) {
    .bp-wrap { grid-template-columns:1fr; }
    .bp-right { position:static; }
    .bp-slider img { height:220px; }
    .form-row { grid-template-columns:1fr; }
    .bp-title-row { flex-direction:column; }
}