/*
Theme Name: Pease Bell
Theme URI: https://www.peasebell.com
Author: Pease Bell, CPAs / Modus
Description: Custom WordPress block theme (Full Site Editing) for Pease Bell, CPAs. "Full Service. Boutique Touch." Official Pease Bell palette — Blueberry (PMS 7694 C), Lime Zest (PMS 376 C), Powdered Sugar (PMS 656 C), Silver (PMS 877 C); Helvetica Neue — see docs/brand.md. Tokens in theme.json.
Version: 0.2.0
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pease-bell
*/

/* Most styling is driven by theme.json. Brand helpers the block system can't express live here. */

:root { --pb-shadow: 0 20px 44px -26px rgba(19, 41, 75, 0.45); }

body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Eyebrow / kicker — the signature all-caps tracked label above headlines */
.pb-eyebrow {
  display: inline-block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--navy);
  margin: 0 0 1rem;
}
.pb-eyebrow.is-invert { color: var(--wp--preset--color--emerald-bright); }
.pb-hero .pb-eyebrow { color: var(--wp--preset--color--emerald-bright); }
.pb-eyebrow a { color: inherit; text-decoration: none; }
.pb-eyebrow a:hover { text-decoration: underline; }

/* Cards */
.pb-card {
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 16px;
  padding: clamp(1.5rem, 2.5vw, 2.25rem);
  height: 100%;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.pb-card:hover { transform: translateY(-4px); box-shadow: var(--pb-shadow); }
.pb-card.is-on-navy {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.14);
}

/* "Read more" inline link */
.pb-readmore a, a.pb-readmore {
  font-weight: 600;
  text-decoration: none;
  color: var(--wp--preset--color--navy);
}
.pb-readmore.is-invert a, a.pb-readmore.is-invert { color: var(--wp--preset--color--emerald-bright); }
.pb-readmore a:hover, a.pb-readmore:hover { text-decoration: underline; }

/* Industries accordion (native <details>) */
.wp-block-details.pb-acc { border-bottom: 1px solid var(--wp--preset--color--line); }
.wp-block-details.pb-acc summary {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--wp--preset--color--navy);
  cursor: pointer;
  padding: 1.15rem 0;
  font-size: clamp(1.1rem, 2vw, 1.45rem);
  list-style: none;
}
.wp-block-details.pb-acc summary::-webkit-details-marker { display: none; }
.wp-block-details.pb-acc summary::after { content: "+"; float: right; color: var(--wp--preset--color--navy); font-weight: 400; }
.wp-block-details.pb-acc[open] summary::after { content: "\2013"; }

/* Header navigation + dropdown panels (mega-menu) */
.wp-block-navigation { font-weight: 700; }
/* Tabs grouped with comfortable spacing (Eide Bailly style), CTA pushed to the right */
.pb-nav { font-size: 1rem; }
.pb-nav .wp-block-navigation__container { gap: 1.25rem; flex-wrap: nowrap; }
/* Every top-level menu label stays on a single line (no "Our / Firm" wrap) */
.pb-nav .wp-block-navigation-item { white-space: nowrap; }

/* Fixed-width logo slot: the nav always begins at the same point regardless of
   which logo is shown (standard vs. the Audit page "CPAs" logo), so the menu
   layout is identical on every page. Both logos render at the same height. */
.pb-logo { flex: 0 0 158px; margin: 0; }
.pb-logo a { display: inline-flex; align-items: center; height: 52px; }
.pb-logo img { width: auto !important; height: 42px !important; max-width: 158px; object-fit: contain; display: block; }

/* CTA pair — never wrap or stack; matched size and shape, only the fill differs */
.pb-header .wp-block-buttons { margin-left: auto; flex-wrap: nowrap; gap: 0.6rem; align-items: center; }
.pb-header .wp-block-button { margin: 0; }
.pb-header .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center;
  box-sizing: border-box; min-width: 180px; min-height: 46px;
  padding: 0.5rem 1.1rem !important; font-size: 1rem !important;
  border: 1px solid transparent; border-radius: 10px; white-space: nowrap;
}
.pb-header .pb-nav-cta-alt .wp-block-button__link { border-color: var(--wp--preset--color--navy); }

/* Pin the header's content (logo + nav + CTA) to the SAME content line as the
   hero and section headings, so everything shares one left-justification line. */
