.booking-hero { padding:4rem 0 2rem; max-width:760px; }
.booking-hero p:last-child { margin-top:1rem; }
.room-selection { padding-bottom:3rem; }
.booking-heading { margin-bottom:2rem; }
.room-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.room-card { position:relative; overflow:hidden; border-radius:28px; min-height:420px; box-shadow:var(--shadow); }
.room-card img { height:100%; }
.overlay-content { position:absolute; inset:auto 0 0 0; padding:1.5rem; background:linear-gradient(180deg, transparent, rgba(17,13,10,0.88)); color:var(--white); }
.overlay-content p { color:rgba(255,255,255,0.8); margin:.4rem 0 1rem; }
.booking-wrapper { display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; align-items:start; padding-bottom:5rem; }
.booking-left, .booking-card, .faq-block { background:var(--surface); border-radius:28px; box-shadow:var(--shadow); border:1px solid var(--line); padding:2rem; }
.info-box { background:var(--bg); border-radius:22px; padding:1.5rem; margin:1.4rem 0 1.5rem; }
.detail-row { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.detail-row small { color:var(--accent-dark); font-size:.76rem; letter-spacing:.16em; }
.notes ul { padding-left:1.1rem; margin-top:1rem; }
.notes li { margin-bottom:.75rem; color:var(--muted); }
.booking-card { display:flex; flex-direction:column; gap:.9rem; }
.booking-card input { border:1px solid var(--line); border-radius:14px; padding:1rem; background:#fff; }
.booking-card label { font-weight:600; margin-top:.25rem; }
.booking-extras { padding-bottom:5rem; }
.faq-list { display:grid; gap:1rem; }
.faq-list details { background:var(--bg); border-radius:18px; padding:1rem 1.15rem; }
.faq-list summary { cursor:pointer; font-weight:700; }
.faq-list p { margin-top:.8rem; }
@media (max-width:980px) { .room-grid, .booking-wrapper { grid-template-columns:1fr; } }