/* PBJConnect extends the shared HAS theme without changing its source. */
:root { --pbj-forest: #153f35; --pbj-green: #2e6450; --pbj-sage: #dce7aa; --pbj-ivory: #f9f8f3; --pbj-line: #d5dfd1; }
.header-inner .pbj-wordmark, .pbj-wordmark { display: inline-flex; align-items: baseline; gap: 0; white-space: nowrap; color: var(--pbj-forest); font-size: 29px; font-weight: 500; letter-spacing: -.055em; line-height: 1.2; }
.pbj-wordmark > span:first-child { font-weight: 800; letter-spacing: -.045em; }
.pbj-wordmark > span:last-child { font-weight: 400; color: #3a6753; }
.header-inner .pbj-wordmark { flex-shrink: 0; }
.hero-layout { grid-template-columns: 1.06fr 1fr; gap: 70px; }
.hero h1 { max-width: 620px; font-size: clamp(43px, 4.2vw, 61px); }
.hero-content > p { max-width: 490px; }
.hero-visual { height: 520px; }
.hero-caption { position: absolute; inset: auto 0 0; padding: 21px 25px; background: #f9f8f3f2; border-top: 1px solid #ffffffb3; color: var(--pbj-forest); font-size: 12px; line-height: 1.7; }
.hero-caption strong { display: block; font-size: 13px; font-weight: 700; margin-bottom: 3px; }
.hero-caption span, .hero-caption p { display: block; color: #58705e; font-size: 11px; line-height: 1.7; margin: 0; }
.pbj-services.capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.pbj-services .capability-card { min-height: 265px; padding: 31px 34px; }
.pbj-services .capability-card .card-top { margin-bottom: 24px; }
.pbj-services .capability-card h3 { font-size: 26px; }
.pbj-services .capability-card > p { margin-bottom: 0; }
.pbj-services .capability-card > .text-link { align-self: flex-start; margin-top: 22px; }
.pbj-services .capability-card:hover { background: var(--paper); }
.pbj-workflow { background: #eef2e8; }
.workflow-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; list-style: none; margin: 0; padding: 0; counter-reset: pbj-step; }
.workflow-steps > li { position: relative; min-width: 0; border-top: 1px solid #bfcfba; padding-top: 23px; counter-increment: pbj-step; }
.workflow-steps > li > .step-number { display: block; margin-bottom: 24px; color: var(--pbj-green); font-size: 10px; font-weight: 600; letter-spacing: .08em; }
.workflow-steps h3 { font-size: 24px; line-height: 1.25; margin-bottom: 16px; }
.workflow-steps p { color: #58705e; font-size: 13px; line-height: 1.9; margin-bottom: 0; }
.ratings-layout, .staffing-layout, .reporting-layout { display: grid; grid-template-columns: .95fr 1.1fr; gap: 85px; align-items: start; }
.ratings-layout > *, .staffing-layout > *, .reporting-layout > * { min-width: 0; }
.ratings-layout > div > h2, .staffing-layout > div > h2, .reporting-layout > div > h2 { max-width: 540px; }
.ratings-layout > div > p, .staffing-layout > div > p, .reporting-layout > div > p { color: var(--muted); font-size: 15px; line-height: 1.9; }
.rating-board { background: #f0f3e9; border: 1px solid var(--pbj-line); padding: 30px; }
.rating-board > .eyebrow { font-size: 9px; color: #577152; margin-bottom: 22px; }
.rating-board > h3 { font-size: 28px; margin-bottom: 22px; }
.rating-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0; border-bottom: 1px solid #b9cbb2; }
.rating-tabs [role="tab"] { position: relative; min-height: 54px; min-width: 0; border: 0; border-bottom: 3px solid transparent; padding: 12px 9px; background: transparent; color: #50674f; font-size: 12px; font-weight: 600; line-height: 1.5; text-align: center; cursor: pointer; }
.rating-tabs [role="tab"]:hover { background: #e5edda; color: var(--pbj-forest); }
.rating-tabs [role="tab"][aria-selected="true"] { border-bottom-color: var(--pbj-forest); background: #e5edda; color: var(--pbj-forest); }
.rating-tabs [role="tab"]:focus-visible { outline-offset: -4px; }
.rating-panel { min-height: 260px; padding: 28px 4px 2px; }
.rating-panel[hidden] { display: none !important; }
.rating-panel h3, .rating-panel h4 { font-size: 25px; font-weight: 600; line-height: 1.3; margin-bottom: 17px; }
.rating-panel p { color: #52694f; font-size: 13px; line-height: 1.9; margin-bottom: 19px; }
.rating-panel ul { padding-left: 17px; margin: 0; }
.rating-panel li { color: #52694f; font-size: 12px; line-height: 1.8; padding-left: 4px; margin-bottom: 9px; }
.rating-panel > :last-child { margin-bottom: 0; }
.rating-panel:focus-visible { outline-offset: 7px; }
.rating-board .planning-note { margin-top: 20px; }
.staffing-layout { align-items: center; }
.planning-example { background: #fff; border: 1px solid var(--pbj-line); border-top: 3px solid var(--pbj-green); padding: 34px; }
.planning-example > .eyebrow { font-size: 9px; color: #577152; margin-bottom: 16px; }
.planning-example h3 { font-size: 27px; line-height: 1.3; margin-bottom: 15px; }
.planning-example > p { color: var(--muted); font-size: 12px; line-height: 1.9; }
.planning-example label[for="census-input"] { display: block; color: var(--pbj-forest); font-size: 12px; font-weight: 600; line-height: 1.7; margin-bottom: 11px; }
.census-control { display: flex; justify-content: flex-start; align-items: center; gap: 14px; }
.census-control > span { color: #60735a; font-size: 12px; }
.census-control label[for="census-input"] { margin-bottom: 0; }
#census-input { width: 112px; max-width: 100%; min-height: 57px; border: 1px solid #9db196; border-radius: 0; padding: 10px 12px; background: var(--pbj-ivory); color: var(--pbj-forest); font-family: inherit; font-size: 25px; font-weight: 600; line-height: 1.3; }
#census-range { display: block; width: 100%; min-width: 0; min-height: 30px; margin: 23px 0 25px; accent-color: var(--pbj-green); cursor: pointer; }
.range-labels { display: flex; justify-content: space-between; margin: -18px 0 25px; color: #64765e; font-size: 10px; }
.planning-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; border-top: 1px solid var(--pbj-line); padding-top: 25px; }
.planning-results > * { min-width: 0; }
.planning-results > :last-child { border-left: 1px solid var(--pbj-line); padding-left: 25px; }
.planning-results p, .planning-results label, .planning-results span { display: block; color: #5c7055; font-size: 11px; line-height: 1.65; margin: 0 0 8px; }
.planning-results > div > span { min-height: 36px; }
#total-hours, #cna-hours { display: block; color: var(--pbj-forest); font-size: 39px; font-weight: 600; line-height: 1.1; letter-spacing: -.05em; font-variant-numeric: tabular-nums; margin-block: 8px; }
.planning-results small { color: #64765e; font-size: 10px; line-height: 1.6; }
.planning-note, .planning-example .planning-note { color: #62745d; font-size: 11px; line-height: 1.85; margin: 25px 0 0; }
.reporting-layout { grid-template-columns: .85fr 1.2fr; }
.reporting-list { border-bottom: 1px solid var(--pbj-line); }
.reporting-list article { display: grid; grid-template-columns: minmax(0, 1fr) 104px; column-gap: 28px; row-gap: 11px; padding: 25px 0; border-top: 1px solid var(--pbj-line); }
.reporting-list article > div { min-width: 0; }
.reporting-list h3 { font-size: 23px; font-weight: 600; line-height: 1.3; margin-bottom: 0; }
.reporting-list p { grid-column: 1; color: var(--muted); font-size: 13px; line-height: 1.85; margin-bottom: 0; }
.reporting-list article > div > p { margin-top: 11px; }
.reporting-list article > span { grid-column: 2; grid-row: 1 / span 2; align-self: start; border-left: 1px solid #ccdac4; padding-left: 15px; color: #5b7252; font-size: 10px; font-weight: 600; line-height: 1.75; }
.source-disclosure { border-top: 1px solid var(--pbj-line); border-bottom: 1px solid var(--pbj-line); margin-top: 38px; }
.source-disclosure > summary, .faq-list summary { display: block; position: relative; padding: 23px 86px 23px 0; list-style: none; cursor: pointer; }
.source-disclosure > summary { color: var(--pbj-forest); font-size: 13px; font-weight: 600; line-height: 1.7; }
.source-disclosure > summary::-webkit-details-marker, .faq-list summary::-webkit-details-marker { display: none; }
.source-disclosure > summary::after, .faq-list summary::after { content: 'Read more'; position: absolute; top: 26px; right: 0; width: auto; height: auto; color: var(--pbj-green); font-size: 10px; font-weight: 600; line-height: 1.5; letter-spacing: 0; }
.source-disclosure[open] > summary::after, .faq-list details[open] > summary::after { content: 'Close'; }
.source-disclosure summary > span[aria-hidden], .faq-list summary > span[aria-hidden] { display: none; }
.source-disclosure > summary:hover::after, .faq-list summary:hover::after { text-decoration: underline; text-underline-offset: 4px; }
.source-disclosure > div { padding: 0 0 25px; }
.source-disclosure p, .source-disclosure li { color: #5e7157; font-size: 12px; line-height: 1.9; }
.source-disclosure ul { padding-left: 17px; margin: 0; }
.source-disclosure li { margin-bottom: 11px; }
.source-disclosure a { color: var(--pbj-forest); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.source-disclosure > :last-child { margin-bottom: 0; }
.faq-list summary { font-size: 14px; }
.faq-list details > p { font-size: 13px; }
.footer-brand .pbj-wordmark { font-size: 30px; color: #f0f3e9; }
.footer-brand .pbj-wordmark > span:last-child { color: #c5d4b7; }
.footer-brand > p { max-width: 320px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.integration-line { display: grid; grid-template-columns: .8fr 1.6fr; gap: 9px 40px; border-top: 1px solid #c7d4bf; margin-top: 46px; padding-top: 25px; }
.integration-line .eyebrow { grid-row: 1 / span 2; font-size: 9px; color: #53704c; max-width: 240px; margin: 2px 0 0; }
.integration-line p { color: var(--pbj-forest); font-size: 14px; font-weight: 500; line-height: 1.8; margin: 0; }
.integration-line > span:not(.eyebrow) { grid-column: 2; color: #63765b; font-size: 10px; line-height: 1.8; }
.ratings-copy .text-link { margin-top: 5px; }
.rating-board .diagram-label { display: block; color: #597450; font-size: 9px; font-weight: 600; line-height: 1.6; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 20px; }
.panel-kicker { display: block; color: #597450; font-size: 10px; font-weight: 600; line-height: 1.7; margin-bottom: 15px; }
.rating-board .rating-note { border-top: 1px solid #cddac4; padding-top: 20px; margin: 24px 0 0; color: #617456; font-size: 10px; line-height: 1.85; }
.staffing-copy .staffing-jurisdiction { border-left: 2px solid #9fb895; background: #edf2e5; padding: 18px 20px; margin: 28px 0 0; font-size: 12px; line-height: 1.9; color: #526d4b; }
.staffing-jurisdiction strong { color: var(--pbj-forest); }
.planning-example .planning-intro { margin-bottom: 23px; }
.planning-example .census-label { margin-top: 0; }
.planning-example > .text-link { margin-top: 23px; font-size: 11px; }
.reporting-list article > .reporting-category { font-size: 9px; letter-spacing: .035em; }
.reporting-scope { margin: 34px 0 0; padding-top: 22px; border-top: 1px solid var(--pbj-line); color: #60745a; font-size: 11px; line-height: 1.85; }
.site-footer .source-disclosure { margin-top: 0; border-color: #ffffff25; }
.site-footer .source-disclosure > summary { color: #eef2e6; }
.site-footer .source-disclosure > summary::after { color: #dce7aa; }
.site-footer .source-disclosure p, .site-footer .source-disclosure li { color: #bdcdb5; }
.site-footer .source-disclosure a { color: #edf3e4; }
.site-footer .source-disclosure > summary:focus-visible { outline-color: #dce7aa; }
.privacy-disclosure > summary::after { content: 'Read more'; font-size: 10px; font-weight: 600; line-height: 1.5; }
.privacy-disclosure[open] > summary::after { content: 'Close'; }
.privacy-disclosure > summary:hover::after { text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 1180px) {
  .hero-layout { gap: 46px; }
  .hero h1 { font-size: 49px; }
  .hero-visual { height: 490px; }
  .ratings-layout, .staffing-layout, .reporting-layout { gap: 50px; }
  .workflow-steps { gap: 24px; }
  .workflow-steps h3 { font-size: 22px; }
  .rating-board { padding: 27px; }
}
@media (max-width: 960px) {
  .header-inner .pbj-wordmark { font-size: 27px; }
  .hero-layout { gap: 34px; }
  .hero h1 { font-size: 41px; }
  .hero-visual { height: 460px; }
  .hero-caption { padding: 18px 20px; }
  .workflow-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px 30px; }
  .ratings-layout, .staffing-layout, .reporting-layout { gap: 35px; }
  .rating-board { padding: 23px; }
  .rating-tabs [role="tab"] { font-size: 11px; padding-inline: 6px; }
  .rating-panel { min-height: 295px; }
  .planning-example { padding: 27px; }
  .planning-results { gap: 19px; }
  .planning-results > :last-child { padding-left: 19px; }
  #total-hours, #cna-hours { font-size: 35px; }
  .reporting-list article { grid-template-columns: minmax(0, 1fr) 85px; column-gap: 18px; }
}
@media (max-width: 820px) {
  .hero-layout { grid-template-columns: 1fr; gap: 36px; }
  .hero h1 { font-size: 50px; max-width: 650px; }
  .hero-content > p { max-width: 620px; }
  .hero-visual { height: 430px; }
  .ratings-layout, .staffing-layout, .reporting-layout { grid-template-columns: 1fr; gap: 35px; }
  .ratings-layout > div > h2, .staffing-layout > div > h2, .reporting-layout > div > h2 { max-width: 650px; }
  .rating-panel { min-height: 230px; }
  .rating-tabs [role="tab"] { font-size: 12px; }
}
@media (max-width: 760px) {
  .header-inner .pbj-wordmark { font-size: 26px; }
  .hero-layout { grid-template-columns: 1fr; gap: 33px; }
  .hero h1 { font-size: clamp(37px, 9.5vw, 56px); }
  .hero-visual { height: 355px; }
  .hero-caption { padding: 17px 20px; }
  .hero-caption strong { font-size: 12px; }
  .hero-caption span, .hero-caption p { font-size: 10px; }
  .pbj-services.capability-grid { grid-template-columns: 1fr; }
  .pbj-services .capability-card { min-height: 0; padding: 27px 25px; }
  .pbj-services .capability-card h3 { font-size: 25px; }
  .workflow-steps { grid-template-columns: 1fr; gap: 29px; }
  .workflow-steps > li { padding-top: 21px; }
  .workflow-steps > li > .step-number { margin-bottom: 18px; }
  .workflow-steps h3 { font-size: 24px; margin-bottom: 13px; }
  .ratings-layout > div > p, .staffing-layout > div > p, .reporting-layout > div > p { font-size: 14px; }
  .rating-board { padding: 25px 21px; }
  .rating-tabs [role="tab"] { min-height: 56px; font-size: 10px; padding-inline: 5px; }
  .rating-panel { min-height: 0; padding-top: 25px; }
  .rating-panel h3, .rating-panel h4 { font-size: 24px; }
  .rating-panel p { font-size: 13px; }
  .planning-example { padding: 27px 23px; }
  .planning-example h3 { font-size: 25px; }
  .planning-results { gap: 20px; }
  .planning-results > :last-child { padding-left: 20px; }
  #total-hours, #cna-hours { font-size: 36px; }
  .reporting-list article { grid-template-columns: minmax(0, 1fr) 85px; gap: 12px 20px; padding-block: 24px; }
  .reporting-list h3 { font-size: 22px; }
  .reporting-list article > span { padding-left: 12px; font-size: 9px; }
  .reporting-list p { font-size: 12px; }
  .source-disclosure { margin-top: 28px; }
  .source-disclosure > summary, .faq-list summary { padding-right: 72px; }
  .source-disclosure > summary::after, .faq-list summary::after { font-size: 9px; }
  .footer-brand .pbj-wordmark { font-size: 29px; }
  .integration-line { grid-template-columns: 1fr; gap: 12px; margin-top: 32px; padding-top: 23px; }
  .integration-line .eyebrow { grid-row: auto; max-width: none; margin: 0; }
  .integration-line p { font-size: 12px; line-height: 1.9; }
  .integration-line > span:not(.eyebrow) { grid-column: 1; }
  .staffing-copy .staffing-jurisdiction { padding: 18px; font-size: 11px; }
  .reporting-scope { font-size: 10px; margin-top: 28px; }
}
@media (max-width: 374px) {
  .header-inner .pbj-wordmark { font-size: 25px; }
  .hero h1 { font-size: 35px; }
  .hero-visual { height: 330px; }
  .planning-example { padding-inline: 20px; }
  #total-hours, #cna-hours { font-size: 32px; }
  .reporting-list article { grid-template-columns: minmax(0, 1fr) 74px; column-gap: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rating-tabs [role="tab"], #census-range { transition: none; }
}
/* Client access uses the same compact navigation as the public site. */
.nav-inner .nav-sign-in { padding: 9px 18px; background: #153f35; color: #fff; border-radius: 3px; white-space: nowrap; }
.nav-inner .nav-sign-in:hover { background: #2e6655; color: #fff; }