.pb-header { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.pb-header > .wp-block-group {
  max-width: var(--wp--style--global--content-size, 1180px);
  margin-inline: auto;
  width: 100%;
  gap: 1.5rem;
}
.wp-block-navigation .wp-block-navigation__submenu-container {
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 12px;
  box-shadow: var(--pb-shadow);
  padding: 0.4rem 0;
  width: max-content;
  max-width: none;
  min-width: 220px;
}
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.55rem 1.25rem; white-space: nowrap; }
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item { white-space: nowrap; }
.wp-block-navigation a:hover, .wp-block-navigation a:focus { color: var(--wp--preset--color--navy); }

/* Forms (Contact / Request a Proposal / Industry) — see CLAUDE.md §10 */
.pb-form { display: grid; gap: 1.1rem; max-width: 640px; }
.pb-form .pb-field { display: flex; flex-direction: column; gap: 0.4rem; }
.pb-form label { font-weight: 600; font-size: 0.9rem; color: var(--wp--preset--color--contrast); }
.pb-form input, .pb-form textarea, .pb-form select {
  font: inherit;
  padding: 0.8rem 1rem;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 10px;
  background: var(--wp--preset--color--surface);
  color: var(--wp--preset--color--contrast);
}
.pb-form input:focus, .pb-form textarea:focus, .pb-form select:focus { outline: 2px solid var(--wp--preset--color--navy); outline-offset: 1px; }
.pb-form .pb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 600px) { .pb-form .pb-row { grid-template-columns: 1fr; } }
.pb-captcha {
  min-height: 72px;
  display: flex; align-items: center;
  color: var(--wp--preset--color--muted); font-size: 0.85rem;
  border: 1px dashed var(--wp--preset--color--line); border-radius: 10px; padding: 0.9rem 1rem;
}
.pb-btn {
  display: inline-block;
  background: var(--wp--preset--color--emerald);
  color: var(--wp--preset--color--contrast);
  font: inherit; font-weight: 600;
  border: 0; border-radius: 10px;
  padding: 0.95rem 2rem; cursor: pointer;
}
.pb-btn:hover { filter: brightness(1.04); }
/* Form on a navy background (e.g., newsletter subscribe) */
.pb-form.is-invert label { color: var(--wp--preset--color--base); }
.pb-form.is-invert .pb-captcha { color: var(--wp--preset--color--muted-invert); border-color: rgba(255,255,255,0.25); }

/* Sticky header — must be on the template-part wrapper (the page-tall containing block),
   not the inner .pb-header group, or sticky is confined to the header's own height and scrolls away. */
header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
/* When the WP admin bar is shown (logged-in preview), pin below it so the header
   doesn't jump up and clip the logo as sticky engages. */
.admin-bar header.wp-block-template-part { top: 32px; }
@media screen and (max-width: 782px) {
  .admin-bar header.wp-block-template-part { top: 46px; }
}

/* Footer (Baker Tilly direction): quiet light links that brighten to white on hover */
.pb-footer a { color: var(--wp--preset--color--muted-invert); text-decoration: none; }
.pb-footer a:hover { color: #ffffff; }
.pb-footer-links { list-style: none; margin: 0; padding: 0; }
.pb-footer-links li { margin: 0 0 0.7rem; }
.pb-footer-links a { font-size: 0.95rem; }
.pb-footer-rule { border: 0; border-top: 1px solid rgba(255, 255, 255, 0.15); }
/* social icons */
.pb-social { display: flex; gap: 0.6rem; margin-top: 1.25rem; }
.pb-social a { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.25); color: var(--wp--preset--color--muted-invert); }
.pb-social a:hover { color: #ffffff; border-color: #ffffff; }
.pb-social svg { width: 17px; height: 17px; fill: currentColor; }

/* Imagery placeholder (until real photography is supplied) */
.pb-imgph {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  min-height: 340px;
  height: 100%;
  background: linear-gradient(135deg, #01426A 0%, #013153 55%, #84BD00 220%);
  display: flex;
  align-items: flex-end;
}
.pb-imgph span {
  display: block;
  padding: 0.9rem 1.1rem;
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}

/* Trust strip under the hero */
.pb-trustbar { opacity: 0.92; }

/* Hero subhead: width tuned so the copy breaks to ~2 lines and spans about the
   same distance as the "Full Service. Boutique Touch." headline (ch scales with font). */
/* Hero content sits in a centered content-width column (matching the menu and
   section headings), with everything left-aligned inside it. */
.pb-hero-inner { max-width: var(--wp--style--global--content-size, 1180px); margin-inline: auto; position: relative; z-index: 1; }
.pb-hero-sub { max-width: 72ch; }

/* Hero background photo at 50% opacity, layered over the navy gradient (keeps headline legible) */
.pb-hero { position: relative; isolation: isolate; }
.pb-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image: url(assets/images/hero-main.jpg?v=1);
  background-size: cover; background-position: center;
  opacity: 0.5;
}

/* Full-bleed sections butt directly against each other — remove the page-background (canvas)
   strips that the default block-gap leaves between root-level bands. */
.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }
main.wp-block-group > * { margin-block-start: 0; margin-block-end: 0; }

