/*
Theme Name: Directorial
*/
/* ---- Single listing (dynamic) ---- */
#page-title .sl-name-link { color: inherit; text-decoration: none; }
.sl-logo, .card__thumb--logo { position: relative; }
.sl-logo .ph-initials, .card__thumb--logo .ph-initials { display: none; place-items: center; width: 100%; height: 100%; font-size: 48px; font-weight: 800; letter-spacing: -.02em; color: #fff; background: var(--grad, linear-gradient(135deg, #FFC300, #FF6A02 45%, #FD0A01)); }
.sl-logo.is-empty .ph-initials, .card__thumb--logo.is-empty .ph-initials { display: grid; }
.card__thumb--logo.is-empty { padding: 0; }
.sl-title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
.sl-rate, .sl-loc { display: inline-flex; align-items: center; gap: 6px; }
.sl-rate strong { color: #fff; }
.sl-loc svg { width: 16px; height: 16px; }
.sl-title .sl-stars { margin: 0; }
.sl-stars .is-on { color: #FFB400; }
.sl-stars .is-on svg { fill: currentColor; }
.sl-stars > span { display: inline-flex; }
.sl-ico { width: 20px; height: 20px; flex: none; margin-top: 3px; display: inline-block; background-color: var(--orange, #FF6A02); -webkit-mask: var(--icon) center/contain no-repeat; mask: var(--icon) center/contain no-repeat; }
.sl-highlights strong { font-weight: 600; }
.sl-two--single { grid-template-columns: 1fr; }
.sl-about p a { text-decoration: underline; }
.sl-bar span:nth-child(2) { position: relative; overflow: hidden; }
.sl-bar span:nth-child(2)::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--p, 0%); border-radius: inherit; background: var(--grad, #FF6A02); }
.sl-bar { grid-template-columns: 56px 1fr 40px; }
.sl-review-list { grid-column: 1 / -1; list-style: none; display: grid; gap: 14px; margin: 0; padding: 0; }
.sl-review-list li { padding: 18px 20px; border-radius: 14px; background: var(--soft); color: var(--black); }
.sl-review-list p { margin: 10px 0 0; color: var(--body); }
.sl-review-list__head { display: flex; align-items: center; gap: 12px; }
.sl-review-list__head > span:nth-child(2) { flex: 1; min-width: 0; }
.sl-review-list__head small { display: block; color: var(--muted); font-size: 13px; }
.sl-review-list__head .sl-stars { margin: 0; }
.sl-review-list__head .sl-stars svg { width: 15px; height: 15px; }
.sl-review-list__avatar { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--navy, #08041D); color: #fff; font-size: 14px; font-weight: 700; }

/* ---- Listing cards: rating row, initials on Editor's choice ---- */
.card__rate { display: flex; align-items: center; gap: 6px; margin: 4px 0 8px; font-size: 14px; color: var(--black); }
.card__rate .sl-stars svg { width: 14px; height: 14px; }
.card__more { display: inline-block; margin-top: 12px; }
.ec-card__logo { position: relative; }
.ec-card__logo .ph-initials { display: none; place-items: center; width: 110px; height: 110px; border-radius: 20px; font-size: 40px; font-weight: 800; color: #fff; background: var(--grad); }
.ec-card__logo.is-empty .ph-initials { display: grid; }
.ec-card h3 a { color: inherit; }

/* ---- Pagination (design CSS resets ul and a) ---- */
.pagination { display: flex; justify-content: center; margin: 50px 0 0; }
.pagination ul.page-numbers { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.pagination .page-numbers li { margin: 0; }
.pagination a.page-numbers, .pagination span.page-numbers, .pagination > a, .pagination > span { display: grid; place-items: center; min-width: 46px; height: 46px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--line-2, rgba(0,0,0,.14)); color: var(--black); font-weight: 600; transition: .3s; }
.pagination a.page-numbers:hover { border-color: var(--black); }
.pagination .page-numbers.current { background: var(--black); border-color: var(--black); color: #fff; }
.pagination .page-numbers.dots { border: 0; min-width: 20px; }

/* ---- Category sidebar: hugs its content; All categories is a full-width button ---- */
.sidebar-card{align-self:start}
.btn.btn-outline { display: flex; width: 100%; margin: 0; padding: 14px 20px; background: transparent; color: var(--black); box-shadow: inset 0 0 0 1px var(--black); font-weight: 600; }
.btn.btn-outline:hover { background: var(--black); color: #fff; }
.cs-toolbar + .cs-count { margin-top: 20px; }

/* ---- Post and page body copy ---- */
.bs-content { color: var(--body); font-size: 17px; line-height: 1.75; }
.bs-content > * + * { margin-top: 1.1em; }
.bs-content h2 { font-size: 30px; margin-top: 1.6em; }
.bs-content h3 { font-size: 23px; margin-top: 1.4em; }
.bs-content a { color: var(--orange); text-decoration: underline; }
.bs-content ul, .bs-content ol { padding-left: 1.3em; }
.bs-content li + li { margin-top: .4em; }
.bs-content img { height: auto; border-radius: 16px; }
.bs-content blockquote { margin: 1.5em 0; padding: 18px 24px; border-left: 4px solid var(--orange); background: var(--soft); border-radius: 0 14px 14px 0; }
.bs-meta img.avatar { width: 34px; height: 34px; border-radius: 50%; }
.bs-faq { margin-top: 50px; }
.bs-faq h2 { font-size: 30px; margin-bottom: 20px; }
.bs-tags { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 8px; }
.bs-tags a { padding: 6px 12px; border-radius: 8px; background: var(--soft); color: var(--black); font-size: 14px; }

/* ---- Contact form ---- */
.ct-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ct-result.is-error { border-color: #F2A7A1; }
.ct-privacy { margin: 0; font-size: 14px; }
.sl-dl dt { display: flex; align-items: center; gap: 8px; }
.sl-dl dt .ui-ico { flex: none; color: var(--orange); }

/* ---- Privacy policy: full container width, sticky section list ---- */
.privacy__body.article--wide, .article--wide { max-width: none; }
.privacy__aside { align-self: start; position: sticky; top: 120px; }
.privacy__toc { display: grid; gap: 4px; margin: 10px 0 26px; }
.privacy__toc a { padding: 8px 0; border-bottom: 1px solid var(--line); color: var(--black); font-weight: 600; }
.privacy__toc a:hover { color: var(--orange); }
.privacy__body h2 { font-size: 30px; margin-top: 1.8em; scroll-margin-top: 120px; }
.privacy__body h2:first-of-type { margin-top: 1.2em; }
.privacy__body h3 { font-size: 21px; }
.privacy__body p { color: var(--body); }
@media (max-width: 900px) { .privacy__aside { position: static; } }

/* Listing cards: the name opens the business website, so it must not cover the image / View listing links. */
.card--listing .card__title a::after { content: none; }
