/* =====================================================================
   PUEBLER — Plataforma comercial: panel de negocio, perfil comercial y consultas
   ===================================================================== */
.pb-link-btn { background: none; border: 0; padding: 0; color: var(--puebler-text-muted); font-weight: 600; cursor: pointer; display: inline-flex; gap: 4px; align-items: center; }
.pb-link-btn:hover { color: var(--puebler-blue-dark); text-decoration: underline; }
.pb-input-sm { padding: 6px 10px; font-size: .84rem; }

/* --- Panel: encabezado y navegación --- */
.bz-head-inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.bz-head-id { display: flex; gap: 14px; align-items: center; min-width: 0; }
.bz-title { font-size: 1.45rem; font-weight: 800; letter-spacing: -.4px; margin: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bz-head-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.bz-switch .pb-input { padding: 7px 34px 7px 12px; font-size: .86rem; min-width: 200px; }
.bz-layout { display: grid; grid-template-columns: 236px minmax(0, 1fr); align-items: start; min-height: 60vh; background: var(--puebler-surface); }
.bz-nav { position: sticky; top: var(--topbar-h); display: flex; flex-direction: column; padding: 16px 0; border-right: 1px solid var(--puebler-border); background: var(--puebler-surface); min-height: calc(100vh - var(--topbar-h)); }
.bz-nav a { display: flex; align-items: center; gap: 10px; padding: 10px 22px; color: var(--puebler-text); font-weight: 600; font-size: .92rem; border-left: 3px solid transparent; }
.bz-nav a:hover { background: var(--puebler-surface-2); color: var(--puebler-text); }
.bz-nav a.active { border-left-color: var(--puebler-blue); color: var(--puebler-blue-dark); background: var(--puebler-blue-light); }
.bz-nav a i { font-size: 1.05rem; width: 20px; text-align: center; }
.bz-nav a b { margin-left: auto; background: var(--puebler-coral); color: #fff; border-radius: 999px; font-size: .72rem; padding: 1px 8px; }
.bz-main { padding: 24px 28px 56px; min-width: 0; background: var(--puebler-surface); }
.bz-section-head { margin-bottom: 14px; }
.bz-section-head h2 { font-size: 1.3rem; font-weight: 800; margin: 4px 0 4px; }
.bz-section-head p { color: var(--puebler-text-muted); margin: 0; max-width: 760px; }
.bz-h3 { font-size: 1.02rem; font-weight: 800; margin: 0 0 10px; display: flex; gap: 8px; align-items: center; }
.bz-h4 { font-size: .98rem; font-weight: 800; }
.bz-legend { font-size: .9rem; font-weight: 700; margin-bottom: 8px; }
@media (max-width: 991px) {
  .bz-layout { grid-template-columns: minmax(0, 1fr); }
  .bz-nav { position: sticky; top: var(--topbar-h); z-index: 5; flex-direction: row; overflow-x: auto; padding: 0; border-right: 0; border-bottom: 1px solid var(--puebler-border); min-height: 0; scrollbar-width: none; }
  .bz-nav::-webkit-scrollbar { display: none; }
  .bz-nav a { border-left: 0; border-bottom: 3px solid transparent; padding: 12px 14px; white-space: nowrap; font-size: .86rem; }
  .bz-nav a.active { border-bottom-color: var(--puebler-blue); }
  .bz-main { padding: 18px 16px 48px; }
}

/* --- Indicadores, alertas y condiciones --- */
.bz-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); border-top: 1px solid var(--puebler-border); border-bottom: 1px solid var(--puebler-border); margin: 6px 0 18px; }
.bz-kpis > div { padding: 14px 16px 14px 0; display: flex; flex-direction: column; gap: 2px; }
.bz-kpis > div + div { padding-left: 16px; border-left: 1px solid var(--puebler-border-soft); }
.bz-kpis span { font-size: .8rem; color: var(--puebler-text-muted); font-weight: 600; }
.bz-kpis strong { font-size: 1.6rem; font-weight: 800; letter-spacing: -.5px; line-height: 1.1; }
.bz-kpis small { font-size: .76rem; color: var(--puebler-text-muted); }
.bz-kpis-inline { margin-top: 0; }
@media (max-width: 575px) { .bz-kpis > div + div { padding-left: 0; border-left: 0; } .bz-kpis > div { border-bottom: 1px solid var(--puebler-border-soft); } }
.bz-alerts { list-style: none; padding: 0; margin: 0 0 16px; display: grid; gap: 6px; }
.bz-alerts li { display: flex; gap: 10px; align-items: center; padding: 10px 14px; border-left: 4px solid var(--puebler-coral); background: color-mix(in srgb, var(--puebler-coral) 7%, var(--puebler-surface)); font-weight: 600; font-size: .92rem; }
.bz-alerts i { color: var(--puebler-coral); }
.bz-conds { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--puebler-border); }
.bz-conds > li { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 4px 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--puebler-border-soft); }
.bz-conds > li > i { font-size: 1.25rem; color: var(--puebler-text-muted); }
.bz-conds > li.is-on > i { color: var(--puebler-green); }
.bz-conds strong { display: block; }
.bz-conds span { font-size: .86rem; color: var(--puebler-text-muted); }
.bz-cond-state { text-align: right; }
.bz-cond-form { grid-column: 2 / -1; margin-top: 8px; max-width: 640px; }
@media (max-width: 575px) { .bz-conds > li { grid-template-columns: 24px minmax(0, 1fr); } .bz-cond-state { grid-column: 2; text-align: left; } }
.bz-note { display: flex; gap: 14px; padding: 14px 16px; border-left: 4px solid var(--puebler-yellow); background: color-mix(in srgb, var(--puebler-yellow) 12%, var(--puebler-surface)); margin-bottom: 14px; }
.bz-note > i { font-size: 1.3rem; color: #9A6B00; }
.bz-badge { background: var(--puebler-coral); color: #fff; border-radius: 999px; font-size: .74rem; padding: 2px 8px; flex-shrink: 0; }
.bz-table-wrap { overflow-x: auto; }

/* --- Mensajes --- */
.bz-inbox .pb-row-link { padding: 12px 8px; border-radius: 0; }
.bz-inbox .is-unread strong { color: var(--puebler-blue-dark); }
.bz-chat { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.bz-chat li { max-width: min(640px, 92%); padding: 10px 14px; border-radius: 4px 14px 14px 14px; background: var(--puebler-surface-2); border: 1px solid var(--puebler-border-soft); }
.bz-chat li.is-biz { align-self: flex-start; border-left: 3px solid var(--puebler-blue); }
.bz-chat li.is-me { align-self: flex-end; border-radius: 14px 4px 14px 14px; background: var(--puebler-blue-light); }
.bz-chat-meta { display: flex; gap: 10px; justify-content: space-between; font-size: .8rem; margin-bottom: 4px; }
.bz-chat-meta time { color: var(--puebler-text-muted); white-space: nowrap; }
.bz-chat-body { font-size: .94rem; line-height: 1.5; overflow-wrap: anywhere; }
.bz-reply { margin-top: 18px; }
.bz-thread-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--puebler-border); }

/* --- Reseñas --- */
.bz-stars { color: var(--puebler-gold); letter-spacing: 1px; font-size: .82rem; white-space: nowrap; }
.bz-reply-pub { margin: 8px 0 4px; padding: 8px 12px; border-left: 3px solid var(--puebler-blue); background: var(--puebler-surface-2); font-size: .9rem; }
.bz-rate { display: inline-flex; flex-direction: row-reverse; gap: 2px; border: 0; padding: 0; margin: 0 0 10px; }
.bz-rate legend { float: left; width: auto; font-size: .9rem; font-weight: 700; margin: 0 10px 0 0; }
.bz-rate input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.bz-rate label { font-size: 1.5rem; color: var(--puebler-border); cursor: pointer; padding: 0 2px; }
.bz-rate input:checked ~ label, .bz-rate label:hover, .bz-rate label:hover ~ label { color: var(--puebler-gold); }
.bz-rate input:focus-visible + label { outline: 2px solid var(--puebler-blue); outline-offset: 2px; border-radius: 4px; }

/* --- Estadísticas --- */
.bz-chart { margin: 4px 0 18px; }
.bz-chart figcaption { font-size: .9rem; margin-bottom: 8px; }
.bz-bars { display: flex; align-items: flex-end; gap: 2px; height: 140px; border-bottom: 1px solid var(--puebler-border); position: relative; }
.bz-bar { flex: 1; height: 100%; display: flex; align-items: flex-end; position: relative; cursor: default; outline: none; }
.bz-bar i { display: block; width: 100%; height: max(var(--h), 1px); background: var(--puebler-blue); border-radius: 4px 4px 0 0; }
.bz-bar.is-phys i { background: var(--puebler-mountain); }
.bz-bar:hover i, .bz-bar:focus-visible i { opacity: .8; }
.bz-bar:hover::after, .bz-bar:focus-visible::after { content: attr(data-tip); position: absolute; bottom: calc(var(--h) + 8px); left: 50%; transform: translateX(-50%); background: var(--puebler-navy); color: var(--puebler-surface); font-size: .76rem; font-weight: 600; padding: 4px 8px; border-radius: 6px; white-space: nowrap; z-index: 2; pointer-events: none; }
.bz-bars-axis { display: flex; justify-content: space-between; font-size: .76rem; color: var(--puebler-text-muted); margin-top: 4px; }
.bz-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0; margin: 0 0 12px; }
.bz-metrics > div { display: flex; justify-content: space-between; gap: 10px; padding: 9px 14px 9px 0; border-bottom: 1px solid var(--puebler-border-soft); font-size: .88rem; }
.bz-metrics dt { font-weight: 600; color: var(--puebler-text-muted); }
.bz-metrics dd { margin: 0; font-weight: 800; }
.bz-rank { padding-left: 18px; margin: 0; }
.bz-rank li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; font-size: .9rem; }
.bz-table-view { margin-top: 10px; }
.bz-table-view summary { cursor: pointer; font-weight: 700; font-size: .88rem; color: var(--puebler-blue-dark); }