/* Industry Leaders — interactive two-column (image swaps on hover/focus) */
.pb-industries { display: flex; gap: clamp(2rem, 4vw, 4rem); align-items: stretch; margin-top: 2.5rem; }
.pb-industries__media {
  position: relative; flex: 1 1 50%; min-width: 0;
  border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 3;
  background: var(--wp--preset--color--navy);
}
.pb-industries__media img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity 0.35s ease;
}
.pb-industries__media img.is-active { opacity: 1; }
.pb-industries__list { flex: 1 1 50%; min-width: 0; display: flex; flex-direction: column; }
.pb-ind-item {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.15rem 0; border-bottom: 1px solid var(--wp--preset--color--line);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 700;
  font-size: clamp(1.15rem, 2vw, 1.6rem); line-height: 1.2;
  color: var(--wp--preset--color--navy); text-decoration: none;
  transition: color 0.2s ease;
}
.pb-ind-item:hover, .pb-ind-item:focus, .pb-ind-item.is-active { color: var(--wp--preset--color--navy); }
.pb-ind-item .pb-ind-arrow { color: var(--wp--preset--color--navy); opacity: 0; transform: translateX(-6px); transition: opacity 0.2s ease, transform 0.2s ease; }
.pb-ind-item:hover .pb-ind-arrow, .pb-ind-item:focus .pb-ind-arrow, .pb-ind-item.is-active .pb-ind-arrow { opacity: 1; transform: translateX(0); }
.pb-industries__cta { margin-top: 1.75rem; }
@media (max-width: 781px) {
  .pb-industries { flex-direction: column; }
  .pb-industries__media { order: -1; }
}

