/* ------------------------------------------------------------------
 * LocalBizz - Service Type cards
 * Used on the single listing page (a listing's Service Types) and on
 * category hub pages via [lbd_service_cards]. Matches the theme accent.
 * ------------------------------------------------------------------ */

.lbd-service-cards { margin: 0 0 10px; }

.lbd-service-cards__title {
   font-size: 20px;
   margin: 0 0 16px;
}
.lbd-service-cards__title span { position: relative; }

.lbd-service-cards__grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 14px;
}
.lbd-service-cards.cols-1 .lbd-service-cards__grid { grid-template-columns: repeat(1, 1fr); }
.lbd-service-cards.cols-2 .lbd-service-cards__grid { grid-template-columns: repeat(2, 1fr); }
.lbd-service-cards.cols-3 .lbd-service-cards__grid { grid-template-columns: repeat(3, 1fr); }
.lbd-service-cards.cols-4 .lbd-service-cards__grid { grid-template-columns: repeat(4, 1fr); }
.lbd-service-cards.cols-5 .lbd-service-cards__grid { grid-template-columns: repeat(5, 1fr); }
.lbd-service-cards.cols-6 .lbd-service-cards__grid { grid-template-columns: repeat(6, 1fr); }

.lbd-service-card {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   text-align: center;
   gap: 12px;
   padding: 22px 14px;
   background: #fff;
   border: 1px solid #eceef1;
   border-radius: 14px;
   color: #1f2430;
   text-decoration: none;
   transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
a.lbd-service-card:hover {
   transform: translateY(-4px);
   border-color: #ED5548;
   box-shadow: 0 12px 28px rgba(237,85,72,.14);
   color: #1f2430;
}

.lbd-service-card__icon {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 62px;
   height: 62px;
   border-radius: 50%;
   background: #fdecea;
   color: #ED5548;
   font-size: 26px;
   line-height: 1;
   transition: background .18s ease, color .18s ease;
}
a.lbd-service-card:hover .lbd-service-card__icon {
   background: #ED5548;
   color: #fff;
}
.lbd-service-card__icon .icon { font-size: 26px; line-height: 1; }
.lbd-service-card__icon .icon-img { width: 34px; height: 34px; object-fit: contain; border-radius: 0; }

.lbd-service-card__name {
   font-size: 15px;
   font-weight: 600;
   line-height: 1.35;
}

/* Responsive */
@media (max-width: 1024px) {
   .lbd-service-cards .lbd-service-cards__grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 767px) {
   .lbd-service-cards .lbd-service-cards__grid { grid-template-columns: repeat(2, 1fr) !important; }
   .lbd-service-card { padding: 18px 10px; }
   .lbd-service-card__icon { width: 54px; height: 54px; font-size: 22px; }
}
@media (max-width: 400px) {
   .lbd-service-cards .lbd-service-cards__grid { grid-template-columns: repeat(1, 1fr) !important; }
}

/* ------------------------------------------------------------------
 * Listing Service Areas (leaf-page links on the listing profile)
 * Styled as a card to match the sidebar boxes (Contact / Hours / etc.)
 * ------------------------------------------------------------------ */
.lbd-service-areas {
   background: #fff;
   border: 1px solid #ececec;
   border-radius: 14px;
   padding: 26px 26px 28px;
   box-shadow: 0 6px 24px rgba(20, 24, 40, .05);
   margin: 0 0 24px;
}

.lbd-service-areas .block-title {
   font-size: 18px;
   font-weight: 700;
   line-height: 1.3;
   margin: 0 0 18px;
   padding: 0 0 14px;
   color: #1f2430;
   border-bottom: 1px solid #f0f1f3;
}
.lbd-service-areas .block-title span { position: relative; }

.lbd-service-areas__group { margin: 0 0 18px; }
.lbd-service-areas__group:last-child { margin-bottom: 0; }

.lbd-service-areas__service {
   display: flex;
   align-items: center;
   gap: 8px;
   font-size: 14px;
   font-weight: 700;
   letter-spacing: .01em;
   text-transform: uppercase;
   margin: 0 0 12px;
   color: #6b7280;
}
.lbd-service-areas__service::before {
   content: "";
   width: 18px; height: 18px;
   flex: 0 0 auto;
   border-radius: 50%;
   background: #fdecea;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ED5548'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
   background-repeat: no-repeat;
   background-position: center;
   background-size: 12px 12px;
}

.lbd-service-areas__links {
   list-style: none !important;
   margin: 0 !important;
   padding: 0 !important;
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
}
.lbd-service-areas__links li { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.lbd-service-areas__links a {
   display: inline-block;
   padding: 8px 15px;
   font-size: 14px;
   font-weight: 500;
   line-height: 1.3;
   color: #1f2430;
   background: #f6f7f8;
   border: 1px solid #eceef1;
   border-radius: 22px;
   text-decoration: none;
   transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
.lbd-service-areas__links a:hover {
   background: #ED5548;
   border-color: #ED5548;
   color: #fff;
   transform: translateY(-1px);
}

/* Flat mode (Group by service = No): one tidy list */
.lbd-service-areas.is-flat .lbd-service-areas__links { flex-direction: column; align-items: flex-start; }
.lbd-service-areas.is-flat .lbd-service-areas__links a { width: 100%; }
