/* One Stop Business Listings dynamic additions */

/* WordPress admin bar */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

/* Website screenshots: the logo tile becomes a screenshot; initials when there is none */
.listing-logo.os-shot { padding: 0; position: relative; }
.listing-logo.os-shot img { width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: top center; }
.os-initials { display: grid; place-items: center; width: 100%; height: 100%; background: linear-gradient(140deg, var(--night, #012147) 0%, #0b4a8f 100%); color: #fff; font-weight: 700; font-size: 1.8rem; letter-spacing: -.02em; }
.marquee-track a.os-mq { padding: 0; overflow: hidden; filter: none; opacity: 1; }
.marquee-track a.os-mq img { width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: top center; }
.l2-mosaic .os-shot { position: relative; }
.l2-mosaic .os-shot img { object-position: top center; }
.os-mosaic--single { grid-template-columns: 1fr; grid-template-rows: 380px; }
.os-mosaic--single a:first-child { grid-row: auto; }
.l2-logo.os-logo { padding: 0; font-weight: 700; font-size: 2rem; color: var(--white, #fff); background: var(--night, #012147); }

/* Business name links keep the heading colour */
.listing h3 a, #biz-name a { color: inherit; text-decoration: none; }
#biz-name a:hover { opacity: .85; }
.stars .os-star-off { opacity: .28; }

/* Category rows with small photos (never icons) */
.os-cat-row { display: inline-flex; align-items: center; gap: .7rem; }
.os-cat-row img, .os-side-list img { width: 32px; height: 32px; border-radius: 8px; object-fit: cover; flex: none; }
.os-side-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.os-side-list a { display: flex; align-items: center; gap: .6rem; color: var(--ink); text-decoration: none; font-weight: 500; }
.os-side-list a[aria-current], .os-side-list a:hover { color: var(--signal-ink, #0b4a8f); }
.os-sitemap { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 2.5rem; }
.os-sitemap ul { padding-left: 1.1rem; }

/* Detail page */
.os-content > :last-child { margin-bottom: 0; }
.os-content img { max-width: 100%; height: auto; }
.os-rating-summary { grid-template-columns: 1fr; }
.os-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r-lg, 16px); overflow: hidden; }
.os-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.os-social-text { display: flex; flex-wrap: wrap; gap: .5rem; }
.os-social-text a { width: auto !important; padding: .35rem .8rem; border-radius: 999px; font-size: .88rem; }
.pager .os-prev svg { transform: rotate(180deg); }

/* Blog post FAQ: + closed / − open */
.os-faq { margin: 2.5rem 0 1rem; }
.os-faq h2 { margin-bottom: 1rem; }
.os-faq__item { border: 1px solid var(--line); border-radius: var(--r-md, 12px); margin-bottom: .75rem; background: var(--white, #fff); }
.os-faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.2rem; font-weight: 600; color: var(--ink); }
.os-faq__item summary::-webkit-details-marker { display: none; }
.os-faq__icon { position: relative; width: 28px; height: 28px; flex: none; border-radius: 50%; background: var(--mist, #eef3f8); }
.os-faq__icon::before, .os-faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; background: currentColor; transform: translate(-50%, -50%); }
.os-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); transition: opacity .2s; }
.os-faq__item[open] .os-faq__icon::after { opacity: 0; }
.os-faq__item[open] { border-color: var(--signal, #f5a623); }
.os-faq__answer { padding: 0 1.2rem 1rem; color: var(--slate); }
.os-faq__answer p:last-child { margin-bottom: 0; }