/* Accounting Services — horizontal scrolling card carousel (Baker Tilly style) */
.pb-carousel { position: relative; margin-top: 2.5rem; }
.pb-carousel__track {
  display: flex; gap: 1.5rem; overflow-x: auto;
  scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding-bottom: 0.5rem; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.pb-carousel__track::-webkit-scrollbar { display: none; }
.pb-svc-card {
  /* exactly 3 cards across the track (2 gaps of 1.5rem between them); -1px guards sub-pixel rounding so the 3rd card never clips */
  box-sizing: border-box;
  flex: 0 0 calc((100% - 3rem) / 3 - 1px); scroll-snap-align: start;
  background: var(--wp--preset--color--base);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px; overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.pb-svc-card:hover { transform: translateY(-4px); box-shadow: var(--pb-shadow); }
.pb-svc-card a { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.pb-svc-card__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; background: var(--wp--preset--color--navy); }
.pb-svc-card__body { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.6rem; flex: 1; }
.pb-svc-card__body h3 { color: var(--wp--preset--color--navy); margin: 0; }
.pb-svc-card__body p { color: var(--wp--preset--color--muted); margin: 0; }
.pb-svc-card__more { margin-top: auto; color: var(--wp--preset--color--navy); font-weight: 600; }
.pb-carousel__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid var(--wp--preset--color--line);
  background: var(--wp--preset--color--surface); color: var(--wp--preset--color--navy);
  cursor: pointer; z-index: 2; display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; line-height: 1; box-shadow: var(--pb-shadow);
}
.pb-carousel__nav:hover { color: var(--wp--preset--color--navy); }
/* arrow sits 1.5rem off the card edge — same as the gap between cards (arrow is 46px wide) */
.pb-carousel__prev { left: calc(-1.5rem - 46px); }
.pb-carousel__next { right: calc(-1.5rem - 46px); }
/* arrows live in the side gutter — only show them when there's room to clear the cards (else swipe/scroll) */
@media (max-width: 1360px) { .pb-carousel__nav { display: none; } }
/* Responsive: fewer cards per view as the screen narrows (the track stays swipeable).
   Without this the cards stay locked at 3-across and squish on tablet/mobile. */
@media (max-width: 900px) { .pb-svc-card { flex-basis: calc((100% - 1.5rem) / 2 - 1px); } }
@media (max-width: 640px) { .pb-svc-card { flex-basis: 84%; } }

/* Our Insights — image-topped blog cards (image + title + "Read more" pinned to the bottom) */
.pb-insight-card {
  display: flex; flex-direction: column; height: 100%;
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 16px; overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.pb-insight-card:hover { transform: translateY(-4px); box-shadow: var(--pb-shadow); }
.pb-insight-card__media { display: block; }
.pb-insight-card__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; background: var(--wp--preset--color--navy); }
.pb-insight-card__body { padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; flex: 1; }
.pb-insight-card__title { margin: 0; font-size: 1.15rem; line-height: 1.3; font-weight: 700; color: var(--wp--preset--color--navy); }
.pb-insight-card__title a { color: inherit; text-decoration: none; }
.pb-insight-card__title a:hover { color: var(--wp--preset--color--navy); }
/* read-more sits at the bottom of every card, so it lines up regardless of title length */
.pb-insight-card .pb-readmore { margin: 0; margin-top: auto; }

/* Service / Industry hub pages — full-card clickable tiles */
.pb-hub-grid {
  display: grid; gap: 1.5rem;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  align-items: stretch;
}
.pb-hub-card {
  position: relative; display: flex; flex-direction: column; gap: 0.6rem;
  /* min-height (not height:100%) keeps cards uniform without overflowing the grid track */
  min-height: 190px;
  padding: 1.75rem; overflow: hidden; text-decoration: none;
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 16px;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
/* accent bar that wipes in from the top edge on hover */
.pb-hub-card::before {
  content: ""; position: absolute; top: 0; left: 0; bottom: 0; width: 4px;
  background: var(--wp--preset--color--emerald);
  transform: scaleY(0); transform-origin: top; transition: transform 0.3s ease;
}
.pb-hub-card:hover { transform: translateY(-4px); box-shadow: var(--pb-shadow); border-color: var(--wp--preset--color--navy-soft); }
.pb-hub-card:hover::before { transform: scaleY(1); }
.pb-hub-card__title { margin: 0; font-size: 1.3rem; line-height: 1.3; font-weight: 700; color: var(--wp--preset--color--navy); }
.pb-hub-card__desc { margin: 0; color: var(--wp--preset--color--muted); }
.pb-hub-card__desc:empty { display: none; }
.pb-hub-card__arrow {
  margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--line);
  color: var(--wp--preset--color--navy); font-weight: 600;
}

/* Service detail — capability list (two-up rows with arrow markers) */
.pb-caplist {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0 2.5rem;
}
.pb-caplist li {
  display: flex; gap: 0.7rem; align-items: baseline;
  padding: 0.95rem 0; border-bottom: 1px solid var(--wp--preset--color--line);
  font-size: 1.1rem; font-weight: 600; color: var(--wp--preset--color--navy);
}
.pb-caplist li::before { content: "\2192"; color: var(--wp--preset--color--navy); font-weight: 700; }
.pb-caplist.is-on-navy li { color: #ffffff; border-bottom-color: rgba(255, 255, 255, 0.16); }
.pb-caplist.is-on-navy li::before { color: var(--wp--preset--color--emerald-bright); }

/* Insights archive — editorial card grid (featured first + filter sidebar) */
.pb-insights-layout { align-items: flex-start; }
.pb-archive-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.25rem 1.75rem; }
.pb-archive-grid > li { margin: 0; }
.pb-archive-grid .wp-block-post-featured-image { margin: 0 0 0.9rem; }
.pb-archive-grid .wp-block-post-featured-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 14px; }
.pb-archive-grid .wp-block-post-terms.pb-card-eyebrow { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; color: var(--wp--preset--color--muted); margin: 0 0 0.3rem; }
.pb-archive-grid .pb-card-eyebrow a { color: inherit; text-decoration: none; }
.pb-archive-grid .pb-card-eyebrow a:hover { color: var(--wp--preset--color--navy); text-decoration: underline; }
.pb-archive-grid .wp-block-post-title { line-height: 1.3; margin: 0 0 0.35rem; }
.pb-archive-grid .wp-block-post-title a { color: var(--wp--preset--color--navy); text-decoration: none; }
.pb-archive-grid .wp-block-post-title a:hover { color: var(--wp--preset--color--navy); }
.pb-archive-grid .wp-block-post-date { color: var(--wp--preset--color--muted); font-size: 0.85rem; }
.pb-archive-grid .wp-block-post-excerpt { display: none; }
.pb-archive-grid .wp-block-post-excerpt p { margin: 0; }
/* featured first card spans the full row as a clean banner-image card */
.pb-archive-grid > li:first-child {
  grid-column: 1 / -1; display: block; margin-bottom: 0.75rem;
  padding-bottom: 2.5rem; border-bottom: 1px solid var(--wp--preset--color--line);
}
.pb-archive-grid > li:first-child .wp-block-post-featured-image { margin: 0 0 1.25rem; }
.pb-archive-grid > li:first-child .wp-block-post-featured-image img { aspect-ratio: 16 / 9; }
.pb-archive-grid > li:first-child .wp-block-post-title { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.pb-archive-grid > li:first-child .wp-block-post-excerpt { display: block; color: var(--wp--preset--color--muted); margin: 0.6rem 0 0; max-width: 70ch; }
@media (max-width: 781px) { .pb-archive-grid { grid-template-columns: 1fr; } }

/* Branded pagination (pill numbers) */
.wp-block-query-pagination { gap: 0.4rem; }
.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination .wp-block-query-pagination-previous,
.wp-block-query-pagination .wp-block-query-pagination-next {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 42px; height: 42px; padding: 0 0.85rem;
  border: 1px solid var(--wp--preset--color--line); border-radius: 999px;
  color: var(--wp--preset--color--navy); text-decoration: none; font-weight: 600; font-size: 0.95rem;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.wp-block-query-pagination a.page-numbers:hover,
.wp-block-query-pagination .wp-block-query-pagination-previous:hover,
.wp-block-query-pagination .wp-block-query-pagination-next:hover { border-color: var(--wp--preset--color--navy); color: var(--wp--preset--color--navy); }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--navy); color: #fff; border-color: var(--wp--preset--color--navy); }
.wp-block-query-pagination .page-numbers.dots { border: 0; min-width: auto; }

/* Insights filter sidebar */
.pb-filter { border: 1px solid var(--wp--preset--color--line); border-radius: 16px; padding: 1.35rem 1.5rem 0.75rem; position: sticky; top: 92px; }
.pb-filter__title { font-weight: 700; font-size: 0.8rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--navy); margin: 0; }
.pb-filter__reset { margin: 0.25rem 0 0.75rem; }
.pb-filter__reset a { color: var(--wp--preset--color--navy); text-decoration: none; font-weight: 600; }
.pb-filter__sec { border-top: 1px solid var(--wp--preset--color--line); padding: 0.4rem 0; }
.pb-filter__sec > summary { cursor: pointer; list-style: none; font-weight: 700; color: var(--wp--preset--color--navy); padding: 0.65rem 0; display: flex; justify-content: space-between; align-items: center; }
.pb-filter__sec > summary::-webkit-details-marker { display: none; }
.pb-filter__sec > summary::after { content: "+"; color: var(--wp--preset--color--muted); font-weight: 400; font-size: 1.2rem; }
.pb-filter__sec[open] > summary::after { content: "\2013"; }
.pb-filter .wp-block-tag-cloud { line-height: 1.4; margin-bottom: 0.5rem; }
.pb-filter .wp-block-tag-cloud a { display: block; padding: 0.32rem 0; color: var(--wp--preset--color--muted); text-decoration: none; font-size: 0.95rem !important; }
.pb-filter .wp-block-tag-cloud a:hover { color: var(--wp--preset--color--navy); }
.pb-filter .wp-block-tag-cloud .tag-link-count { color: var(--wp--preset--color--muted-invert); }
@media (max-width: 781px) { .pb-filter { position: static; margin-top: 2.5rem; } }

