.customer-app { background: #faf7f2; min-height: 100vh; }
.customer-navbar .nav-link.active { font-weight: 600; color: #fff !important; border-bottom: 2px solid #f0a500; }
.customer-content { max-width: 1140px; }

.svc-card, .priest-card, .booking-card { border: 1px solid #eadfce; border-radius: .75rem; background: #fff;
  transition: box-shadow .15s ease, transform .15s ease; }
.svc-card:hover, .priest-card:hover { box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.08); transform: translateY(-2px); }
.svc-card .price-tag, .listing-price { font-weight: 700; color: #b8590a; }
.category-pill { cursor: pointer; }
.category-pill.active { background: #b8590a !important; color: #fff !important; border-color: #b8590a !important; }

.best-match { border: 2px solid #f0a500; box-shadow: 0 0 0 4px rgba(240,165,0,.15); }
.best-match-badge { background: #f0a500; color: #442c00; font-weight: 700; }

.step-dot { width: 1.75rem; height: 1.75rem; border-radius: 50%; display: inline-flex; align-items: center;
  justify-content: center; background: #eee; color: #666; font-size: .85rem; }
.step-dot.active { background: #b8590a; color: #fff; }

.timeline-item { border-left: 2px solid #eadfce; padding-left: 1rem; margin-left: .4rem; padding-bottom: .75rem; position: relative; }
.timeline-item::before { content: ""; position: absolute; left: -6px; top: 2px; width: 10px; height: 10px;
  border-radius: 50%; background: #b8590a; }

.empty-state { text-align: center; padding: 3rem 1rem; color: #777; }

/* ---- Payment page: big tappable options, sticky pay bar on phones ---- */
.pay-option { display: flex; align-items: center; gap: .85rem; width: 100%; padding: .9rem 1rem; margin-bottom: .6rem;
  border: 2px solid #eadfce; border-radius: .75rem; background: #fff; cursor: pointer; min-height: 64px;
  -webkit-tap-highlight-color: transparent; transition: border-color .12s ease, background .12s ease; }
.pay-option:hover { border-color: #f0a500; }
.pay-option.selected { border-color: #b8590a; background: #fff8ef; }
.pay-option-icon { font-size: 1.6rem; color: #b8590a; flex: 0 0 auto; }
.pay-option-text { flex: 1 1 auto; min-width: 0; }
.pay-option-check { color: #b8590a; font-size: 1.25rem; opacity: 0; flex: 0 0 auto; }
.pay-option.selected .pay-option-check { opacity: 1; }

@media (max-width: 767.98px) {
  .customer-content { padding-left: .75rem; padding-right: .75rem; }
  .pay-page .pay-bar { position: sticky; bottom: 0; background: #fff; margin: 0 -1rem -1rem; padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom));
    border-top: 1px solid #eadfce; box-shadow: 0 -4px 12px rgba(0,0,0,.06); z-index: 5; }
  .pay-page .btn-lg { min-height: 52px; font-size: 1.05rem; }
  .pay-page { padding-bottom: .5rem; }
}
