/* Top Listed Group dynamic additions */

/* WordPress admin bar (sticky header + sticky asides) */
.admin-bar .site-header { top: 32px; }
.admin-bar .sidebar, .admin-bar .biz-aside { top: calc(var(--header-h) + 56px); }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }

/* Listing images: website screenshots fill the design's logo tiles */
.tg-shot { position: relative; overflow: hidden; }
.listing-logo.tg-shot { padding: 0; }
.listing-logo.tg-shot > img { width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: top center; transform: none; }
.listing-card:hover .listing-logo.tg-shot > img { transform: scale(1.04); }
.tg-wall a.tg-shot { padding: 0; aspect-ratio: 16 / 10; }
.tg-wall a.tg-shot > img { width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: top center; padding: 0; border-radius: 0; background: none; }
.tg-wall a.tg-shot .tg-initials { font-size: 30px; }
.tg-hero-shot img { top: 0; height: 100%; object-fit: cover; object-position: top center; }

/* Initials when a listing has no website or both screenshot services fail (fixed colours: the design has a dark mode) */
.tg-initials {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-items: center;
    background: linear-gradient(140deg, #0b2a3b 0%, #12708a 100%);
    color: #fff;
    font-weight: 800;
    font-size: clamp(34px, 4vw, 58px);
    letter-spacing: -0.03em;
}
.biz-logo.tg-logo { position: relative; padding: 0; border: 0; }
.biz-logo.tg-logo .tg-initials { font-size: 30px; }

/* Business name links keep the heading colour */
.listing-body h3 a, .biz-aside h1 a { color: inherit; }
.biz-aside h1 a:hover { color: var(--teal); }
.biz-tags a.tag:hover { opacity: .85; }

/* Category tile count */
.cat-tile-body h3 .tg-count { font-size: .62em; font-weight: 600; color: var(--muted); letter-spacing: 0; vertical-align: middle; }

/* Category page toolbar: sort links next to the view toggle */
.tg-tools { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.tg-sort { display: flex; gap: 6px; padding: 4px; border: 1.5px solid var(--line); border-radius: 999px; }
.tg-sort a { padding: 8px 16px; border-radius: 999px; font-weight: 600; font-size: .92rem; color: var(--muted); }
.tg-sort a[aria-current] { background: var(--ink); color: var(--bg); }
.filter-list a span { color: var(--muted); font-weight: 500; }

/* Pagination */
.pagination .tg-dots { border-color: transparent; }
.pagination .tg-prev .icon { transform: rotate(180deg); }

/* Detail page */
.hours-cols.tg-no-hours { grid-template-columns: 1fr; }
.tg-review-head { grid-template-columns: 1fr; }
.svc-row span .icon { width: 18px; height: 18px; color: var(--teal); }
.tg-content img { max-width: 100%; height: auto; }
.tg-content p:last-child { margin-bottom: 0; }
.tg-video { aspect-ratio: 16 / 9; }
.tg-video iframe { width: 100%; height: 100%; border: 0; }


/* Blog post FAQ */
.tg-post-faq { margin: 10px 0 40px; }
.tg-post-faq .answer p:last-child { margin-bottom: 0; }

/* Legal / plain page content */
.legal h3 { margin-top: 1.4em; }
.legal ul { padding-left: 1.2em; }

/* Ratings: the design's ".review-big span" greys the stars; dim only the unfilled ones */
.review-big .stars { color: var(--gold); }
.stars .tg-off { opacity: .25; }
.review .who .stars { margin-left: 8px; }