.pb-byline { font-size: 0.95rem; }

/* Fluent Forms — brand the submit button + tidy spacing */
.fluentform .ff-btn-submit,
.fluentform button[type="submit"] {
  background-color: var(--wp--preset--color--navy) !important;
  color: #ffffff !important;
  border: 0; border-radius: 10px; font-weight: 600; padding: 0.7rem 1.5rem;
}
.fluentform .ff-btn-submit:hover,
.fluentform button[type="submit"]:hover { background-color: var(--wp--preset--color--navy-deep) !important; color: #ffffff !important; }
.fluentform .ff-el-input--label label { font-weight: 600; color: var(--wp--preset--color--navy); }
.fluentform { max-width: 720px; }

/* Events — tabs + event cards */
.pb-events-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2.25rem; }
.pb-events-tabs a { padding: 0.5rem 1.15rem; border: 1px solid var(--wp--preset--color--line); border-radius: 999px; color: var(--wp--preset--color--navy); text-decoration: none; font-weight: 600; font-size: 0.95rem; }
.pb-events-tabs a:hover { border-color: var(--wp--preset--color--navy); }
.pb-events-tabs a.is-active { background: var(--wp--preset--color--navy); color: #fff; border-color: var(--wp--preset--color--navy); }
/* Baker Tilly-style list: date badge (left) + details (right), divided by rules */
.pb-events-list { border-top: 1px solid var(--wp--preset--color--line); }
.pb-event { display: flex; gap: 1.75rem; align-items: flex-start; padding: 1.85rem 0.25rem; border-bottom: 1px solid var(--wp--preset--color--line); transition: background 0.2s ease; }
.pb-event:hover { background: rgba(46, 79, 110, 0.03); }
.pb-event__date { flex: 0 0 72px; text-align: center; line-height: 1; }
.pb-event__month { display: block; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; color: var(--wp--preset--color--muted); }
.pb-event__day { display: block; font-size: 2.6rem; font-weight: 700; color: var(--wp--preset--color--navy); line-height: 1.05; }
.pb-event__body { flex: 1; min-width: 0; }
.pb-event__type { display: inline-block; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; color: var(--wp--preset--color--navy); margin-bottom: 0.3rem; }
.pb-event__title { margin: 0 0 0.4rem; color: var(--wp--preset--color--navy); font-size: 1.4rem; line-height: 1.3; }
.pb-event__title a { color: inherit; text-decoration: none; }
.pb-event__title a:hover { color: var(--wp--preset--color--navy); }
.pb-event__meta { margin: 0; color: var(--wp--preset--color--muted); font-size: 0.95rem; }
.pb-events-empty { padding: 2.5rem 0; color: var(--wp--preset--color--muted); font-size: 1.05rem; }

/* Locations — office cards */
.pb-office-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.75rem; }
.pb-office { border: 1px solid var(--wp--preset--color--line); border-radius: 16px; padding: 1.6rem 1.75rem; background: var(--wp--preset--color--surface); display: flex; flex-direction: column; }
.pb-office__tag { margin: 0; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; color: var(--wp--preset--color--navy); }
.pb-office__city { margin: 0.25rem 0 0.75rem; color: var(--wp--preset--color--navy); font-size: 1.35rem; }
.pb-office__addr { font-style: normal; color: var(--wp--preset--color--muted); line-height: 1.55; }
.pb-office__contact { margin: 0.85rem 0 1.1rem; display: flex; flex-direction: column; gap: 0.15rem; }
.pb-office__contact a { color: var(--wp--preset--color--navy); text-decoration: none; font-weight: 600; }
.pb-office__contact span { color: var(--wp--preset--color--muted); font-size: 0.85rem; }
.pb-office__dir { margin-top: auto; color: var(--wp--preset--color--navy); font-weight: 600; text-decoration: none; }
.pb-office__dir:hover { color: var(--wp--preset--color--navy); }