/* --- Equipo y bitácora --- */
.bz-log { list-style: none; padding: 0; margin: 0; font-size: .86rem; }
.bz-log li { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--puebler-border-soft); }
.bz-log time { color: var(--puebler-text-muted); }

/* --- Promociones --- */
.bz-highlight { display: inline-block; background: var(--puebler-coral); color: #fff; font-size: .74rem; font-weight: 800; padding: 2px 8px; border-radius: 6px; vertical-align: middle; }
.bz-promo-strip { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 0; border-top: 1px solid var(--puebler-border); }
.bz-promo-strip li { display: flex; flex-direction: column; gap: 2px; padding: 10px 0 10px 14px; border-bottom: 1px solid var(--puebler-border-soft); border-left: 3px solid var(--puebler-coral); }

/* --- Perfil: horario, galería, mapa --- */
.bz-hours { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px 16px; }
.bz-hours label { display: flex; flex-direction: column; gap: 3px; font-size: .84rem; font-weight: 600; }
.bz-map { height: 280px; border: 1px solid var(--puebler-border); border-radius: 10px; margin-bottom: 8px; }
.bz-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.bz-gallery figure { margin: 0; }
.bz-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; background: var(--puebler-border); }
.bz-gallery figcaption { margin-top: 6px; }
.bz-practice-icon { font-size: 1.4rem; color: var(--puebler-mountain); }
.bz-multi { min-height: 180px; }
.bz-exp-counts { display: flex; gap: 14px; flex-wrap: wrap; color: var(--puebler-text-muted); margin-top: 2px; }

