/* public-b: services, counties, towns, content pages, blog, links, sitemap */

/* Breadcrumbs */
.pub2-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; font: var(--text-body-sm); color: var(--text-secondary); }
.pub2-crumbs li { display: inline-flex; gap: 8px; align-items: center; }
.pub2-crumbs li + li::before { content: "/"; opacity: .8; }
.pub2-crumbs a { color: var(--text-secondary); }
.pub2-crumbs.inverse ol, .pub2-crumbs.inverse a { color: var(--blue-200); }
.pub2-crumbs.inverse [aria-current] { color: var(--white); }

/* Hero postcode box */
.pub2-hero-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; max-width: 480px; background: var(--white); border-radius: var(--radius-md); padding: 10px; }
.pub2-hero-search .input { min-height: 46px; }
.pub2-hero-search .btn { min-height: 46px; }

/* Specialist rows */
.pub2-firm { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 20px 0; border-top: 1px solid var(--border-subtle); color: var(--text-primary); text-decoration: none; }
.pub2-firm:hover { text-decoration: none; color: var(--text-primary); background: var(--ice-050); }
.pub2-firm.compact { padding: 18px 0; }

/* Side link lists (services / towns) */
.pub2-side-link { display: block; padding: 6px 0; font: var(--text-body-sm); color: var(--text-secondary); }
.pub2-side-link.current { font: var(--text-label-md); color: var(--text-brand); }
.pub2-side-link:hover { color: var(--text-link-hover); }

/* Chips */
.pub2-chip { display: inline-flex; align-items: center; font: var(--text-label-md); padding: 9px 14px; border-radius: var(--radius-md); background: var(--ice-100); color: var(--text-primary); text-decoration: none; }
.pub2-chip:hover { text-decoration: none; background: var(--ice-200); color: var(--text-primary); }
.pub2-chip.active { background: var(--blue-600); color: var(--white); }

/* Cards used as links */
.pub2-card-link { display: flex; flex-direction: column; gap: 14px; color: var(--text-primary); text-decoration: none; min-width: 0; }
.pub2-card-link:hover { text-decoration: none; color: var(--text-primary); }
.pub2-card-link:hover span:nth-of-type(2) { text-decoration: underline; }

/* Contents list */
.pub2-toc { background: var(--ice-050); border-radius: var(--radius-lg); padding: 24px 28px; display: flex; flex-direction: column; gap: 10px; }
.pub2-toc ol { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font: var(--text-body-sm); }

/* FAQs */
.pub2-faq { border-top: 1px solid var(--border-subtle); }
.pub2-faq:last-child { border-bottom: 1px solid var(--border-subtle); }
.pub2-faq summary { cursor: pointer; list-style: none; padding: 18px 36px 18px 0; font: var(--text-label-lg); position: relative; }
.pub2-faq summary::-webkit-details-marker { display: none; }
.pub2-faq summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font: 400 24px/1 var(--font-body); color: var(--text-brand); }
.pub2-faq[open] summary::after { content: "–"; }
.pub2-faq .ans { padding: 0 0 20px; font: var(--text-body-md); color: var(--text-secondary); max-width: 720px; }

/* Navy call-to-action band */
.pub2-cta { background: var(--navy-900); border-radius: var(--radius-xl); padding: 40px; display: flex; justify-content: space-between; align-items: center; gap: 32px; }

/* Tab links (no-JS friendly) */
.pub2-tabs a { color: var(--text-secondary); }
.pub2-tabs a:hover { text-decoration: none; color: var(--text-primary); }

/* Preview banner */
.pub2-preview-banner { background: #fdf1d8; color: #6b4b0c; font: var(--text-label-md); padding: 12px 20px; border-radius: var(--radius-md); margin-bottom: 12px; text-align: center; }

/* Compare table (scrolls on small screens) */
.pub2-compare { overflow-x: auto; }
.pub2-compare-row { display: grid; grid-template-columns: 40px minmax(180px, 1.6fr) minmax(110px, 1fr) minmax(90px, .8fr) minmax(120px, .9fr) minmax(120px, .9fr) minmax(110px, .8fr); gap: 16px; align-items: center; min-width: 880px; }

/* Blog article */
.pub2-article { max-width: 760px; }
.pub2-article.prose { font: var(--text-body-lg); }
.pub2-article.prose p, .pub2-article.prose li { color: var(--ink-700); }

@media (max-width: 960px) {
  .pub2-side-layout > aside { position: static !important; order: 2; }
  .pub2-cta { flex-direction: column; align-items: flex-start; padding: 28px 24px; }
  .pub2-sticky { position: static !important; }
}
@media (max-width: 640px) {
  .pub2-hero-search { grid-template-columns: minmax(0, 1fr); }
  .pub2-hero-img { height: 220px !important; }
  .pub2-firm { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .pub2-firm .badge { justify-self: start; }
  .pub2-cta .btn { width: 100%; }
}



/* Panels hidden by the tab script (inline display styles would otherwise win) */
[data-pub2-panel][hidden], section[hidden] { display: none !important; }

/* Rankings tier rows */
@media (max-width: 960px) {
  .pub2-tier { grid-template-columns: 44px minmax(0, 1fr) auto !important; gap: 8px 16px !important; }
  .pub2-tier > :nth-child(3) { grid-column: 2 / -1; grid-row: 2; }
}

/* Decorative panel for posts without an image */
.pub2-noimg { display: flex; align-items: center; justify-content: center; border-radius: var(--radius-lg); color: var(--blue-300); background: linear-gradient(135deg, var(--navy-800), var(--blue-600)); }