/* Contact page — info lists + form placeholder */
.pb-contact-list, .pb-contact-links { list-style: none; margin: 0.5rem 0 0; padding: 0; }
.pb-contact-list li { display: flex; gap: 0.75rem; padding: 0.5rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.pb-contact-list__label { min-width: 64px; color: var(--wp--preset--color--muted); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em; }
.pb-contact-list a { color: var(--wp--preset--color--navy); text-decoration: none; font-weight: 600; }
.pb-contact-links li { padding: 0.45rem 0; }
.pb-contact-links a { color: var(--wp--preset--color--navy); text-decoration: none; font-weight: 600; }
.pb-contact-links a:hover { color: var(--wp--preset--color--navy); }
.pb-form-placeholder { border: 1px dashed var(--wp--preset--color--navy-soft); border-radius: 14px; padding: 2rem; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--muted); }
.pb-form-placeholder__title { margin: 0 0 0.5rem; font-weight: 700; color: var(--wp--preset--color--navy); }
.pb-form-placeholder a { color: var(--wp--preset--color--navy); font-weight: 600; }

/* Our Team — archive grid (rendered by [pb_team_grid]) */
.pb-team-archive { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2.5rem 1.75rem; }
.pb-team-card { margin: 0; display: flex; flex-direction: column; }
.pb-team-card .pb-team-photo { display: block; margin: 0 0 0.9rem; }
.pb-team-card img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 14px; display: block; }
/* fixed-height name (≈2 lines) so the role + department tags line up across the row */
.pb-team-name { margin: 0 0 0.4rem; line-height: 1.3; font-size: 1.05rem; font-weight: 700; min-height: 2.6em; }
.pb-team-name a { color: var(--wp--preset--color--navy); text-decoration: none; }
.pb-team-name a:hover { color: var(--wp--preset--color--navy); }
/* role shortcode output (navy role + emerald department tag, per brand) */
.pb-role { display: block; margin: 0; font-weight: 700; color: var(--wp--preset--color--navy); font-size: 0.92rem; }
.pb-dept { display: block; margin: 0.15rem 0 0; color: var(--wp--preset--color--navy); font-size: 0.74rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }

