.bap-app { max-width: 800px; margin: 0 auto; font-family: 'Inter', sans-serif; }
.bap-search-box { position: relative; margin-bottom: 24px; display: block; }

/* Proper box-sizing ensures padding doesn't break the layout */
#bap-search-input { width: 100%; box-sizing: border-box; padding: 16px 50px 16px 20px; font-size: 16px; border: 2px solid #E2E8F0; border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); transition: border-color 0.3s; }
#bap-search-input:focus { border-color: #FF6600; outline: none; }

/* Mic perfectly centered vertically */
#bap-mic-btn { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); background: none; border: none; color: #718096; cursor: pointer; padding: 8px; border-radius: 50%; transition: all 0.3s; display: flex; align-items: center; justify-content: center; }
#bap-mic-btn:hover { color: #FF6600; background: #FFF8F3; }
#bap-mic-btn.recording { color: #fff; background: #FF0000; animation: pulse 1.5s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(255, 0, 0, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 0, 0, 0); } }

.bap-autocomplete-dropdown { position: absolute; top: 100%; left: 0; right: 0; background: #fff; border: 1px solid #E2E8F0; border-radius: 8px; margin-top: 4px; box-shadow: 0 10px 15px rgba(0,0,0,0.1); z-index: 100; max-height: 250px; overflow-y: auto; }
.bap-autocomplete-dropdown.hidden { display: none; }
.bap-search-item { padding: 12px 20px; cursor: pointer; border-bottom: 1px solid #f1f5f9; }
.bap-search-item:hover { background: #FFF8F3; color: #FF6600; font-weight: 600; }

.bap-selectors { display: flex; gap: 20px; margin-bottom: 30px; }
.bap-select-group { flex: 1; }
.bap-select-group label { display: block; font-size: 13px; font-weight: 700; color: #4A0E17; text-transform: uppercase; margin-bottom: 8px; }
.bap-select-group select { width: 100%; box-sizing: border-box; padding: 14px; border: 1px solid #E2E8F0; border-radius: 8px; font-size: 15px; background: #fff; cursor: pointer; }
.bap-select-group select:focus { border-color: #FF6600; outline: none; }

/* Card container - padding removed to let image touch edges */
.bap-details-card { background: #fff; border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); border: 1px solid rgba(0,0,0,0.05); margin-top: 20px; animation: fadeIn 0.4s ease; overflow: hidden; }
.bap-details-card.hidden { display: none; }

/* Image strictly locked to 16:9 ratio and centered perfectly */
.bap-card-banner { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center; border-bottom: 4px solid #FF6600; display: block; margin: 0; }

/* Inner padding for text content */
.bap-card-inner { padding: 30px; }

.bap-card-title { font-family: 'Basgira', serif; font-size: 28px; color: #4A0E17; margin: 0 0 15px 0; display: inline-block; }
.bap-card-desc { font-size: 15px; line-height: 1.7; color: #4A5568; margin-bottom: 25px; }
.bap-prices { display: flex; gap: 20px; background: #FAF7F2; padding: 20px; border-radius: 12px; margin-bottom: 25px; border: 1px dashed rgba(255,102,0,0.4); }
.bap-price-box { flex: 1; }
.bap-price-box span { display: block; font-size: 12px; text-transform: uppercase; font-weight: 700; color: #718096; margin-bottom: 4px; }
.bap-price-box strong { font-size: 18px; color: #FF6600; }
.bap-actions { display: flex; gap: 15px; }
.bap-btn { padding: 14px 24px; border-radius: 8px; font-weight: 600; text-decoration: none; cursor: pointer; text-align: center; font-size: 15px; transition: all 0.2s; }
.bap-btn-pdf { border: 1px solid #CBD5E0; color: #2D3748; background: #fff; }
.bap-btn-pdf:hover { border-color: #FF6600; color: #FF6600; }
.bap-btn-book { background: #FF6600; color: #fff; flex: 1; border: none; }
.bap-btn-book:hover { background: #e05a00; }

@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 600px) { 
    .bap-selectors, .bap-prices, .bap-actions { flex-direction: column; } 
    .bap-card-inner { padding: 20px; }
}