/* ============================================
   BUSINESS PROFILE PAGE
   ============================================ */

/* ─── Layout ───────────────────────────────────────────────────── */
.biz-profile-container {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap:     32px;
  padding-top:    32px;
  padding-bottom: 64px;
  align-items:    start;
}

@media (max-width: 860px) {
  .biz-profile-container {
    grid-template-columns: 1fr;
    padding-top: 16px;
  }
}

/* ─── Header ───────────────────────────────────────────────────── */
.biz-header {
  display:     flex;
  align-items: flex-start;
  gap:         16px;
  margin-bottom: 20px;
}

.biz-logo {
  width:         80px;
  height:        80px;
  border-radius: 12px;
  object-fit:    cover;
  flex-shrink:   0;
  border:        1px solid var(--dir-border, #e5e7eb);
}

.biz-name {
  font-size:   1.7rem;
  font-weight: 800;
  color:       #1a1a1a;
  margin:      0 0 6px;
  line-height: 1.2;
}

/* ── Badges — two-tone split design ──────────────────────────── */
.biz-badges {
  display:       flex;
  align-items:   center;
  gap:           8px;
  flex-wrap:     wrap;
  margin-bottom: 10px;
}

/* Base badge — split pill, no border-radius on inner seam */
.biz-badge {
  display:       inline-flex;
  align-items:   stretch;
  border-radius: 6px;
  overflow:      hidden;
  white-space:   nowrap;
  box-shadow:    0 1px 3px rgba(0,0,0,0.12);
}

/* Left slab — label (FUNDADOR / MIEMBRO / VERIFICADO) */
.biz-badge-left {
  display:        flex;
  align-items:    center;
  padding:        5px 9px;
  font-size:      0.6rem;
  font-weight:    800;
  letter-spacing: 1px;
  text-transform: uppercase;
  line-height:    1;
}

/* Right slab — number or checkmark */
.biz-badge-right {
  display:     flex;
  align-items: center;
  padding:     5px 10px;
  font-size:   0.82rem;
  font-weight: 900;
  line-height: 1;
}

/* ── Glint animation ── */
@keyframes biz-badge-glint {
  0%   { transform: translateX(-180%) skewX(-20deg); opacity: 0; }
  8%   { opacity: 1; }
  42%  { transform: translateX(280%) skewX(-20deg); opacity: 0; }
  100% { transform: translateX(280%) skewX(-20deg); opacity: 0; }
}

.biz-badge-left,
.biz-badge-right { position: relative; overflow: hidden; }

.biz-badge-left::after,
.biz-badge-right::after {
  content:    '';
  position:   absolute;
  top: -50%; left: 0;
  width:      28%;
  height:     200%;
  transform:  translateX(-180%) skewX(-20deg);
  animation:  biz-badge-glint 3.5s ease-in-out infinite;
  pointer-events: none;
}
.biz-badge-right::after { animation-delay: 0.12s; }

/* Acero & Platino — Fundador #1–100 (most prestigious)
   Dark charcoal left, platinum right — number pops on light bg */
.biz-badge--amber { box-shadow: 0 2px 10px rgba(0,0,0,0.2); }
.biz-badge--amber .biz-badge-left  { background: #1f2937; color: #e2e8f0; }
.biz-badge--amber .biz-badge-right { background: #f1f5f9; color: #0f172a; }
.biz-badge--amber .biz-badge-left::after {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
}
.biz-badge--amber .biz-badge-right::after {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
}

/* Dark Slate & Sage — Miembro Fundador #101–500 */
.biz-badge--green { box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
.biz-badge--green .biz-badge-left  { background: #1f2937; color: #9ca3af; }
.biz-badge--green .biz-badge-right { background: #f8fafc; color: #374151; }
.biz-badge--green .biz-badge-left::after {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  animation-duration: 4s;
}
.biz-badge--green .biz-badge-right::after {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.55), transparent);
  animation-duration: 4s;
}

/* Midnight Navy & Ice — Verificado (manual / future Pro) */
.biz-badge--blue { box-shadow: 0 2px 8px rgba(30,58,138,0.2); }
.biz-badge--blue .biz-badge-left  { background: #1e3a8a; color: #bfdbfe; }
.biz-badge--blue .biz-badge-right { background: #eff6ff; color: #1e40af; }
.biz-badge--blue .biz-badge-left::after {
  background: linear-gradient(90deg, transparent, rgba(191,219,254,0.3), transparent);
  animation-duration: 4.5s;
}
.biz-badge--blue .biz-badge-right::after {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
  animation-duration: 4.5s;
}

.biz-meta {
  display:     flex;
  align-items: center;
  gap:         12px;
  flex-wrap:   wrap;
  margin-bottom: 8px;
}

.biz-category {
  background:  #e8f5ee;
  color:       #1A7A4A;
  font-size:   .8rem;
  font-weight: 600;
  padding:     3px 10px;
  border-radius: 50px;
}

.biz-location {
  display:     flex;
  align-items: center;
  gap:         4px;
  color:       #6b7280;
  font-size:   .85rem;
  fill:        #6b7280;
}

/* ─── Rating ───────────────────────────────────────────────────── */
.biz-rating {
  display:     flex;
  align-items: center;
  gap:         4px;
}

.biz-nopal { font-size: .95rem; }
.biz-nopal.empty { opacity: .3; }
.biz-rating-avg { font-weight: 700; color: #1A7A4A; font-size: .95rem; }
.biz-rating-count { color: #6b7280; font-size: .85rem; }
.biz-rating--none .biz-nopal-empty { opacity: .25; }
.biz-rating-new { color: #6b7280; font-size: .82rem; }

/* ─── Tags ─────────────────────────────────────────────────────── */
.biz-tags {
  display:       flex;
  flex-wrap:     wrap;
  gap:           6px;
  margin-bottom: 20px;
}

.biz-tag {
  background:   #e8f5ee;
  color:        #1A7A4A;
  font-size:    .78rem;
  padding:      4px 10px;
  border-radius: 50px;
  font-weight:  500;
}

/* ─── Carousel ──────────────────────────────────────────────────── */
.biz-carousel {
  position:      relative;
  margin-bottom: 24px;
  border-radius: 14px;
  overflow:      hidden;
  background:    #0c0c0c;
  user-select:   none;
  touch-action:  pan-y;
}

/* Stage — 16:9 aspect ratio */
.biz-carousel-stage {
  position:       relative;
  width:          100%;
  padding-bottom: 58%;
  overflow:       hidden;
}

/* Individual slides */
.biz-carousel-slide {
  position:       absolute;
  inset:          0;
  opacity:        0;
  pointer-events: none;
  z-index:        0;
  will-change:    transform, opacity;
}

.biz-carousel-slide.is-active {
  opacity:        1;
  pointer-events: auto;
  z-index:        2;
}

/* ── Transition keyframes ─────────────────────────────────────── */
.biz-carousel-slide.c-enter-right {
  animation: cEnterR 0.54s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.biz-carousel-slide.c-enter-left {
  animation: cEnterL 0.54s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.biz-carousel-slide.c-exit-left {
  animation: cExitL 0.54s cubic-bezier(0.22, 1, 0.36, 1) both;
  z-index: 1;
}
.biz-carousel-slide.c-exit-right {
  animation: cExitR 0.54s cubic-bezier(0.22, 1, 0.36, 1) both;
  z-index: 1;
}

@keyframes cEnterR {
  from { opacity: 0; transform: translateX(9%)  scale(1.05); }
  to   { opacity: 1; transform: translateX(0)   scale(1); }
}
@keyframes cEnterL {
  from { opacity: 0; transform: translateX(-9%) scale(1.05); }
  to   { opacity: 1; transform: translateX(0)   scale(1); }
}
@keyframes cExitL {
  from { opacity: 1; transform: translateX(0)   scale(1); }
  to   { opacity: 0; transform: translateX(-7%) scale(0.93); }
}
@keyframes cExitR {
  from { opacity: 1; transform: translateX(0)   scale(1); }
  to   { opacity: 0; transform: translateX(7%)  scale(0.93); }
}

.biz-carousel-img {
  position:   absolute;
  inset:      0;
  width:      100%;
  height:     100%;
  object-fit: cover;
  display:    block;
  cursor:     zoom-in;
}

/* ── Arrows ──────────────────────────────────────────────────── */
.biz-carousel-arrow {
  position:   absolute;
  top:        50%;
  transform:  translateY(-60%);
  z-index:    10;
  width:      42px;
  height:     42px;
  border-radius: 50%;
  border:     none;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(10px);
  color:      #1a1a1a;
  display:    flex;
  align-items:   center;
  justify-content: center;
  cursor:     pointer;
  box-shadow: 0 2px 16px rgba(0,0,0,.25);
  transition: transform .2s cubic-bezier(.34,1.2,.64,1), background .15s, box-shadow .15s;
}
.biz-carousel-arrow--prev { left: 12px; }
.biz-carousel-arrow--next { right: 12px; }
.biz-carousel-arrow:hover {
  background:  #fff;
  transform:   translateY(-60%) scale(1.1);
  box-shadow:  0 4px 24px rgba(0,0,0,.35);
}
.biz-carousel-arrow:active { transform: translateY(-60%) scale(.96); }

/* ── Footer: thumbs + counter ───────────────────────────────── */
.biz-carousel-footer {
  position:        absolute;
  bottom:          0;
  left:            0;
  right:           0;
  display:         flex;
  align-items:     center;
  gap:             10px;
  padding:         10px 14px;
  background:      linear-gradient(to top, rgba(0,0,0,.72) 0%, transparent 100%);
  z-index:         8;
}

.biz-carousel-thumbs {
  display:    flex;
  gap:        5px;
  flex:       1;
  overflow:   hidden;
}

.biz-carousel-thumb {
  width:         46px;
  height:        30px;
  flex-shrink:   0;
  border-radius: 5px;
  overflow:      hidden;
  border:        2px solid transparent;
  padding:       0;
  cursor:        pointer;
  background:    transparent;
  opacity:       .55;
  transition:    border-color .2s, opacity .2s, transform .2s;
}
.biz-carousel-thumb.is-active {
  border-color: #fff;
  opacity:      1;
  transform:    scaleY(1.06);
}
.biz-carousel-thumb:hover:not(.is-active) { opacity: .8; }
.biz-carousel-thumb img {
  width:      100%;
  height:     100%;
  object-fit: cover;
  display:    block;
}

.biz-carousel-counter {
  color:          rgba(255,255,255,.85);
  font-size:      .72rem;
  font-weight:    700;
  letter-spacing: .06em;
  white-space:    nowrap;
}

/* ── Lightbox ─────────────────────────────────────────────────── */
.biz-lb {
  position:        fixed;
  inset:           0;
  background:      rgba(0,0,0,0);
  z-index:         10000;
  display:         flex;
  align-items:     center;
  justify-content: center;
  transition:      background .28s ease;
}
.biz-lb.is-open { background: rgba(0,0,0,.93); }

.biz-lb-img-wrap {
  transform:  scale(.82);
  opacity:    0;
  transition: transform .38s cubic-bezier(.34,1.26,.64,1), opacity .24s ease;
}
.biz-lb.is-open .biz-lb-img-wrap {
  transform: scale(1);
  opacity:   1;
}

.biz-lb-img {
  max-width:    90vw;
  max-height:   82vh;
  border-radius: 10px;
  display:       block;
  object-fit:    contain;
  box-shadow:    0 24px 80px rgba(0,0,0,.7);
}

.biz-lb-close {
  position:    fixed;
  top:         18px;
  right:       18px;
  width:       40px;
  height:      40px;
  border-radius: 50%;
  background:  rgba(255,255,255,.14);
  backdrop-filter: blur(8px);
  border:      1px solid rgba(255,255,255,.18);
  color:       #fff;
  font-size:   1.1rem;
  cursor:      pointer;
  display:     flex;
  align-items: center;
  justify-content: center;
  transition:  background .15s, transform .15s;
  z-index:     10001;
}
.biz-lb-close:hover { background: rgba(255,255,255,.24); transform: scale(1.08); }

.biz-lb-arrow {
  position:    fixed;
  top:         50%;
  transform:   translateY(-50%);
  width:       50px;
  height:      50px;
  border-radius: 50%;
  background:  rgba(255,255,255,.1);
  backdrop-filter: blur(10px);
  border:      1px solid rgba(255,255,255,.18);
  color:       #fff;
  cursor:      pointer;
  display:     flex;
  align-items: center;
  justify-content: center;
  transition:  background .15s, transform .15s;
  z-index:     10001;
}
.biz-lb-arrow:hover { background: rgba(255,255,255,.2); transform: translateY(-50%) scale(1.06); }
.biz-lb-arrow--prev { left:  20px; }
.biz-lb-arrow--next { right: 20px; }

.biz-lb-counter {
  position:    fixed;
  bottom:      22px;
  left:        50%;
  transform:   translateX(-50%);
  color:       rgba(255,255,255,.65);
  font-size:   .8rem;
  font-weight: 600;
  letter-spacing: .07em;
  z-index:     10001;
}

@media (max-width: 600px) {
  .biz-carousel-arrow { width: 34px; height: 34px; }
  .biz-carousel-thumb { width: 36px; height: 24px; }
  .biz-lb-arrow { width: 40px; height: 40px; }
  .biz-lb-arrow--prev { left: 8px; }
  .biz-lb-arrow--next { right: 8px; }
}

/* ─── Description ──────────────────────────────────────────────── */
.biz-description {
  margin-bottom: 24px;
  background:    #f9fafb;
  border:        1px solid #e5e7eb;
  border-left:   3px solid #1A7A4A;
  border-radius: 12px;
  padding:       20px 22px 22px;
}

.biz-lang-toggle {
  display:       flex;
  gap:           6px;
  margin-bottom: 16px;
}

.biz-lang-btn {
  padding:       6px 18px;
  border:        1px solid #e5e7eb;
  border-radius: 50px;
  background:    #fff;
  color:         #6b7280;
  font-size:     .82rem;
  font-weight:   600;
  cursor:        pointer;
  transition:    all .18s;
  box-shadow:    0 1px 3px rgba(0,0,0,.06);
}

.biz-lang-btn:hover:not(.active) {
  border-color: #1A7A4A;
  color:        #1A7A4A;
}

.biz-lang-btn.active {
  background:   #1A7A4A;
  border-color: #1A7A4A;
  color:        #fff;
  box-shadow:   0 2px 8px rgba(26,122,74,.25);
}

.biz-desc-text {
  font-size:      1rem;
  line-height:    1.75;
  color:          #374151;
  margin:         0;
  letter-spacing: .01em;
  white-space:    pre-line;
}

/* ─── Section title (comments heading) ─────────────────────────── */
.biz-section-title {
  font-size:     1rem;
  font-weight:   700;
  color:         #1a1a1a;
  margin:        0 0 14px;
  display:       flex;
  align-items:   center;
  gap:           8px;
}

/* ─── Segmented tab control ─────────────────────────────────────── */
.biz-seg {
  display:       flex;
  background:    #f3f4f6;
  border-radius: 12px;
  padding:       4px;
  gap:           4px;
  margin-bottom: 0;
}

.biz-seg-btn {
  flex:          1;
  display:       flex;
  align-items:   center;
  justify-content: center;
  gap:           6px;
  padding:       9px 12px;
  border:        none;
  border-radius: 9px;
  background:    transparent;
  color:         #6b7280;
  font-size:     .85rem;
  font-weight:   600;
  cursor:        pointer;
  transition:    all .18s cubic-bezier(.4,0,.2,1);
  white-space:   nowrap;
}

.biz-seg-btn--active {
  background:  #fff;
  color:       #1a1a1a;
  box-shadow:  0 1px 4px rgba(0,0,0,.1), 0 0 0 1px rgba(0,0,0,.04);
}

.biz-seg-badge {
  background:    #1A7A4A;
  color:         #fff;
  font-size:     .65rem;
  font-weight:   700;
  padding:       1px 6px;
  border-radius: 50px;
  min-width:     18px;
  text-align:    center;
}

/* ─── Tab panels ────────────────────────────────────────────────── */
.biz-tab-panel {
  background:    #fff;
  border:        1px solid #e5e7eb;
  border-radius: 0 0 12px 12px;
  border-top:    none;
  margin-bottom: 24px;
  animation:     tabFadeIn .18s ease;
}

@keyframes tabFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: none; }
}

/* ─── Hours inside tab panel ────────────────────────────────────── */
.biz-hours-today-bar {
  display:     flex;
  align-items: center;
  gap:         10px;
  padding:     14px 18px;
  border-bottom: 1px solid #f3f4f6;
  font-size:   .875rem;
  font-weight: 600;
  color:       #1a1a1a;
}

.biz-hours-dot {
  width:         9px;
  height:        9px;
  border-radius: 50%;
  flex-shrink:   0;
  background:    #d1d5db;
}
.biz-hours-dot--open   { background: #22c55e; box-shadow: 0 0 0 3px #dcfce7; }
.biz-hours-dot--closed { background: #f87171; box-shadow: 0 0 0 3px #fee2e2; }

.biz-hours-list { padding: 4px 0; }

.biz-hours-row {
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  padding:         9px 18px;
  font-size:       .875rem;
  border-bottom:   1px solid #f9fafb;
}
.biz-hours-row:last-child { border-bottom: none; }

.biz-hours-row.is-today { background: #f0fdf4; }
.biz-hours-row.is-today .biz-hours-day  { color: #15803d; font-weight: 700; }
.biz-hours-row.is-today .biz-hours-time { color: #15803d; font-weight: 600; }

.biz-hours-day    { color: #374151; font-weight: 500; }
.biz-hours-time   { color: #6b7280; }
.biz-hours-closed { color: #ef4444; font-weight: 500; }

/* ─── Reviews scroll container ──────────────────────────────────── */
.biz-reviews-scroll {
  max-height:  420px;
  overflow-y:  auto;
  overscroll-behavior: contain;
  padding:     4px 0 8px;
}

/* Thin custom scrollbar */
.biz-reviews-scroll::-webkit-scrollbar { width: 4px; }
.biz-reviews-scroll::-webkit-scrollbar-track { background: transparent; }
.biz-reviews-scroll::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }
.biz-reviews-scroll::-webkit-scrollbar-thumb:hover { background: #9ca3af; }

/* ─── Reviews ──────────────────────────────────────────────────── */
.biz-reviews, .biz-comments {
  margin-bottom: 32px;
}

.biz-reviews-count, .biz-comments-count {
  background:   #e8f5ee;
  color:        #1A7A4A;
  font-size:    .78rem;
  font-weight:  700;
  padding:      2px 8px;
  border-radius: 50px;
}

.biz-review-card {
  padding:       14px 18px;
  border-bottom: 1px solid #f3f4f6;
}
.biz-review-card:last-child { border-bottom: none; }

.biz-review-header {
  display:         flex;
  justify-content: space-between;
  align-items:     flex-start;
  margin-bottom:   8px;
}

.biz-review-author { font-weight: 600; font-size: .88rem; color: #1a1a1a; }
.biz-review-date   { color: #9ca3af; font-size: .78rem; }
.biz-review-rating { font-size: .95rem; margin-bottom: 6px; }
.biz-review-text   { font-size: .88rem; color: #374151; line-height: 1.55; margin: 0; }

.biz-review-actions {
  display:     flex;
  align-items: center;
  gap:         12px;
  margin-top:  10px;
}

.biz-helpful-btn {
  background:  transparent;
  border:      1px solid #e5e7eb;
  border-radius: 50px;
  padding:     4px 12px;
  font-size:   .78rem;
  color:       #6b7280;
  cursor:      pointer;
  transition:  all .15s;
  display:     flex;
  align-items: center;
  gap:         4px;
}

.biz-helpful-btn.marked {
  border-color: #1A7A4A;
  color:        #1A7A4A;
  background:   #e8f5ee;
}

/* ─── Review owner actions (edit / delete) ──────────────────────── */
.biz-review-owner-actions {
  display:    flex;
  gap:        8px;
  margin-top: 8px;
}

.biz-review-edit-btn,
.biz-review-delete-btn {
  background:    transparent;
  border:        1px solid #e5e7eb;
  border-radius: 50px;
  padding:       3px 11px;
  font-size:     .75rem;
  cursor:        pointer;
  transition:    all .15s;
  color:         #6b7280;
}

.biz-review-edit-btn:hover   { border-color: #1A7A4A; color: #1A7A4A; background: #f0fdf4; }
.biz-review-delete-btn:hover { border-color: #ef4444; color: #ef4444; background: #fef2f2; }

/* ─── Inline delete confirmation bar ───────────────────────────── */
.biz-delete-confirm {
  display:        flex;
  align-items:    center;
  justify-content: space-between;
  gap:            12px;
  margin-top:     10px;
  padding:        10px 14px;
  background:     #fef2f2;
  border:         1px solid #fecaca;
  border-radius:  10px;
  flex-wrap:      wrap;
}

.biz-delete-confirm-msg {
  font-size:  .84rem;
  color:      #b91c1c;
  font-weight: 500;
}

.biz-delete-confirm-btns {
  display: flex;
  gap:     8px;
}

.biz-delete-yes-btn {
  background:    #ef4444;
  color:         #fff;
  border:        none;
  border-radius: 8px;
  padding:       6px 16px;
  font-size:     .84rem;
  font-weight:   600;
  cursor:        pointer;
  transition:    background .15s;
}

.biz-delete-yes-btn:hover    { background: #dc2626; }
.biz-delete-yes-btn:disabled { opacity: .6; cursor: not-allowed; }

.biz-review-edited {
  font-size:  .72rem;
  color:      #9ca3af;
  font-style: italic;
}

/* ─── Edit review inline form ───────────────────────────────────── */
.biz-review-edit-form,
.biz-owner-reply-form {
  margin-top:    12px;
  background:    #f9fafb;
  border:        1px solid #e5e7eb;
  border-radius: 10px;
  padding:       14px;
}

.biz-edit-star-row {
  display:       flex;
  gap:           6px;
  margin-bottom: 10px;
}

.biz-edit-form-footer {
  display:         flex;
  justify-content: flex-end;
  align-items:     center;
  gap:             8px;
  margin-top:      10px;
}

.biz-edit-cancel-btn {
  background:    transparent;
  border:        1px solid #e5e7eb;
  border-radius: 8px;
  padding:       7px 16px;
  font-size:     .85rem;
  color:         #6b7280;
  cursor:        pointer;
}

.biz-edit-save-btn,
.biz-reply-save-btn {
  background:    #1A7A4A;
  color:         #fff;
  border:        none;
  border-radius: 8px;
  padding:       7px 18px;
  font-size:     .85rem;
  font-weight:   600;
  cursor:        pointer;
  transition:    background .15s;
}

.biz-edit-save-btn:hover,
.biz-reply-save-btn:hover  { background: #145f39; }
.biz-edit-save-btn:disabled,
.biz-reply-save-btn:disabled { opacity: .6; cursor: not-allowed; }

/* ─── Owner reply button ────────────────────────────────────────── */
.biz-owner-reply-btn {
  display:       inline-flex;
  align-items:   center;
  gap:           5px;
  margin-top:    8px;
  background:    transparent;
  border:        1px solid #d1fae5;
  border-radius: 50px;
  padding:       4px 14px;
  font-size:     .78rem;
  font-weight:   600;
  color:         #1A7A4A;
  cursor:        pointer;
  transition:    all .15s;
}

.biz-owner-reply-btn:hover { background: #f0fdf4; border-color: #1A7A4A; }

/* ─── Owner reply display block ─────────────────────────────────── */
.biz-owner-reply {
  margin-top:    12px;
  background:    #f0fdf4;
  border-left:   3px solid #1A7A4A;
  border-radius: 0 8px 8px 0;
  padding:       10px 14px;
}

.biz-owner-reply-label {
  display:     block;
  font-size:   .72rem;
  font-weight: 700;
  color:       #1A7A4A;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 5px;
}

.biz-owner-reply-text {
  font-size:   .88rem;
  color:       #374151;
  line-height: 1.5;
  margin:      0;
}

/* ─── Write Review Form ─────────────────────────────────────────── */
.biz-review-write {
  background:    #f9fafb;
  border:        1px solid #e5e7eb;
  border-radius: 10px;
  padding:       16px;
  margin-bottom: 20px;
}

.biz-review-write h4 { margin: 0 0 12px; font-size: .95rem; }

.biz-star-row {
  display:       flex;
  gap:           6px;
  margin-bottom: 12px;
}

.biz-star-btn {
  font-size:   1.4rem;
  background:  transparent;
  border:      none;
  cursor:      pointer;
  opacity:     .3;
  transition:  opacity .1s, transform .1s;
  padding:     0;
  line-height: 1;
}

.biz-star-btn.active { opacity: 1; }
.biz-star-btn:hover  { transform: scale(1.15); }

.biz-review-textarea {
  width:         100%;
  border:        1px solid #e5e7eb;
  border-radius: 8px;
  padding:       10px 12px;
  font-size:     .88rem;
  resize:        vertical;
  min-height:    80px;
  outline:       none;
  font-family:   inherit;
  box-sizing:    border-box;
}

.biz-review-textarea:focus { border-color: #1A7A4A; }

/* ─── Comment input (shared) ──────────────────────────────────────── */
.biz-comment-input {
  width:       100%;
  border:      none;
  padding:     10px 14px;
  font-size:   .9rem;
  outline:     none;
  font-family: inherit;
  resize:      vertical;
  min-height:  44px;
  box-sizing:  border-box;
  color:       #1a1a1a;
  line-height: 1.5;
}

.biz-comment-submit {
  background:    #1A7A4A;
  color:         #fff;
  border:        none;
  border-radius: 20px;
  padding:       5px 16px;
  font-size:     .78rem;
  font-weight:   700;
  cursor:        pointer;
  white-space:   nowrap;
  transition:    background .15s;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.biz-comment-submit:hover    { background: #145f39; }
.biz-comment-submit:disabled { opacity: .6; cursor: not-allowed; }

/* ─── Sidebar ──────────────────────────────────────────────────── */
.biz-sidebar { position: sticky; top: 80px; }

.biz-contact-card {
  background:    #fff;
  border:        1px solid #e5e7eb;
  border-radius: var(--dir-radius, 12px);
  padding:       20px;
  margin-bottom: 16px;
}

.biz-contact-title {
  font-size:   .85rem;
  font-weight: 700;
  color:       #6b7280;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin:      0 0 14px;
}

.biz-contact-btn {
  display:       flex;
  align-items:   center;
  gap:           10px;
  width:         100%;
  padding:       12px 14px;
  border-radius: 10px;
  border:        1px solid #e5e7eb;
  text-decoration: none;
  font-size:     .9rem;
  font-weight:   600;
  color:         #1a1a1a;
  background:    #fff;
  margin-bottom: 8px;
  cursor:        pointer;
  transition:    all .15s;
}

.biz-contact-btn:last-child { margin-bottom: 0; }

.biz-contact-phone { color: #1A7A4A; border-color: #1A7A4A; }
.biz-contact-phone:hover { background: #e8f5ee; }

/* Phone button — two-line label + number */
.biz-contact-btn-info {
  display:        flex;
  flex-direction: column;
  align-items:    flex-start;
  line-height:    1.2;
}

.biz-contact-btn-label {
  font-size:      .65rem;
  font-weight:    600;
  text-transform: uppercase;
  letter-spacing: .06em;
  opacity:        .7;
}

.biz-contact-btn-number {
  font-size:   .9rem;
  font-weight: 700;
}

.biz-contact-wa { color: #fff; background: #25D366; border-color: #25D366; }
.biz-contact-wa:hover { background: #1fb055; color: #fff; border-color: #1fb055; }

.biz-contact-web:hover { border-color: #1A7A4A; color: #1A7A4A; }

/* ─── Share ─────────────────────────────────────────────────────── */
.biz-share {
  background:    #fff;
  border:        1px solid #e5e7eb;
  border-radius: 14px;
  padding:       16px 18px;
  margin-bottom: 12px;
}

.biz-share-grid {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   7px;
}

.biz-share-pill {
  display:       flex;
  align-items:   center;
  gap:           7px;
  padding:       9px 12px;
  border-radius: 10px;
  border:        1px solid transparent;
  font-size:     .78rem;
  font-weight:   600;
  cursor:        pointer;
  transition:    all .15s;
  white-space:   nowrap;
  justify-content: center;
}

/* WhatsApp */
.biz-share-wa {
  background: #e9fdf0;
  color:      #15803d;
  border-color: #bbf7d0;
}
.biz-share-wa:hover { background: #25D366; color: #fff; border-color: #25D366; }

/* Facebook */
.biz-share-fb {
  background: #eff6ff;
  color:      #1d4ed8;
  border-color: #bfdbfe;
}
.biz-share-fb:hover { background: #1877F2; color: #fff; border-color: #1877F2; }

/* X / Twitter */
.biz-share-x {
  background: #f1f5f9;
  color:      #0f172a;
  border-color: #e2e8f0;
}
.biz-share-x:hover { background: #0f172a; color: #fff; border-color: #0f172a; }

/* Copy link */
.biz-share-copy {
  background:  #f9fafb;
  color:       #374151;
  border-color: #e5e7eb;
}
.biz-share-copy:hover { background: #e5e7eb; color: #111827; }
.biz-share-copy.copied { background: #d1fae5; color: #065f46; border-color: #6ee7b7; }

/* Native share — spans full width */
.biz-share-native {
  grid-column: 1 / -1;
  background:  #f9fafb;
  color:       #6b7280;
  border-color: #e5e7eb;
  justify-content: center;
}
.biz-share-native:hover { background: #f3f4f6; color: #374151; }

/* ─── Flag / Report Button ──────────────────────────────────────── */
.biz-flag-btn {
  display:       flex;
  align-items:   center;
  justify-content: center;
  gap:           7px;
  width:         100%;
  padding:       10px 16px;
  background:    transparent;
  border:        1px solid #fca5a5;
  border-radius: 10px;
  color:         #ef4444;
  font-size:     .82rem;
  font-weight:   600;
  cursor:        pointer;
  transition:    all .18s cubic-bezier(.4,0,.2,1);
  letter-spacing: .01em;
}

.biz-flag-btn svg { flex-shrink: 0; transition: transform .18s; }

.biz-flag-btn:hover {
  background:   #fef2f2;
  border-color: #ef4444;
  box-shadow:   0 2px 12px rgba(239,68,68,.18);
}

.biz-flag-btn:hover svg { transform: rotate(-8deg) scale(1.1); }

.biz-flag-btn:active {
  background:   #fee2e2;
  transform:    scale(.98);
}

/* ─── Empty note ──────────────────────────────────────────────────── */
.biz-empty-note {
  color:      #6b7280;
  font-size:  .9rem;
  padding:    20px 0;
  margin:     0;
}

/* ─── Comments empty state ───────────────────────────────────────── */
.biz-comments-empty {
  display:       flex;
  flex-direction: column;
  align-items:   center;
  gap:           10px;
  padding:       32px 24px;
  background:    #f9fafb;
  border:        1px solid #e5e7eb;
  border-radius: 12px;
  text-align:    center;
}

.biz-comments-empty-icon {
  font-size: 2rem;
  line-height: 1;
  opacity: .5;
}

.biz-comments-empty-text {
  margin:      0;
  color:       #6b7280;
  font-size:   .9rem;
  line-height: 1.5;
}

.biz-comments-empty-text span {
  color:       #9ca3af;
  font-size:   .82rem;
}

/* ─── Login prompt ────────────────────────────────────────────────── */
.biz-login-prompt {
  display:       flex;
  align-items:   center;
  gap:           10px;
  background:    #f9fafb;
  border:        1px solid #e5e7eb;
  border-radius: 10px;
  padding:       14px 16px;
  margin-bottom: 16px;
  font-size:     .88rem;
  color:         #6b7280;
}

.biz-login-link {
  margin-left:   auto;
  background:    #1A7A4A;
  color:         #fff;
  text-decoration: none;
  padding:       6px 14px;
  border-radius: 7px;
  font-size:     .82rem;
  font-weight:   700;
  white-space:   nowrap;
  transition:    background .15s;
}

.biz-login-link:hover { background: #145f39; }

.biz-login-nudge {
  display:       inline-block;
  background:    #1e293b;
  color:         #fff;
  font-size:     .78rem;
  padding:       6px 12px;
  border-radius: 6px;
  margin-top:    6px;
  animation:     nudgeFadeIn .15s ease;
}

.biz-login-nudge a { color: #86efac; }

@keyframes nudgeFadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: none; }
}

/* ─── Review write form ───────────────────────────────────────────── */
.biz-review-write {
  background:    #f9fafb;
  border:        1px solid #e5e7eb;
  border-radius: 12px;
  padding:       18px;
  margin-bottom: 20px;
}

.biz-review-write h4 {
  margin:      0 0 14px;
  font-size:   .95rem;
  font-weight: 700;
  color:       #111827;
}

.biz-review-form-footer {
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  gap:             12px;
  margin-top:      12px;
}

.biz-review-error {
  font-size:  .82rem;
  color:      #ef4444;
  flex:       1;
}

.biz-review-submit {
  background:    #1A7A4A;
  color:         #fff;
  border:        none;
  border-radius: 8px;
  padding:       9px 20px;
  font-size:     .88rem;
  font-weight:   700;
  cursor:        pointer;
  transition:    background .15s;
  white-space:   nowrap;
}

.biz-review-submit:hover    { background: #145f39; }
.biz-review-submit:disabled { opacity: .6; cursor: not-allowed; }

.biz-nopal-dim { opacity: .2; }

/* ─── Review write form inside tab panel ───────────────────────── */
.biz-review-form:not(:empty) {
  border-bottom: 1px solid #e5e7eb;
}

/* ─── Avatar ─────────────────────────────────────────────────────── */
.biz-avatar {
  width:         36px;
  height:        36px;
  border-radius: 50%;
  flex-shrink:   0;
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-size:     .72rem;
  font-weight:   800;
  color:         #fff;
  letter-spacing: .02em;
  user-select:   none;
}

.biz-avatar--sm {
  width:     26px;
  height:    26px;
  font-size: .6rem;
}

/* ─── Comments section card ───────────────────────────────────────── */
.biz-comments {
  background:    #fff;
  border:        1px solid #e5e7eb;
  border-radius: 16px;
  overflow:      hidden;
  margin-bottom: 32px;
}

.biz-comments > .biz-section-title {
  margin:         0;
  padding:        20px 22px 16px;
  border-bottom:  1px solid #f3f4f6;
  font-size:      1.05rem;
}

/* Write box row (avatar + textarea) */
.biz-comment-write-row {
  display:     flex;
  gap:         12px;
  align-items: flex-start;
  padding:     18px 22px 16px;
  border-bottom: 1px solid #f3f4f6;
}

.biz-comment-write {
  flex:          1;
  border:        1.5px solid #e5e7eb;
  border-radius: 12px;
  background:    #fff;
  overflow:      hidden;
  transition:    border-color .18s, box-shadow .18s;
}

.biz-comment-write:focus-within {
  border-color: #1A7A4A;
  box-shadow:   0 0 0 3px rgba(26,122,74,.08);
}

.biz-comment-write-footer {
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  padding:         9px 14px;
  background:      #f8fafc;
  border-top:      1px solid #f3f4f6;
  gap:             12px;
}

.biz-comment-char {
  font-size: .75rem;
  color:     #9ca3af;
}

.biz-comment-submit-main {
  background:     #1A7A4A;
  color:          #fff;
  border:         none;
  border-radius:  20px;
  padding:        7px 20px;
  font-size:      .8rem;
  font-weight:    700;
  cursor:         pointer;
  transition:     background .15s, transform .15s;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.biz-comment-submit-main:hover    { background: #145f39; transform: scale(1.02); }
.biz-comment-submit-main:active   { transform: scale(.97); }
.biz-comment-submit-main:disabled { opacity: .5; cursor: not-allowed; transform: none; }

/* ─── Comment threads ─────────────────────────────────────────────── */
.biz-comment-thread {
  padding:       18px 22px;
  border-bottom: 1px solid #f3f4f6;
}
.biz-comment-thread:last-child { border-bottom: none; }

/* Row: avatar on left, body on right */
.biz-comment-card {}

.biz-comment-row {
  display:     flex;
  gap:         12px;
  align-items: flex-start;
}

.biz-comment-body {
  flex:      1;
  min-width: 0;
}

/* Meta row */
.biz-comment-meta {
  display:       flex;
  align-items:   center;
  gap:           5px;
  margin-bottom: 5px;
  flex-wrap:     wrap;
}

.biz-comment-author {
  font-weight: 700;
  font-size:   .875rem;
  color:       #111827;
}

.biz-comment-dot  { color: #d1d5db; font-size: .6rem; }
.biz-comment-date { color: #9ca3af; font-size: .78rem; }

.biz-comment-owner-tag {
  font-size:      .6rem;
  font-weight:    700;
  background:     #d1fae5;
  color:          #065f46;
  padding:        2px 7px;
  border-radius:  50px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.biz-comment-edited { font-size: .72rem; color: #9ca3af; font-style: italic; }

/* Comment text */
.biz-comment-text {
  font-size:   .9rem;
  color:       #1c1c1c;
  line-height: 1.6;
  margin:      0 0 8px;
}

/* Action bar */
.biz-comment-actions {
  display:     flex;
  align-items: center;
  gap:         4px;
  flex-wrap:   wrap;
}

/* Upvote */
.biz-upvote-btn {
  display:       inline-flex;
  align-items:   center;
  gap:           4px;
  background:    transparent;
  border:        none;
  border-radius: 6px;
  padding:       5px 8px;
  font-size:     .8rem;
  font-weight:   700;
  color:         #9ca3af;
  cursor:        pointer;
  transition:    color .12s, background .12s;
  line-height:   1;
  user-select:   none;
}


.biz-upvote-btn svg { flex-shrink: 0; }

.biz-upvote-btn:hover {
  background: rgba(26, 122, 74, .1);
  color:      #1A7A4A;
}

.biz-upvote-btn:hover svg path { fill: #1A7A4A; }
.biz-upvote-btn.voted           { color: #1A7A4A; }
.biz-upvote-btn.voted svg path  { fill: #1A7A4A; }

.biz-vote-count { min-width: 10px; text-align: center; }

/* Reply / action text buttons */
.biz-reply-btn,
.biz-reply-login-btn {
  background:     transparent;
  border:         none;
  border-radius:  2px;
  color:          #878a8c;
  font-size:      .75rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: .05em;
  cursor:         pointer;
  padding:        3px 6px;
  transition:     color .1s, background .1s;
  line-height:    1;
}

.biz-reply-btn:hover {
  background: #f6f7f8;
  color:      #1a1a1a;
}

.biz-reply-login-btn:hover {
  background: #f6f7f8;
  color:      #878a8c;
}

.biz-edit-btn,
.biz-delete-btn {
  background:     transparent;
  border:         none;
  border-radius:  2px;
  font-size:      .75rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: .05em;
  cursor:         pointer;
  padding:        3px 6px;
  transition:     color .1s, background .1s;
  line-height:    1;
}

.biz-edit-btn {
  color: #878a8c;
}

.biz-edit-btn:hover {
  background: #f6f7f8;
  color:      #1a1a1a;
}

.biz-delete-btn {
  color: #c4c4c4;
}

.biz-delete-btn:hover,
.biz-delete-btn--confirm {
  color:      #ef4444;
  background: #fef2f2;
}

/* Edit form */
.biz-edit-form { margin-top: 8px; }
.biz-edit-save {
  background:     #1A7A4A;
  color:          #fff;
  border:         none;
  border-radius:  20px;
  padding:        5px 16px;
  font-size:      .78rem;
  font-weight:    700;
  cursor:         pointer;
  text-transform: uppercase;
  letter-spacing: .04em;
  transition:     background .15s;
}
.biz-edit-save:hover    { background: #145f39; }
.biz-edit-save:disabled { opacity: .6; cursor: not-allowed; }

/* Nested replies — indented bar aligned to body column */
.biz-comment-replies {
  margin-top:     10px;
  /* 36px (avatar) + 12px (gap) = 48px — border sits at body column */
  margin-left:    48px;
  padding-left:   12px;
  border-left:    2px solid #edeff1;
  display:        flex;
  flex-direction: column;
  gap:            12px;
  transition:     border-color .2s;
}

.biz-comment-replies:hover { border-left-color: #bbf7d0; }

/* Depth 0 replies (first level under root) */
.biz-comment-replies--depth-0 { border-left-color: #edeff1; }
.biz-comment-replies--depth-0:hover { border-left-color: #1A7A4A; }

/* Depth 1+ replies — small avatar (26px) + gap (10px) = 36px */
.biz-comment-replies--depth-1 {
  margin-left:  36px;
  border-left:  2px solid #e5e7eb;
}
.biz-comment-replies--depth-1:hover { border-left-color: #86efac; }

/* Cap depth so it doesn't go micro on mobile */
.biz-comment-replies--depth-2,
.biz-comment-replies--depth-3 {
  margin-left:  24px;
  border-left:  2px solid #f3f4f6;
}

/* "Respondiendo a @name" label above reply textarea */
.biz-reply-to-label {
  display:       flex;
  align-items:   center;
  gap:           5px;
  padding:       6px 14px;
  font-size:     .78rem;
  color:         #878a8c;
  border-bottom: 1px solid #edeff1;
  background:    #f6f7f8;
}

.biz-reply-to-label strong {
  color:      #1A7A4A;
  font-weight: 700;
}

/* Reply form — inline, clean */
.biz-reply-form { margin-top: 8px; }

.biz-reply-form-inner {
  border:        1px solid #edeff1;
  border-radius: 4px;
  background:    #fff;
  overflow:      hidden;
}

.biz-reply-form-inner:focus-within { border-color: #1A7A4A; }

.biz-reply-form-inner .biz-comment-input {
  min-height: 60px;
  font-size:  .88rem;
}

.biz-reply-form-actions {
  display:         flex;
  justify-content: flex-end;
  align-items:     center;
  gap:             8px;
  padding:         8px 10px;
  background:      #f6f7f8;
  border-top:      1px solid #edeff1;
}

.biz-reply-cancel {
  background:     transparent;
  border:         none;
  border-radius:  20px;
  color:          #878a8c;
  font-size:      .75rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: .05em;
  cursor:         pointer;
  padding:        5px 12px;
  transition:     color .1s, background .1s;
}

.biz-reply-cancel:hover {
  background: #edeff1;
  color:      #1a1a1a;
}

/* ─── Toast ────────────────────────────────────────────────────────── */
.biz-toast {
  position:      fixed;
  bottom:        24px;
  left:          50%;
  transform:     translateX(-50%);
  padding:       12px 22px;
  border-radius: 10px;
  font-size:     .88rem;
  font-weight:   600;
  z-index:       9999;
  transition:    opacity .4s;
  pointer-events: none;
  white-space:   nowrap;
}

.biz-toast--ok  { background: #166534; color: #fff; }
.biz-toast--err { background: #991b1b; color: #fff; }

/* ─── Flag Modal ────────────────────────────────────────────────────── */
.biz-flag-modal {
  position:        fixed;
  inset:           0;
  background:      rgba(0,0,0,.45);
  display:         flex;
  align-items:     center;
  justify-content: center;
  z-index:         1000;
  backdrop-filter: blur(2px);
}

.biz-flag-modal-box {
  background:    #fff;
  border-radius: 14px;
  padding:       24px 28px;
  width:         100%;
  max-width:     400px;
  box-shadow:    0 20px 60px rgba(0,0,0,.2);
}

.biz-flag-modal-box h3 { margin: 0 0 6px; font-size: 1.05rem; color: #111827; }
.biz-flag-modal-box p  { font-size: .88rem; color: #6b7280; margin: 0 0 14px; }

.biz-flag-select {
  width:         100%;
  padding:       9px 12px;
  border:        1px solid #d1d5db;
  border-radius: 8px;
  font-size:     .88rem;
  color:         #374151;
  outline:       none;
  margin-bottom: 16px;
}

.biz-flag-select:focus { border-color: #1A7A4A; }

.biz-flag-modal-actions {
  display:         flex;
  justify-content: flex-end;
  gap:             10px;
}

.biz-flag-cancel-btn {
  padding:       8px 16px;
  border:        1px solid #d1d5db;
  border-radius: 8px;
  background:    #fff;
  color:         #374151;
  font-size:     .85rem;
  cursor:        pointer;
}

.biz-flag-submit-btn {
  padding:       8px 16px;
  border:        none;
  border-radius: 8px;
  background:    #ef4444;
  color:         #fff;
  font-size:     .85rem;
  font-weight:   700;
  cursor:        pointer;
  transition:    background .15s;
}

.biz-flag-submit-btn:hover    { background: #dc2626; }
.biz-flag-submit-btn:disabled { opacity: .6; }

/* ─── Mobile tweaks ─────────────────────────────────────────────────── */
@media (max-width: 600px) {
  /* Header stacks vertically: logo on top, info below */
  .biz-header        { flex-direction: column; gap: 12px; }
  .biz-logo          { width: 72px; height: 72px; }

  /* Rating row can wrap so text falls below cacti if needed */
  .biz-rating        { flex-wrap: wrap; row-gap: 2px; }

  .biz-name { font-size: 1.35rem; }

  /* Tighten reply indents on small screens */
  .biz-comment-replies              { margin-left: 28px; padding-left: 10px; }
  .biz-comment-replies--depth-1     { margin-left: 22px; }
  .biz-comment-replies--depth-2,
  .biz-comment-replies--depth-3     { margin-left: 14px; }

  .biz-review-form-footer { flex-direction: column; align-items: flex-start; }
  .biz-review-submit { width: 100%; }
  .biz-comment-write-footer { flex-direction: column; align-items: flex-end; }
  .biz-login-prompt { flex-wrap: wrap; }
  .biz-login-link { margin-left: 0; }

  /* Tighter write-row on small screens */
  .biz-comment-write-row { padding: 14px 16px 12px; gap: 10px; }
  .biz-comment-thread    { padding: 14px 16px; }

  /* Related grid → 2 cols on small screens */
  .biz-related-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .biz-related-card { flex-direction: column; }
  .biz-related-img-wrap { width: 100%; height: 100px; }

  /* Breadcrumbs compact */
  .biz-breadcrumbs-list { font-size: .72rem; }

  /* Service areas wrap */
  .biz-service-areas { flex-wrap: wrap; gap: 6px; }
}

/* ============================================
   BREADCRUMBS
   ============================================ */
.biz-breadcrumbs {
  margin-bottom: 12px;
}

.biz-breadcrumbs-list {
  display:     flex;
  align-items: center;
  flex-wrap:   wrap;
  gap:         4px;
  list-style:  none;
  margin:      0;
  padding:     0;
  font-size:   .78rem;
  color:       #6b7280;
}

.biz-breadcrumbs-item {
  display:     flex;
  align-items: center;
  gap:         4px;
}

.biz-breadcrumbs-link {
  color:           #6b7280;
  text-decoration: none;
  transition:      color .15s;
}
.biz-breadcrumbs-link:hover { color: #1A7A4A; }

.biz-breadcrumbs-sep {
  color:     #d1d5db;
  font-size: .8rem;
}

.biz-breadcrumbs-current {
  color:       #374151;
  font-weight: 600;
  max-width:   200px;
  white-space: nowrap;
  overflow:    hidden;
  text-overflow: ellipsis;
}

/* ============================================
   HEADER TOP (name + language badges row)
   ============================================ */
.biz-header-top {
  display:     flex;
  align-items: flex-start;
  gap:         10px;
  flex-wrap:   wrap;
  margin-bottom: 4px;
}

.biz-lang-badges {
  display:   flex;
  flex-wrap: wrap;
  gap:       5px;
  margin-top: 3px;
}

.biz-lang-badge {
  display:       inline-flex;
  align-items:   center;
  gap:           3px;
  font-size:     .68rem;
  font-weight:   700;
  padding:       3px 8px;
  background:    #f0fdf4;
  color:         #15803d;
  border:        1px solid #bbf7d0;
  border-radius: 50px;
  white-space:   nowrap;
  letter-spacing: .02em;
}

/* Year-established chip */
.biz-established {
  display:     inline-flex;
  align-items: center;
  gap:         4px;
  font-size:   .75rem;
  color:       #6b7280;
  font-weight: 500;
}

/* ============================================
   SERVICES SECTION
   ============================================ */
.biz-services-section {
  margin:        24px 0 0;
  padding:       18px 20px;
  background:    #f9fafb;
  border:        1px solid #e9ecef;
  border-radius: 12px;
}

.biz-section-title--sm {
  font-size:     1rem !important;
  margin-bottom: 12px !important;
}

.biz-services-list {
  display:   flex;
  flex-wrap: wrap;
  gap:       8px 16px;
  margin:    0;
  padding:   0;
  list-style: none;
}

.biz-service-item {
  display:     flex;
  align-items: center;
  gap:         6px;
  font-size:   .875rem;
  color:       #374151;
  font-weight: 500;
}

.biz-service-item svg {
  color:      #1A7A4A;
  flex-shrink: 0;
}

/* ============================================
   SERVICE AREAS
   ============================================ */
.biz-service-areas {
  display:     flex;
  align-items: center;
  gap:         8px;
  margin-top:  14px;
  font-size:   .82rem;
  flex-wrap:   wrap;
}

.biz-service-areas-label {
  display:     flex;
  align-items: center;
  gap:         4px;
  color:       #6b7280;
  font-weight: 600;
  white-space: nowrap;
}

.biz-service-area-pill {
  display:       inline-block;
  padding:       3px 10px;
  background:    #f3f4f6;
  color:         #374151;
  border-radius: 50px;
  font-size:     .78rem;
  font-weight:   500;
  border:        1px solid #e5e7eb;
}

/* ============================================
   INFO CARD (sidebar)
   ============================================ */
.biz-info-card {
  background:    #fff;
  border:        1px solid var(--dir-border, #e5e7eb);
  border-radius: 16px;
  padding:       18px 20px;
  margin-top:    16px;
}

.biz-info-row {
  display:       flex;
  flex-direction: column;
  gap:           6px;
  padding:       10px 0;
  border-bottom: 1px solid #f3f4f6;
}
.biz-info-row:last-child { border-bottom: none; padding-bottom: 0; }
.biz-info-row:first-child { padding-top: 0; }

.biz-info-label {
  font-size:   .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color:       #9ca3af;
}

.biz-info-value {
  display:     flex;
  align-items: center;
  flex-wrap:   wrap;
  gap:         4px;
  font-size:   .875rem;
  color:       #374151;
}

.biz-info-sep {
  color:     #d1d5db;
  font-size: .75rem;
}

/* Payment method pills */
.biz-pay-methods {
  display:   flex;
  flex-wrap: wrap;
  gap:       5px;
}

.biz-pay-pill {
  display:       inline-flex;
  align-items:   center;
  gap:           4px;
  font-size:     .75rem;
  font-weight:   500;
  color:         #374151;
  background:    #f9fafb;
  border:        1px solid #e5e7eb;
  border-radius: 6px;
  padding:       3px 8px;
}

/* Social links row */
.biz-social-links {
  display: flex;
  gap:     8px;
  flex-wrap: wrap;
}

.biz-social-link {
  display:       inline-flex;
  align-items:   center;
  justify-content: center;
  width:         36px;
  height:        36px;
  border-radius: 9px;
  border:        1px solid #e5e7eb;
  color:         #6b7280;
  transition:    background .18s, border-color .18s, color .18s;
  text-decoration: none;
}

.biz-social-ig:hover { background: #fdf2f8; border-color: #f472b6; color: #db2777; }
.biz-social-fb:hover { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.biz-social-tt:hover { background: #111; border-color: #333; color: #fff; }
.biz-social-yt:hover { background: #fef2f2; border-color: #fca5a5; color: #dc2626; }

/* Google Maps contact button */
.biz-contact-maps {
  background: #f0fdf4;
  color:      #15803d;
  border:     1px solid #bbf7d0;
}
.biz-contact-maps:hover {
  background:    #dcfce7;
  border-color:  #86efac;
}

/* ============================================
   RELATED BUSINESSES
   ============================================ */
.biz-related {
  background:    #f8f9fa;
  border-top:    1px solid #e9ecef;
  padding:       48px 0 56px;
  margin-top:    48px;
}

.biz-related-title {
  font-size:     1.25rem;
  font-weight:   800;
  color:         #1a1a1a;
  margin:        0 0 20px;
}

.biz-related-grid {
  display:               grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap:                   16px;
}

.biz-related-card {
  display:        flex;
  flex-direction: column;
  background:     #fff;
  border:         1px solid #e9ecef;
  border-radius:  14px;
  overflow:       hidden;
  text-decoration: none;
  color:          inherit;
  transition:     box-shadow .2s, transform .2s;
}
.biz-related-card:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,.1);
  transform:  translateY(-2px);
}

.biz-related-img-wrap {
  width:      100%;
  height:     120px;
  overflow:   hidden;
  background: #f3f4f6;
  position:   relative;
}

.biz-related-img {
  width:      100%;
  height:     100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.biz-related-card:hover .biz-related-img { transform: scale(1.04); }

.biz-related-img-placeholder {
  display:         flex;
  align-items:     center;
  justify-content: center;
  width:           100%;
  height:          100%;
  font-size:       2.4rem;
  color:           #d1d5db;
}

.biz-related-body {
  padding: 12px 14px;
}

.biz-related-name {
  font-size:    .92rem;
  font-weight:  700;
  color:        #1a1a1a;
  margin:       0 0 4px;
  white-space:  nowrap;
  overflow:     hidden;
  text-overflow: ellipsis;
}

.biz-related-loc {
  font-size:  .75rem;
  color:      #6b7280;
  margin:     0 0 4px;
}

.biz-related-rating {
  display:     flex;
  align-items: center;
  gap:         3px;
  font-size:   .78rem;
  font-weight: 600;
  color:       #374151;
}

.biz-related-rc {
  color:       #9ca3af;
  font-weight: 400;
}

/* ============================================
   MAP SECTION — "Dónde trabajamos"
   ============================================ */
.biz-map-section {
  margin:        28px 0 0;
  padding:       18px 20px 20px;
  background:    #f9fafb;
  border:        1px solid #e9ecef;
  border-radius: 14px;
}

.biz-map-layout {
  display:               grid;
  grid-template-columns: 1fr 220px;
  gap:                   16px;
  margin-top:            12px;
  align-items:           start;
}

.biz-map-layout--no-map {
  grid-template-columns: 1fr;
}

/* Leaflet map container */
.biz-map-container {
  height:        300px;
  border-radius: 10px;
  overflow:      hidden;
  border:        1px solid #e5e7eb;
  background:    #e5e7eb;
  position:      relative;
}

/* Leaflet overrides — remove default blue focus ring */
.biz-map-container .leaflet-container {
  border-radius: 10px;
  font-family:   inherit;
}

.biz-map-container .leaflet-control-attribution {
  font-size: .6rem;
  opacity:   .7;
}

/* Custom pin — no Leaflet default icon box */
.biz-leaflet-pin {
  background: none !important;
  border:     none !important;
  cursor:     pointer;
}

/* Service area dot pins on map */
.biz-area-dot-wrap {
  background:  none !important;
  border:      none !important;
  overflow:    visible;
  display:     flex;
  flex-direction: column;
  align-items: center;
  gap:         4px;
}
.biz-area-dot {
  width:         12px;
  height:        12px;
  border-radius: 50%;
  background:    #1A7A4A;
  border:        2.5px solid #fff;
  box-shadow:    0 1px 5px rgba(0,0,0,.28);
  flex-shrink:   0;
}
.biz-area-dot-label {
  background:    rgba(255,255,255,.93);
  backdrop-filter: blur(4px);
  border:        1px solid #d1fae5;
  border-radius: 20px;
  padding:       2px 9px;
  font-size:     .7rem;
  font-weight:   600;
  color:         #065f46;
  white-space:   nowrap;
  box-shadow:    0 1px 4px rgba(0,0,0,.10);
  pointer-events: none;
}

/* Map info sidebar */
.biz-map-info {
  display:        flex;
  flex-direction: column;
  gap:            12px;
}

.biz-map-block {
  background:    #fff;
  border:        1px solid #e9ecef;
  border-radius: 10px;
  padding:       12px 14px;
}

.biz-map-block-label {
  display:     flex;
  align-items: center;
  gap:         5px;
  font-size:   .67rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color:       #9ca3af;
  margin-bottom: 6px;
}

.biz-map-address-text {
  font-size:   .875rem;
  color:       #374151;
  line-height: 1.5;
  font-style:  normal;
  margin:      0 0 8px;
}

.biz-map-city-text {
  font-size:   .9rem;
  color:       #374151;
  font-weight: 500;
  margin:      0 0 8px;
}

.biz-map-dir-link {
  display:        inline-flex;
  align-items:    center;
  gap:            4px;
  font-size:      .78rem;
  font-weight:    600;
  color:          #1A7A4A;
  text-decoration: none;
  transition:     opacity .15s;
}
.biz-map-dir-link:hover { opacity: .75; }

/* Service areas list */
.biz-map-areas-list {
  list-style: none;
  margin:     0;
  padding:    0;
  display:    flex;
  flex-direction: column;
  gap:        6px;
}

.biz-map-area-item {
  display:     flex;
  align-items: center;
  gap:         7px;
  font-size:   .85rem;
  color:       #374151;
  font-weight: 500;
}

.biz-map-area-item svg {
  color:      #1A7A4A;
  flex-shrink: 0;
}

/* Mobile — stack map on top, info below */
@media (max-width: 640px) {
  .biz-map-layout {
    grid-template-columns: 1fr;
  }
  .biz-map-container { height: 220px; }
  .biz-map-info      { flex-direction: row; flex-wrap: wrap; }
  .biz-map-block     { flex: 1; min-width: 140px; }
}