/* Our Team — single bio page */
.pb-bio-hero__photo .wp-block-post-featured-image img { width: 100%; max-width: 360px; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 16px; margin-left: auto; }
.pb-bio-hero .pb-member-role { margin-top: 0.5rem; }
.pb-bio-hero .pb-role { color: #ffffff; font-size: 1.15rem; }
.pb-bio-hero .pb-dept { color: var(--wp--preset--color--emerald-bright); font-size: 0.8rem; }
/* contact icons */
.pb-bio-contact { display: flex; gap: 0.6rem; margin-top: 1.5rem; }
.pb-bio-contact a { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.28); color: var(--wp--preset--color--muted-invert); transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease; }
.pb-bio-contact a:hover { color: #013153; background: #ffffff; border-color: #ffffff; }
.pb-bio-contact svg { width: 18px; height: 18px; fill: currentColor; }
/* bio body: styled section headers + readable paragraphs */
.pb-bio-body .pb-bio-h { font-size: 1.4rem; text-transform: none; letter-spacing: normal; line-height: 1.25; font-weight: 700; color: var(--wp--preset--color--navy); margin: 2.25rem 0 0.6rem; }
.pb-bio-body .pb-bio-h:first-child { margin-top: 0; }
.pb-bio-body p { color: var(--wp--preset--color--contrast); line-height: 1.65; margin: 0 0 1rem; }
/* sidebar blocks */
.pb-bio-sidebar { position: sticky; top: 96px; align-self: start; }
.pb-bio-block { border: 1px solid var(--wp--preset--color--line); border-radius: 16px; padding: 1.5rem; margin-bottom: 1.5rem; background: var(--wp--preset--color--surface); }
.pb-bio-block__title { margin: 0 0 0.9rem; color: var(--wp--preset--color--navy); }
/* "Get in Touch" in the bio sidebar: navy button with canvas-colored text */
.pb-bio-block .wp-block-button__link { background-color: var(--wp--preset--color--navy); color: var(--wp--preset--color--base); }
.pb-bio-block .wp-block-button__link:hover { background-color: var(--wp--preset--color--navy-deep); color: var(--wp--preset--color--base); }
.pb-spec-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pb-spec-list li { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--navy); font-weight: 600; font-size: 0.85rem; padding: 0.35rem 0.8rem; border-radius: 999px; }

