/*
 * Content compatibility layer — re-skins the legacy Bootstrap/Font-Awesome
 * markup embedded in migrated content blocks (default-city/locality templates)
 * into the Modern Design A visual language. Strictly scoped to .content-prose
 * so it never leaks into the new theme. NOT Bootstrap — a content adapter.
 *
 * (Long-term: re-author these templates in the admin with semantic markup.)
 */

/* Profile/card grids: lay any legacy .row of cards into a responsive grid. */
.content-prose .row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.25rem 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 640px) { .content-prose .row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .content-prose .row { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.content-prose [class*="col-"] { width: auto; max-width: none; padding: 0; }

/* Cards */
.content-prose .card,
.content-prose .profile-card {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 1px 2px rgba(12, 10, 16, .04), 0 8px 24px -12px rgba(12, 10, 16, .18);
  transition: transform .2s, box-shadow .2s;
}
.content-prose .card:hover,
.content-prose .profile-card:hover { transform: translateY(-2px); box-shadow: 0 12px 40px -12px rgba(126, 13, 60, .35); }
.content-prose .card-img-top,
.content-prose .profile-card img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; margin: 0; border-radius: 0; }
.content-prose .card-body { padding: .85rem 1rem 1rem; }
.content-prose .border-0 { border: 0; }
.content-prose .shadow-sm { box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.content-prose .rounded, .content-prose .rounded-3 { border-radius: .75rem; }

/* Buttons */
.content-prose .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  padding: .5rem .9rem; border-radius: 999px; font-size: .8rem; font-weight: 600;
  text-decoration: none; transition: filter .2s, background .2s; cursor: pointer; border: 0;
}
.content-prose .btn-success { background: #059669; color: #fff; }
.content-prose .btn-success:hover { background: #047857; }
.content-prose .btn-primary, .content-prose .bg-pink, .content-prose .btn-pink {
  background: linear-gradient(90deg, #c81e66, #a8124f); color: #fff;
}
.content-prose .text-pink, .content-prose a.text-pink { color: #a8124f; }
.content-prose .bg-theme { background: #a8124f; color: #fff; }

/* Star ratings (Font Awesome not loaded → render a gold unicode star). */
.content-prose .fa-star::before,
.content-prose .fas.fa-star::before { content: "\2605"; }
.content-prose .fa-star, .content-prose .fas { font-style: normal; }
.content-prose .text-warning { color: #d8b46a; }

/* Layout utilities used inside content */
.content-prose .d-flex { display: flex; }
.content-prose .d-none { display: none; }
@media (min-width: 768px) { .content-prose .d-md-block { display: block; } .content-prose .d-md-flex { display: flex; } }
.content-prose .justify-content-between { justify-content: space-between; }
.content-prose .justify-content-center { justify-content: center; }
.content-prose .align-items-center { align-items: center; }
.content-prose .text-center { text-align: center; }
.content-prose .text-uppercase { text-transform: uppercase; }
.content-prose .fw-bold, .content-prose .fw-semibold { font-weight: 700; }
.content-prose .position-relative { position: relative; }
.content-prose .position-absolute { position: absolute; }
.content-prose .top-0 { top: .5rem; }
.content-prose .end-0 { right: .5rem; }
.content-prose .contact-number-wrap { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }

/* Spacing (subset present in content) */
.content-prose .mb-2 { margin-bottom: .5rem; }
.content-prose .mt-1 { margin-top: .25rem; }
.content-prose .ms-1 { margin-left: .25rem; }
.content-prose .me-1 { margin-right: .25rem; }
.content-prose .g-2 { gap: .5rem; }

/* Froala image alignment classes */
.content-prose .fr-dib { display: block; margin: 1rem auto; }
.content-prose .fr-fil { float: left; margin: .25rem 1rem 1rem 0; }
.content-prose .fr-fir { float: right; margin: .25rem 0 1rem 1rem; }

/* Tables */
.content-prose .table { width: 100%; border-collapse: collapse; }
.content-prose .table th, .content-prose .table td { border: 1px solid #e2e8f0; padding: .5rem .65rem; }
.content-prose .table-hover tbody tr:hover { background: #faf5f8; }