/* --- Perfil público del negocio --- */
.bz-summary-top { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.bz-tagline { font-size: 1.02rem; font-weight: 600; margin: 10px 0 4px; }
.bz-rating { display: inline-flex; gap: 4px; align-items: center; font-weight: 800; color: var(--puebler-text); font-size: .9rem; }
.bz-rating i { color: var(--puebler-gold); }
.bz-rating span { font-weight: 600; color: var(--puebler-text-muted); font-size: .82rem; }
.bz-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.js-bz-save.is-on { border-color: var(--puebler-blue); color: var(--puebler-blue-dark); }
.bz-contact { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--puebler-border-soft); max-width: 640px; }
.bz-strip { display: flex; gap: 8px; overflow-x: auto; margin: 0 -24px 16px; padding: 0 24px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.bz-strip figure { margin: 0; flex: 0 0 auto; scroll-snap-align: start; }
.bz-strip img { height: 180px; width: auto; max-width: 300px; object-fit: cover; border-radius: 8px; display: block; background: var(--puebler-border); }
.bz-strip figcaption { font-size: .78rem; color: var(--puebler-text-muted); margin-top: 4px; max-width: 280px; }
@media (max-width: 767px) { .bz-strip { margin: 0 -14px 14px; padding: 0 14px; } .bz-strip img { height: 150px; max-width: 240px; } }
.bz-hours-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 18px; margin: 0; font-size: .88rem; }
.bz-hours-list > div { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--puebler-border-soft); }
.bz-hours-list dt { font-weight: 600; }
.bz-hours-list dd { margin: 0; color: var(--puebler-text-muted); text-align: right; }
.bz-practices { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.bz-practices li { display: flex; gap: 12px; }
.bz-practices i { font-size: 1.2rem; color: var(--puebler-mountain); margin-top: 2px; }
.bz-route-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.bz-route-chips a { display: flex; gap: 8px; align-items: center; color: var(--puebler-text); }
.bz-route-chips span { display: flex; flex-direction: column; line-height: 1.2; font-size: .88rem; }
.bz-route-chips small { color: var(--puebler-text-muted); }
.bz-wall-title { font-size: .98rem; font-weight: 800; margin: 0; padding: 16px 24px 4px; display: flex; gap: 8px; align-items: center; }
@media (max-width: 767px) { .bz-wall-title { padding: 14px 14px 4px; } }
.bz-aside-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: .88rem; }
.bz-aside-list li { display: flex; gap: 10px; }
.bz-aside-list i { color: var(--puebler-blue-dark); }

