.tbw-quick-book {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 14px 16px;
    max-width: 340px;
    background: #fff;
}
.tbw-quick-book label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 600;
}
.tbw-quick-book input[type="text"],
.tbw-quick-book input[type="number"],
.tbw-quick-book input[type="date"] {
    width: 100%;
    padding: 6px 8px;
    margin-top: 2px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-weight: 400;
    font-size: 13px;
    box-sizing: border-box;
}
.tbw-duration-note {
    font-size: 13px;
    color: #555;
    margin-bottom: 12px;
    padding: 8px 10px;
    background: #f7f2f1;
    border-radius: 6px;
    line-height: 1.4;
}
.tbw-duration-note strong { color: #c0392b; }

/* Price / Price for child header, 2 columns, giống bố cục mẫu */
.tbw-price-header {
    display: flex;
    justify-content: space-between;
    text-align: center;
    margin-bottom: 16px;
}
.tbw-price-col { flex: 1; }
.tbw-price-icon { display: block; font-size: 18px; margin-bottom: 4px; color: #e8a33d; }
.tbw-price-label { font-size: 13px; color: #333; margin-bottom: 4px; }
.tbw-price-amount { font-size: 20px; font-weight: 700; color: #111; }

/* Mỗi dòng input có icon bên trái, giống mẫu (calendar/people/child) */
.tbw-icon-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.tbw-row-icon {
    font-size: 16px;
    color: #e8a33d;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
}
.tbw-icon-row input {
    flex: 1;
    margin-top: 0 !important;
}

.tbw-total-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #333;
    margin: 4px 0 14px;
}
.tbw-total-row .tbw-row-icon { color: #e8a33d; }
.tbw-total-amount {
    margin-left: auto;
    color: #c0392b;
    font-size: 18px;
}
.tbw-book-now {
    width: 100%;
    background: #c0392b;
    color: #fff;
    border: none;
    padding: 11px;
    font-weight: 700;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
}
.tbw-book-now:hover { background: #a93226; }
.tbw-book-now:disabled { opacity: .6; cursor: not-allowed; }

/* Stops any attention effect (pulse/shake/tada/...) once the visitor starts filling the form */
.tbw-effect-off { animation: none !important; }

/* ============================================================
 * PRICE CARD (dùng trên trang danh sách /tours/, dưới mỗi card có sẵn)
 * ============================================================ */
.tbw-price-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 0;
    border-top: 1px solid #eee;
    margin-top: 10px;
}
.tbw-price-card-amount {
    font-weight: 700;
    font-size: 18px;
    color: #333;
}
.tbw-price-card-unit {
    font-weight: 400;
    font-size: 13px;
    color: #777;
}
.tbw-price-card-btn {
    background: #c0392b;
    color: #fff !important;
    text-decoration: none;
    font-weight: 700;
    padding: 10px 20px;
    border-radius: 30px;
    font-size: 13px;
    white-space: nowrap;
}
.tbw-price-card-btn:hover { background: #a93226; color:#fff; }

/* ============================================================
 * NÚT BOOK NOW NỔI (MOBILE) + MODAL POPUP
 * ============================================================ */
.tbw-floating-pos {
    display: none; /* hidden by default, JS adds .tbw-floating-visible */
    position: fixed;
    z-index: 9999;
}
@media (max-width: 768px) {
    .tbw-floating-pos.tbw-floating-visible { display: block; }
}

.tbw-floating-btn {
    border: none;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0,0,0,.25);
    font-size: 14px;
    display: block;
}

/* preset: rectangle (default) */
.tbw-preset-rectangle,
.tbw-preset-custom {
    padding: 12px 22px;
    border-radius: 30px;
}

/* preset: circle - small round icon */
.tbw-preset-circle {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    padding: 0;
    font-size: 11px;
    line-height: 1.1;
}

/* preset: bar - full-width bottom bar */
.tbw-preset-bar {
    padding: 16px;
    border-radius: 0;
    text-align: center;
    font-size: 16px;
    width: 100vw;
}

/* position wrapper (transform used here only for centering, never for the shake/bounce
   effect animation, which lives on .tbw-floating-btn instead — avoids transform conflicts) */
.tbw-floating-bottom-right { bottom: 20px; right: 16px; }
.tbw-floating-bottom-left  { bottom: 20px; left: 16px; }
.tbw-floating-bottom-center { bottom: 0; left: 0; right: 0; }
.tbw-floating-bottom-center .tbw-preset-bar { width: 100%; }
.tbw-floating-bottom-center:not(:has(.tbw-preset-bar)) { bottom: 20px; left: 50%; margin-left: -55px; }
.tbw-floating-middle-right { top: 50%; right: 0; margin-top: -28px; }
.tbw-floating-middle-left  { top: 50%; left: 0; margin-top: -28px; }
/* Lưu ý: nếu có inline style="top:calc(50% + Npx)" (từ Settings offset), nó sẽ ghi đè top ở trên
   nhưng margin-top: -28px vẫn giữ nguyên để canh giữa chiều cao nút, không bị lệch thêm. */
.tbw-floating-middle-right .tbw-preset-rectangle,
.tbw-floating-middle-right .tbw-preset-custom { border-radius: 8px 0 0 8px; }
.tbw-floating-middle-left .tbw-preset-rectangle,
.tbw-floating-middle-left .tbw-preset-custom { border-radius: 0 8px 8px 0; }

/* modal overlay */
.tbw-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.tbw-modal-overlay.tbw-modal-open {
    display: flex;
}
.tbw-modal-box {
    position: relative;
    background: #fff;
    border-radius: 10px;
    max-height: 90vh;
    overflow-y: auto;
    width: 100%;
    max-width: 360px;
    padding: 0;
}
.tbw-modal-close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: auto;
    height: auto;
    background: none;
    border: none;
    border-radius: 0;
    font-size: 26px;
    font-weight: bold;
    line-height: 1;
    cursor: pointer;
    color: #c0392b;
    z-index: 5;
    padding: 0;
    margin: 0;
}
.tbw-modal-box .tbw-quick-book {
    border: none;
    padding: 8px 16px 16px;
    max-width: 100%;
}