/* Bio — "Insights by [Name]" visual card grid of the member's authored posts */
.pb-member-posts { margin-top: 2.75rem; }
.pb-member-posts__grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1.25rem; margin-top: 1.5rem; }
.pb-member-posts__grid .pb-insight-card__body { gap: 0.45rem; padding: 1.1rem 1.2rem 1.3rem; }
.pb-member-posts__grid .pb-insight-card__title { font-size: 1.02rem; }
.pb-insight-card__eyebrow { margin: 0; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.pb-insight-card__date { margin: 0; color: var(--wp--preset--color--muted); font-size: 0.82rem; }
.pb-insight-card__img--placeholder { background: linear-gradient(150deg, var(--wp--preset--color--navy) 0%, var(--wp--preset--color--navy-deep) 70%, var(--wp--preset--color--emerald) 320%); }
@media (max-width: 781px) { .pb-bio-sidebar { position: static; } .pb-bio-hero__photo .wp-block-post-featured-image img { margin: 0 auto 0 0; } }

/* Service detail — team grid (square headshots + name + title) */
.pb-team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 2rem 1.5rem; }
.pb-team-member img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 14px; display: block; background: var(--wp--preset--color--line); }
.pb-team-member__name { margin: 0.9rem 0 0.2rem; font-weight: 700; line-height: 1.25; color: var(--wp--preset--color--navy); }
.pb-team-member__title { margin: 0; color: var(--wp--preset--color--muted); font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.05em; }
/* Team cards link to the individual's bio page */
a.pb-team-member { display: block; text-decoration: none; color: inherit; }
a.pb-team-member img { transition: transform .25s ease, box-shadow .25s ease; }
a.pb-team-member:hover img { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(33, 64, 92, .16); }
a.pb-team-member:hover .pb-team-member__name { color: var(--wp--preset--color--navy); }

/* Careers — benefits list (two-up grid with emerald bullets, on the navy band) */
.pb-benefits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0.85rem 2.5rem; }
.pb-benefits li { position: relative; padding-left: 1.6rem; color: var(--wp--preset--color--muted-invert); line-height: 1.5; }
.pb-benefits li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--wp--preset--color--emerald-bright); }

/* Audit & Assurance page only — show the full "Pease Bell CPAs" logo in the header */
/* Audit & Assurance page only — swap to the transparent "Pease Bell CPAs" logo.
   Uses content:url so the image gets the exact same sizing/position as the
   standard logo (same height, same slot) — both logos land in the same place. */
.pb-page-audit-assurance-services .pb-logo img { content: url(assets/images/pease-bell-cpas-logo.png); }

/* Slightly smaller header CTA (tighter padding; text matches the tabs) */
.pb-nav-cta .wp-block-button__link { line-height: 1.2; }

/* Header — small screens: let the bar wrap and the CTAs shrink so the two
   min-width buttons never overflow next to the logo + hamburger. */
@media (max-width: 900px) {
  .pb-header > .wp-block-group { flex-wrap: wrap; gap: 0.75rem 1rem; }
  .pb-header .wp-block-buttons { margin-left: 0; }
  .pb-header .wp-block-button__link { min-width: 0; padding: 0.45rem 1rem !important; }
}

/* Careers — open positions (Paylocity feed) */
.pb-jobs { margin-top: 2.5rem; display: flex; flex-direction: column; gap: 1rem; }
.pb-jobs-empty { margin-top: 2rem; color: var(--wp--preset--color--muted); }
.pb-job {
  background: var(--wp--preset--color--base);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 14px; overflow: hidden;
}
.pb-job__summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.4rem 1.6rem;
}
.pb-job__summary::-webkit-details-marker { display: none; }
.pb-job__head { display: flex; flex-direction: column; gap: 0.3rem; }
.pb-job__title { color: var(--wp--preset--color--navy); font-weight: 700; font-size: 1.15rem; }
.pb-job__meta { color: var(--wp--preset--color--muted); font-size: 0.95rem; }
.pb-job__toggle { flex: 0 0 auto; width: 1.4rem; height: 1.4rem; position: relative; }
.pb-job__toggle::before,
.pb-job__toggle::after {
  content: ""; position: absolute; top: 50%; left: 50%; background: var(--wp--preset--color--navy);
  transform: translate(-50%, -50%);
}
.pb-job__toggle::before { width: 1.1rem; height: 2px; }
.pb-job__toggle::after { width: 2px; height: 1.1rem; transition: transform 0.2s ease; }
.pb-job[open] .pb-job__toggle::after { transform: translate(-50%, -50%) scaleY(0); }
.pb-job__body { padding: 0 1.6rem 1.6rem; }
.pb-job__desc { color: var(--wp--preset--color--contrast); line-height: 1.6; }
.pb-job__desc :where(h1, h2, h3, h4) { color: var(--wp--preset--color--navy); }
.pb-job__desc img { max-width: 100%; height: auto; }
.pb-job__apply { margin-top: 1.25rem; }
