
/* Overrides for better contrast */
.hero .badge, .badge{
  background: var(--brand-dark) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.25) !important;
}
/* Ensure badge text is readable on any background */
.badge *{ color: inherit !important; }


/* --- Mobile polish --- */
@media (max-width: 600px){
  .actions{display:flex;flex-direction:column;gap:10px}
  .actions .btn{width:100%; text-align:center}
  .badge, .badge-chip{font-size:0.95rem}
  .grid{grid-template-columns:1fr !important}
}



/* --- Mobile & a11y polish --- */
.btn, a.btn { min-height:48px; padding:12px 16px }
a[href^="tel:"], a[href*="wa.me"] { padding:10px 12px; display:inline-flex; align-items:center }
.btn:focus, a:focus { outline:2px solid #c7f0e4; outline-offset:2px }


/* === Mobile overflow & layout fixes (2025-09) === */
html, body { max-width:100%; overflow-x:hidden; }

@media (max-width: 768px){
  .layout, .grid, .row { display:block !important; }
  .sidebar, .right-col { 
    position:static !important; 
    width:100% !important; 
    padding:0 !important; 
    margin:24px 0 0 !important;
  }
  .sidebar h3, .right-col h3 { 
    margin:0 0 10px; 
    line-height:1.2; 
    word-break:break-word; 
  }
  .city-tags, .chips { 
    display:flex; 
    flex-wrap:wrap; 
    gap:8px; 
    justify-content:flex-start; 
  }
  .city-tags a, .chips .chip { 
    white-space:nowrap; 
    max-width:100%; 
    overflow:hidden; 
    text-overflow:ellipsis; 
  }
  .sidebar, .right-col, .city-tags { margin-right:0 !important; }

  /* Hide the big green call badge in the header on mobile (keep floating CTAs) */
  .header .call-badge, .nav .call-badge, .topbar .call-badge { display:none !important; }
}

.fab, .floating-cta { right:16px !important; z-index:30; }
main, .page, .section { overflow-x:clip; }