/* Lo que cuentan los viajeros: columna lateral en escritorio, carrusel en móvil */
.bz-tp-list { list-style: none; padding: 0; margin: 0; }
.bz-tp { display: flex; gap: 10px; color: var(--puebler-text); }
.bz-tp:hover { color: var(--puebler-text); }
.bz-tp-img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; flex-shrink: 0; background: var(--puebler-border); }
.bz-tp-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bz-tp-author { display: flex; gap: 6px; align-items: center; font-size: .82rem; min-width: 0; }
.bz-tp-author strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bz-tp-author small { color: var(--puebler-text-muted); white-space: nowrap; }
.bz-tp-text { font-size: .86rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.bz-travelers-aside { padding: 20px 22px; border-bottom: 1px solid var(--puebler-border); }
.bz-travelers-aside .bz-tp-list li { padding: 10px 0; border-bottom: 1px solid var(--puebler-border-soft); }
.bz-travelers-aside .bz-tp-list li:last-child { border-bottom: 0; }
.bz-travelers-carousel { display: none; padding: 16px 0 14px; border-bottom: 1px solid var(--puebler-border); background: var(--puebler-surface); }
.bz-travelers-carousel .pf-sub { padding: 0 24px; }
.bz-travelers-carousel .bz-tp-list { display: flex; gap: 12px; overflow-x: auto; padding: 0 24px 6px; scroll-snap-type: x mandatory; scroll-padding: 0 24px; scrollbar-width: thin; }
.bz-travelers-carousel .bz-tp-list li { flex: 0 0 min(78%, 300px); scroll-snap-align: start; }
.bz-travelers-carousel .bz-tp { flex-direction: column; }
.bz-travelers-carousel .bz-tp-img { width: 100%; height: 150px; }
@media (max-width: 1100px) {
  .bz-travelers-carousel { display: block; }
  .bz-travelers-aside { display: none; }
}
@media (max-width: 767px) {
  .bz-travelers-carousel .pf-sub { padding: 0 14px; }
  .bz-travelers-carousel .bz-tp-list { padding: 0 14px 6px; scroll-padding: 0 14px; }
}

/* Mapa: negocios verificados destacados */
.bz-map-pin { width: 26px; height: 26px; border-radius: 50% 50% 50% 4px; transform: rotate(-45deg); background: var(--puebler-navy); border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.3); display: flex; align-items: center; justify-content: center; }
.bz-map-pin i { transform: rotate(45deg); color: #fff; font-size: .78rem; }
.bz-map-pin.is-stamp { background: var(--puebler-coral); }

@media print {
  .bz-nav, .bz-head-actions, .pb-topbar, .pb-bottom-nav { display: none !important; }
  .bz-layout { display: block; }
}
