/* หน้าบ้าน — ส่วนเสริมจาก Tailwind */
@media (max-width: 1023px) { body { padding-bottom: 70px; } }
.pb-safe { padding-bottom: env(safe-area-inset-bottom); }
.banner-text-shadow { text-shadow: 0 4px 16px rgba(15, 23, 42, .8); }
.hover-card-effect { transition: all .5s cubic-bezier(.4, 0, .2, 1); }
.hover-card-effect:hover { transform: translateY(-8px); box-shadow: 0 20px 40px -12px rgba(15, 23, 42, .15); }
.search-box-gradient { background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); }
.hero-gradient { background: linear-gradient(135deg, #0f172a 0%, #1e293b 60%, #0f172a 100%); }
.premium-text-gradient { background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-image: linear-gradient(to right, #fbbf24, #f59e0b); }
.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
.slider-container { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1.5rem; padding-bottom: 2rem; }
.slider-item { flex-shrink: 0; scroll-snap-align: center; }
.modal.flex { animation: modalIn .25s ease-out; }
@keyframes modalIn { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
.toast { animation: toastIn .3s ease-out; }
@keyframes toastIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
select.f-input, select.f-input-dark, select.hero-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b' stroke-width='3'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 14px; padding-right: 2.5rem; }
details > summary::-webkit-details-marker { display: none; }
.quote:empty { display: none; }
.quote .q-status { font-weight: 800; margin-bottom: .25rem; }
.quote .q-line { color: #94a3b8; font-weight: 700; }
.quote .q-total { font-size: 1.5rem; font-weight: 900; font-style: italic; color: #60a5fa; line-height: 1.3; }
.quote .q-dep { color: #64748b; font-size: .8rem; font-weight: 700; }
.quote .q-fee { margin-top: .6rem; padding-top: .6rem; border-top: 1px dashed rgba(148, 163, 184, .4); color: #fbbf24; font-weight: 700; font-size: .85rem; }
.quote .q-fee .muted { color: #94a3b8; font-weight: 400; }
.quote.bad { background: rgba(239, 68, 68, .12) !important; border-color: rgba(239, 68, 68, .35) !important; color: #fca5a5; }
/* ดาวรีวิว: ใช้ flex-row-reverse เพื่อให้ ~ เลือกดาวทางซ้ายได้ */
.stars label:hover, .stars label:hover ~ label, .stars input:checked ~ label { color: #f59e0b; }
button:disabled { opacity: .45; cursor: not-allowed; }
input[type=datetime-local]::-webkit-calendar-picker-indicator { cursor: pointer; }
/* ปฏิทิน flatpickr ให้เข้ากับธีม */
.flatpickr-calendar { font-family: 'Plus Jakarta Sans', 'Kanit', sans-serif; border-radius: 1.2rem !important; box-shadow: 0 20px 40px rgba(15, 23, 42, .25) !important; z-index: 9999 !important; }
.flatpickr-day.selected, .flatpickr-day.selected:hover { background: #2563eb !important; border-color: #2563eb !important; }
input.flatpickr-input[readonly] { cursor: pointer; }
.f-input-dark::-webkit-calendar-picker-indicator { filter: invert(1); }
