/* CPIL Directory Tools – uses the Kadence global palette, so colours follow Customize › Colors / Style Library. */
.cpil-table-wrap { overflow-x: auto; margin: 0 0 1.5rem; border: 1px solid var(--global-palette7, #EADBDE); border-radius: 8px; -webkit-overflow-scrolling: touch; }
.cpil-table-wrap:focus-visible { outline: 3px solid var(--global-palette1, #862633); outline-offset: 2px; }
.cpil-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 0.95rem; line-height: 1.45; }
.cpil-table caption { caption-side: bottom; text-align: left; padding: 0.6rem 0.9rem; font-size: 0.85rem; color: var(--global-palette5, #4F4549); }
.cpil-table th, .cpil-table td { padding: 0.75rem 0.9rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--global-palette7, #EADBDE); }
.cpil-table thead th { background: var(--global-palette8, #FBF5F6); color: var(--global-palette3, #18212F); font-weight: 600; white-space: nowrap; }
.cpil-table tbody tr:last-child th, .cpil-table tbody tr:last-child td { border-bottom: 0; }
.cpil-table tbody th { font-weight: 600; min-width: 11rem; }
.cpil-table tbody tr:hover { background: var(--global-palette8, #FBF5F6); }
.cpil-rank { display: inline-flex; align-items: center; justify-content: center; min-width: 1.75rem; height: 1.75rem; margin-right: 0.35rem; border-radius: 999px; background: var(--global-palette1, #862633); color: #fff; font: 600 0.85rem/1 var(--global-body-font-family, Inter, sans-serif); }
.cpil-sub { color: var(--global-palette5, #4F4549); font-size: 0.85em; }
.cpil-missing { color: var(--global-palette6, #6E6266); font-style: italic; }
.cpil-empty { padding: 1rem; border: 1px dashed var(--global-palette7, #EADBDE); border-radius: 8px; color: var(--global-palette5, #4F4549); }

.cpil-card { margin: 0 0 1.5rem; padding: 1.5rem; border: 1px solid var(--global-palette7, #EADBDE); border-radius: 8px; background: var(--global-palette9, #fff); }
.cpil-card__title { margin: 0 0 0.5rem; display: flex; align-items: center; gap: 0.25rem; }
.cpil-card__title a { color: inherit; text-decoration: none; }
.cpil-card__title a:hover { color: var(--global-palette1, #862633); text-decoration: underline; }
.cpil-card__best { font-size: 1.05rem; }
.cpil-facts { display: grid; grid-template-columns: 1fr; gap: 0; margin: 1rem 0; border: 1px solid var(--global-palette7, #EADBDE); border-radius: 6px; overflow: hidden; }
.cpil-facts > div { display: grid; grid-template-columns: minmax(8.5rem, 38%) 1fr; gap: 1rem; padding: 0.65rem 0.9rem; border-bottom: 1px solid var(--global-palette7, #EADBDE); }

.cpil-facts > div:last-child { border-bottom: 0; }
.cpil-facts dt { font-weight: 600; color: var(--global-palette3, #18212F); }
.cpil-facts dd { margin: 0; }
.cpil-btn { display: inline-block; padding: 0.75rem 1.25rem; border: 2px solid var(--global-palette1, #862633); border-radius: 6px; color: var(--global-palette1, #862633); font-weight: 600; text-decoration: none; }
.cpil-btn:hover, .cpil-btn:focus { background: var(--global-palette1, #862633); color: #fff; }
@media (max-width: 600px) {
	.cpil-card { padding: 1.1rem; }
	.cpil-facts > div { grid-template-columns: 1fr; gap: 0.15rem; }
}

.cpil-sources { margin: 0.25rem 0 0; padding-left: 1.1rem; }
.cpil-sources li { margin: 0.2rem 0; }

/* Two-column comparison tables fit phones without sideways scrolling. */
.cpil-table-wrap--narrow .cpil-table { min-width: 0; }
.cpil-table-wrap--narrow .cpil-table thead th { white-space: normal; }
.cpil-table-wrap--narrow .cpil-table tbody th { min-width: 0; }
@media (max-width: 600px) { .cpil-table-wrap--narrow .cpil-table th, .cpil-table-wrap--narrow .cpil-table td { padding: 0.65rem 0.6rem; font-size: 0.9rem; } }

/* ---------- Short firm cards (directory, home, ranked lists) ---------- */
.cpil-sum { display: flex; flex-direction: column; gap: 0.6rem; height: 100%; }
.cpil-sum p { margin: 0; }
.cpil-sum__meta { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; font-size: 0.92rem; color: var(--global-palette5, #4F4549); }
.cpil-sum__loc { padding-left: 1.2rem; background: no-repeat left center / 0.9rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23862633' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.cpil-sum__best { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 1rem; line-height: 1.5; color: var(--global-palette4, #2B2F36); }
.cpil-score { flex: none; display: inline-flex; align-items: baseline; gap: 1px; padding: 0.15rem 0.55rem; border-radius: 999px; background: var(--global-palette8, #FBF5F6); border: 1px solid var(--global-palette7, #EADBDE); color: var(--global-palette1, #862633); font-weight: 700; font-size: 0.95rem; }
.cpil-score small { font-weight: 500; font-size: 0.75em; color: var(--global-palette6, #6E6266); }
.cpil-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.cpil-badge { padding: 0.2rem 0.6rem; border-radius: 999px; font-size: 0.8rem; font-weight: 600; line-height: 1.5; background: var(--global-palette8, #FBF5F6); color: var(--global-palette4, #2B2F36); border: 1px solid var(--global-palette7, #EADBDE); }
.cpil-badge--ok { background: #EAF5EF; border-color: #CDE7D8; color: #1D6B45; }
.cpil-badge--award { background: #FBF1E4; border-color: #F0DCC0; color: #7A4A12; }
.cpil-sum__links { margin-top: auto !important; padding-top: 0.4rem; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.cpil-sum__links .cpil-btn { padding: 0.55rem 1rem; font-size: 0.92rem; }
.cpil-btn--solid { background: var(--global-palette1, #862633); color: #fff; }
.cpil-btn--solid:hover, .cpil-btn--solid:focus { background: var(--global-palette2, #6B1E29); border-color: var(--global-palette2, #6B1E29); color: #fff; }

/* Ranked list */
.cpil-ranked { display: grid; gap: 1rem; }
.cpil-card--ranked { margin: 0; padding: 1.25rem 1.4rem; }
.cpil-card__head { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.4rem; }
.cpil-card__head .cpil-card__title { margin: 0; }
.cpil-card--ranked .cpil-sum__meta .cpil-score { display: none; }
.cpil-why { margin-top: 0.75rem; border-top: 1px solid var(--global-palette7, #EADBDE); padding-top: 0.6rem; font-size: 0.9rem; }
.cpil-why summary { cursor: pointer; color: var(--global-palette1, #862633); font-weight: 600; }
.cpil-why__table { width: 100%; margin-top: 0.5rem; border-collapse: collapse; }
.cpil-why__table th, .cpil-why__table td { padding: 0.4rem 0.5rem; border-bottom: 1px solid var(--global-palette7, #EADBDE); text-align: left; vertical-align: top; font-weight: 400; }
.cpil-why__table th { font-weight: 600; width: 42%; }
.cpil-why__pts { text-align: right !important; white-space: nowrap; font-weight: 600 !important; }

/* Compare tool */
.cpil-compare__form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 0.75rem; align-items: end; padding: 1.25rem; border: 1px solid var(--global-palette7, #EADBDE); border-radius: 10px; background: var(--global-palette9, #fff); }
.cpil-compare__form label { display: grid; gap: 0.3rem; font-weight: 600; font-size: 0.9rem; }
.cpil-compare__form select { width: 100%; min-height: 2.75rem; padding: 0 0.6rem; border: 1px solid var(--global-palette7, #EADBDE); border-radius: 6px; background: #fff; font: inherit; font-weight: 400; }
.cpil-compare__form .cpil-btn { min-height: 2.75rem; cursor: pointer; font: inherit; font-weight: 600; }
.cpil-compare__hint, .cpil-compare__note { margin: 0.75rem 0 0; font-size: 0.9rem; color: var(--global-palette5, #4F4549); }
.cpil-compare__wrap { margin-top: 1.25rem; }
.cpil-compare__table { min-width: 560px; table-layout: fixed; }
.cpil-compare__table thead th:first-child, .cpil-compare__table tbody th { width: 9.5rem; }
.cpil-compare__table tbody th { position: sticky; left: 0; background: var(--global-palette8, #FBF5F6); z-index: 1; }
@media (max-width: 760px) {
	.cpil-compare__form { grid-template-columns: 1fr; padding: 1rem; }
}
/* Beat theme/entry-content spacing inside cards. */
.cpil-sum > p, .cpil-sum > ul, .entry-content .cpil-sum > p, .entry-content .cpil-sum > ul { margin: 0 !important; }
.cpil-sum .cpil-badges, .entry-content .cpil-sum .cpil-badges { padding: 0 !important; margin: 0.15rem 0 0 !important; }
.cpil-sum .cpil-badge { margin: 0 !important; }
.cpil-sum__meta { align-items: flex-start; }
.cpil-sum .cpil-badges { display: flex !important; flex-wrap: wrap; gap: 0.4rem; list-style: none !important; }
.cpil-sum .cpil-badge { display: inline-block; }
.kb-query-item:has(.cpil-sum), .kb-query-item:has(.cpil-sum) > .kadence-column, .kb-query-item:has(.cpil-sum) .kt-inside-inner-col { height: 100%; }
.kt-inside-inner-col:has(> .cpil-sum) { display: flex; flex-direction: column; }
.kt-inside-inner-col:has(> .cpil-sum) > .cpil-sum { flex: 1; }
.cpil-card--ranked .cpil-sum { height: auto; }
.cpil-compare__score { font-size: 1.25rem; color: var(--global-palette1, #862633); }
.cpil-fold summary { cursor: pointer; list-style: none; }
.cpil-fold summary::after { content: " Read more"; color: var(--global-palette1, #862633); font-weight: 600; white-space: nowrap; }
.cpil-fold[open] summary { display: none; }
@media (max-width: 760px) {
	.cpil-compare__table { min-width: 0; width: auto; table-layout: fixed; }
	.cpil-compare__table thead th:first-child, .cpil-compare__table tbody th { width: 6.5rem; min-width: 6.5rem; font-size: 0.82rem; }
	.cpil-compare__table thead th + th, .cpil-compare__table td { width: 12.5rem; min-width: 12.5rem; font-size: 0.88rem; }
}

/* ---------- Uniform firm cards: same height, same rows, same positions ---------- */
.kb-query-grid-wrap:has(.cpil-sum) { align-items: stretch; }
.kb-query-item:has(.cpil-sum) { display: flex; }
.kb-query-item:has(.cpil-sum) > .wp-block-kadence-column { flex: 1 1 100%; width: 100%; display: flex; }
.kb-query-item:has(.cpil-sum) .kt-inside-inner-col { flex: 1; display: flex !important; flex-direction: column; gap: 0.55rem !important; }
/* Row 1: firm name – max 2 lines, always the same height */
.kb-query-item:has(.cpil-sum) .wp-block-kadence-advancedheading { margin: 0 !important; font-size: 1.3rem !important; line-height: 1.25 !important; min-height: 2.5em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kb-query-item:has(.cpil-sum) .wp-block-kadence-advancedheading a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
/* Rows 2–5 inside the summary */
.cpil-sum { display: grid !important; grid-template-rows: auto 3em 1.9rem 1fr auto; row-gap: 0.6rem; }
.cpil-sum__meta { align-items: center !important; min-height: 1.9rem; }
.cpil-sum__loc { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cpil-sum__best { min-height: 3em; }
.cpil-sum .cpil-badges { flex-wrap: nowrap !important; overflow: hidden; height: 1.9rem; align-items: center; margin: 0 !important; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
.cpil-sum .cpil-badge { white-space: nowrap; flex: none; }
.cpil-sum__links { grid-row: 5; margin: 0 !important; padding-top: 0.25rem; display: grid !important; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.cpil-sum__links .cpil-btn { text-align: center; padding: 0.6rem 0.5rem; }
.cpil-card--ranked .cpil-sum { grid-template-rows: auto auto auto auto; }
.cpil-card--ranked .cpil-sum__links { grid-row: auto; grid-template-columns: max-content max-content; }
.cpil-sum__best { max-height: 3em; }
.cpil-sum .cpil-badges { -webkit-mask-image: none; mask-image: none; }

/* Filtered directory views */
.cpil-filter-intro { margin: 0.75rem 0 0; font-size: 1.1rem; max-width: 46rem; color: var(--global-palette4, #2B2F36); }
.cpil-filter-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.5rem 2rem; }
.cpil-filter-links h3 { margin: 0 0 0.5rem; font-size: 1.15rem; }
.cpil-filter-links ul { margin: 0 !important; padding: 0 !important; list-style: none; columns: 1; }
.cpil-filter-links li { margin: 0 0 0.4rem; }
.cpil-filter-links__child { padding-left: 1rem; font-size: 0.95em; }

/* Compare tool: service + location step */
.cpil-compare__form--scoped { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.cpil-compare__form--scoped fieldset { margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; align-items: end; }
.cpil-compare__scope { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; padding-bottom: 1rem !important; border-bottom: 1px solid var(--global-palette7, #EADBDE) !important; }
.cpil-compare__form--scoped legend { grid-column: 1 / -1; padding: 0; margin: 0 0 0.25rem; font-family: var(--global-heading-font-family, Fraunces, serif); font-weight: 600; font-size: 1.1rem; color: var(--global-palette3, #18212F); }
.cpil-compare__form--scoped legend .cpil-sub { font-family: var(--global-body-font-family, Inter, sans-serif); font-weight: 400; font-size: 0.85rem; }
.cpil-compare__form--scoped > .cpil-btn { justify-self: start; min-width: 14rem; }
.cpil-compare__title { margin: 1.5rem 0 0.25rem; font-size: 1.4rem; }
@media (max-width: 760px) {
	.cpil-compare__form--scoped fieldset, .cpil-compare__scope { grid-template-columns: 1fr !important; }
	.cpil-compare__form--scoped > .cpil-btn { width: 100%; }
}

/* Filtered directory views: at a glance + content + FAQs */
.cpil-filtered .entry-content .wp-block-kadence-rowlayout:has(.kb-preset--answer-box):first-child,
.cpil-filtered .entry-content > .wp-block-kadence-rowlayout:first-of-type:has([class*="answer-box"]) { display: none; }

/* ---------- Firm profile ---------- */
.cpil-sc { display: grid; grid-template-columns: auto 1fr auto; gap: 1.5rem; align-items: center; margin-top: 0.5rem; padding: 1.25rem 1.5rem; background: #fff; border: 1px solid var(--global-palette7, #EADBDE); border-radius: 12px; }
.cpil-sc__score { display: grid; grid-template-columns: auto auto; align-items: baseline; justify-content: center; min-width: 7.5rem; padding: 0.9rem 1rem; border-radius: 10px; background: var(--global-palette1, #862633); color: #fff; text-align: center; }
.cpil-sc__num { font: 700 2.6rem/1 var(--global-heading-font-family, Fraunces, serif); }
.cpil-sc__of { font-size: 1rem; opacity: 0.85; }
.cpil-sc__label { grid-column: 1 / -1; margin-top: 0.35rem; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.02em; opacity: 0.9; }
.cpil-sc__body > * { margin: 0 0 0.5rem !important; }
.cpil-sc__body > *:last-child { margin-bottom: 0 !important; }
.cpil-sc__rank { font-weight: 600; font-size: 1.05rem; color: var(--global-palette3, #18212F); }
.cpil-sc .cpil-badges { padding: 0 !important; list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.cpil-sc__facts { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; padding: 0 !important; list-style: none; font-size: 0.92rem; color: var(--global-palette5, #4F4549); }
.cpil-sc__facts li { margin: 0; }
.cpil-sc__checked { font-size: 0.85rem; color: var(--global-palette6, #6E6266); }
.cpil-sc__actions { display: grid; gap: 0.5rem; min-width: 13rem; }
.cpil-sc__actions .cpil-btn { text-align: center; }

.cpil-bd { display: grid; gap: 0; border: 1px solid var(--global-palette7, #EADBDE); border-radius: 10px; padding: 0.25rem 1.1rem 0.9rem; background: #fff; }
.cpil-bd__row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(4rem, 1fr) 4.75rem; gap: 1rem; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid var(--global-palette7, #EADBDE); }
.cpil-bd__name { font-weight: 600; color: var(--global-palette3, #18212F); }
.cpil-bd__ev { display: block; font-weight: 400; font-size: 0.88rem; color: var(--global-palette5, #4F4549); }
.cpil-bd__bar { height: 8px; border-radius: 999px; background: var(--global-palette8, #FBF5F6); border: 1px solid var(--global-palette7, #EADBDE); overflow: hidden; }
.cpil-bd__bar span { display: block; height: 100%; background: var(--global-palette1, #862633); border-radius: 999px; }
.cpil-bd__pts { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.cpil-bd__pts span { font-weight: 400; font-size: 0.85em; color: var(--global-palette6, #6E6266); }
.cpil-bd__total { border-bottom: 0; }
.cpil-bd__total .cpil-bd__name, .cpil-bd__total .cpil-bd__pts { font-size: 1.1rem; }
.cpil-bd > .cpil-sub { margin: 0.25rem 0 0; }


.cpil-rk { padding: 1.2rem 1.3rem; border: 1px solid var(--global-palette7, #EADBDE); border-radius: 10px; background: #fff; }
.cpil-rk__title { margin: 0 0 0.75rem !important; font-size: 1.2rem !important; }
.cpil-rk__list { margin: 0 0 1rem !important; padding: 0 !important; list-style: none; }
.cpil-rk__btn { display: block; text-align: center; margin-bottom: 0.75rem; }
.cpil-rk__list li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 0; border-top: 1px solid var(--global-palette7, #EADBDE); }
.cpil-rk__list li:first-child { border-top: 0; padding-top: 0; }
.cpil-rk__list span { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cpil-rk__btn { margin: 0; }

@media (max-width: 900px) {
	.cpil-sc { grid-template-columns: auto 1fr; }
	.cpil-sc__actions { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; min-width: 0; }
}
@media (max-width: 640px) {
	.cpil-sc { grid-template-columns: 1fr; padding: 1rem; gap: 1rem; }
	.cpil-sc__score { justify-self: start; }
	.cpil-sc__actions { grid-template-columns: 1fr; }
	.cpil-bd { padding: 0.25rem 0.9rem 0.8rem; }
	.cpil-bd__row { grid-template-columns: 1fr 4.5rem; gap: 0.35rem 0.75rem; }
	.cpil-bd__bar { grid-column: 1 / -1; grid-row: 2; }
}
.cpil-bd__pts { white-space: nowrap; }
.cpil-bd__total > div:nth-child(2) { display: none; } .cpil-bd__total { grid-template-columns: 1fr auto !important; }

/* ---------- /best/ landing pages ---------- */
.cpil-lp { margin: 0 0 2rem; }

.cpil-filter-best { padding: 0.8rem 1rem; border-left: 4px solid var(--global-palette1, #862633); border-radius: 8px; background: var(--global-palette8, #FBF5F6); }

/* Mega menu (Kadence Pro): column headings in the brand serif, links below */
.header-menu-container ul.menu > li.kadence-menu-mega-enabled > ul > li > a { font-family: Fraunces, Georgia, serif; font-weight: 600; font-size: 16px; color: var(--global-palette3); border-bottom: 1px solid var(--global-palette7) !important; padding-bottom: .55em; margin-bottom: .35em; }
.header-menu-container ul.menu > li.kadence-menu-mega-enabled > ul > li > a:hover { color: var(--global-palette1); background: transparent; }
.header-menu-container ul.menu > li.kadence-menu-mega-enabled > ul > li > ul > li > a { padding-top: .45em; padding-bottom: .45em; }

/* Firm A–Z list on /lawyers/ */
.cpil-az { columns: 4 220px; column-gap: 2rem; }
.cpil-az__group { break-inside: avoid; margin: 0 0 1rem; }
.cpil-az__letter { font-size: 1.125rem; margin: 0 0 .3rem; color: var(--global-palette1); border-bottom: 1px solid var(--global-palette7); padding-bottom: .2rem; }
.cpil-az ul { list-style: none; margin: 0; padding: 0; }
.cpil-az li { margin: .2rem 0; font-size: .95rem; }
.cpil-rk__sub { font-size: 1.05rem; margin: 1rem 0 .4rem; }
.cpil-rk__alt { margin: .75rem 0 0; font-weight: 600; }

/* Google Maps consent note (Cookiebot) */
.cpil-map-consent { background: var(--global-palette8); border: 1px solid var(--global-palette7); border-radius: 10px; padding: 16px 18px; margin: 0; }

/* Author portrait (transparent WebP) on a blush circle */
.cpil-byline-avatar, img.avatar { border-radius: 50%; background: #F1E4E6; object-fit: cover; }
.cpil-byline-avatar { width: 40px; height: 40px; vertical-align: middle; margin-right: 8px; }
.wp-block-kadence-image img[src*="marshall-fenech-editor"] { background: #F1E4E6; border-radius: 50%; aspect-ratio: 1; object-fit: cover; }
.cpil-links-3col { columns: 3 220px; column-gap: 2rem; list-style: none; padding: 0 !important; }
.cpil-links-3col li { break-inside: avoid; margin: .3rem 0; }

/* Directory cards loaded by infinite scroll: Kadence prints a second style block for the card class without the
   border (it overrides every card), and nowrap text can widen a grid column. Keep cards identical on every page. */
.kb-query-grid-wrap > .kb-query-item:has(.cpil-sum) { min-width: 0; }
.kb-query-item:has(.cpil-sum) > .wp-block-kadence-column { min-width: 0; }
.kb-query-item:has(.cpil-sum) > .kb-preset--card > .kt-inside-inner-col { border: 1px solid var(--global-palette7, #EADBDE) !important; border-radius: 8px; background: var(--global-palette9, #fff); }
.kb-query-item:has(.cpil-sum) .cpil-sum__best { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- Hub card grids ([cpil_vs_index], [cpil_alt_index], [cpil_landing_index]) – same look as the Kadence Info Box cards on /guides/ ---------- */
.cpil-cards { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: auto !important; align-items: stretch; margin: 0 0 8px; }
@media (max-width: 1024px) { .cpil-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .cpil-cards { grid-template-columns: minmax(0, 1fr); gap: 12px; } }
.entry-content .cpil-card, .cpil-card { margin: 0 !important; }
.cpil-card { position: relative; display: flex; flex-direction: column; gap: 8px; min-width: 0; background: var(--global-palette9, #fff); border: 1px solid var(--global-palette7, #EADBDE); border-radius: 10px; padding: 22px 22px 20px; transition: border-color .15s ease; }
.cpil-card:hover, .cpil-card:focus-within { border-color: var(--global-palette1, #862633); }
.cpil-card[hidden], .cpil-cards.is-collapsed > .is-more { display: none; }
.cpil-card__media { margin: 0 0 6px; }
.cpil-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 10px; background: var(--global-palette8, #FBF5F6); color: var(--global-palette1, #862633); }
.entry-content .cpil-card__title, .cpil-card__title { margin: 0 !important; font-family: Fraunces, Georgia, serif; font-weight: 600; font-size: 1.125rem; line-height: 1.3; color: var(--global-palette3, #18212F); }
.cpil-card__link { color: inherit; text-decoration: none; }
.cpil-card__link::after { content: ""; position: absolute; inset: 0; border-radius: 10px; }
.cpil-card__link:focus-visible { outline: none; }
.cpil-card:has(.cpil-card__link:focus-visible) { outline: 2px solid var(--global-palette1, #862633); outline-offset: 2px; }
.cpil-card:hover .cpil-card__link { color: var(--global-palette1, #862633); }
.entry-content .cpil-card__desc, .cpil-card__desc { margin: 0 !important; font-size: .95rem; line-height: 1.55; color: var(--global-palette5, #4F4549); }
.cpil-card__desc strong { color: var(--global-palette3, #18212F); }
.cpil-card__tag { display: inline-block; margin: 0 6px 2px 0; padding: 1px 8px; border-radius: 999px; background: var(--global-palette8, #FBF5F6); border: 1px solid var(--global-palette7, #EADBDE); font-size: .78rem; font-weight: 600; color: var(--global-palette1, #862633); vertical-align: 1px; }
.cpil-card__more { margin-top: auto; padding-top: 6px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .95rem; color: var(--global-palette1, #862633); }
.cpil-card__more .cpil-ico { transition: transform .15s ease; }
.cpil-card:hover .cpil-card__more .cpil-ico { transform: translateX(3px); }
/* Monograms (firm initials – never a firm logo) */
.cpil-mono { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--global-palette8, #FBF5F6); border: 1px solid var(--global-palette7, #EADBDE); color: var(--global-palette1, #862633); font-family: Fraunces, Georgia, serif; font-weight: 600; font-size: 1.05rem; letter-spacing: .02em; }
.cpil-vs-pair { display: inline-flex; align-items: center; }
.cpil-vs-pair .cpil-mono + .cpil-vs-pair__vs { margin: 0 -6px; position: relative; z-index: 1; }
.cpil-vs-pair__vs { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--global-palette1, #862633); color: #fff; font-size: .72rem; font-weight: 700; }
.cpil-vs-pair__vs + .cpil-mono { background: var(--global-palette9, #fff); }
/* Area links inside claim-type cards */
.cpil-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 6px 0 0 !important; padding: 0 !important; }
.cpil-chips li { margin: 0 !important; }
.cpil-chips a { position: relative; z-index: 1; display: inline-flex; align-items: center; min-height: 36px; padding: 4px 12px; border-radius: 999px; border: 1px solid var(--global-palette7, #EADBDE); background: var(--global-palette9, #fff); color: var(--global-palette1, #862633); font-size: .9rem; font-weight: 500; text-decoration: none; }
.cpil-chips a:hover, .cpil-chips a:focus-visible { background: var(--global-palette1, #862633); border-color: var(--global-palette1, #862633); color: #fff; }
.cpil-chips li:first-child a { background: var(--global-palette8, #FBF5F6); font-weight: 600; }
.cpil-chips li:first-child a:hover { background: var(--global-palette1, #862633); }
.cpil-lp-index__group { margin: 0 0 2.5rem; }
.entry-content .cpil-lp-index__group > h3, .cpil-lp-index__group > h3 { margin: 0 0 1rem; }
/* Vs filter */
.cpil-cards-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--global-palette7, #EADBDE); border-radius: 10px; background: var(--global-palette8, #FBF5F6); }
.cpil-cards-filter__label { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--global-palette3, #18212F); }
.cpil-cards-filter__label .cpil-ico { color: var(--global-palette1, #862633); }
.cpil-cards-filter__input { flex: 1 1 260px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--global-palette7, #EADBDE); border-radius: 6px; background: #fff; font-size: 1rem; }
.cpil-cards-filter__input:focus { outline: 2px solid var(--global-palette1, #862633); outline-offset: 1px; border-color: var(--global-palette1, #862633); }
.entry-content .cpil-cards-filter__count, .cpil-cards-filter__count { margin: 0 !important; font-size: .9rem; color: var(--global-palette5, #4F4549); }
.cpil-cards-more { margin: 16px 0 0 !important; text-align: center; }
.cpil-cards-more__btn { display: inline-flex; align-items: center; text-decoration: none !important; min-height: 44px; padding: 10px 22px; border-radius: 6px; border: 1px solid var(--global-palette1, #862633); background: #fff; color: var(--global-palette1, #862633); font-weight: 600; cursor: pointer; }
.cpil-cards-more__btn:hover, .cpil-cards-more__btn:focus-visible { background: var(--global-palette1, #862633); color: #fff; }
@media (prefers-reduced-motion: reduce) { .cpil-card, .cpil-card__more .cpil-ico { transition: none; } }

/* Hero key-facts card (Kadence Icon List, stacked icon tiles): second line under each fact */
.cpil-facts .kt-svg-icon-list-text { line-height: 1.35; }
.cpil-facts__sub { display: block; margin-top: 2px; font-size: .86rem; line-height: 1.4; color: var(--global-palette5, #4F4549); font-weight: 400; }
.cpil-facts a.kt-svg-icon-link, .cpil-facts .kt-svg-icon-list-item-wrap a { color: var(--global-palette3, #18212F); text-decoration: none; }
.cpil-facts a:hover .kt-svg-icon-list-text > strong, .cpil-facts a:focus-visible .kt-svg-icon-list-text > strong { color: var(--global-palette1, #862633); text-decoration: underline; text-underline-offset: 3px; }
.wp-block-kadence-iconlist.cpil-facts { border: 0 !important; padding: 0 !important; } /* Kadence "stacked" also borders the list wrapper; the tiles alone carry the style */

/* ---------- Page header (kb-lib hero, 22 Oct 2026): editorial record – standfirst, byline row, facts ledger ---------- */
.cpil-hero .wp-block-kadence-advancedheading:where(h1) { max-width: 22ch; text-wrap: balance; }
.cpil-hero .kadence-breadcrumbs { font-size: .9rem; color: var(--global-palette5, #4F4549); }
.cpil-answer { max-width: 42rem; text-wrap: pretty; }
.cpil-answer a { color: inherit; text-decoration-color: var(--global-palette1, #862633); text-underline-offset: 3px; }
.wp-block-kadence-advancedheading.cpil-byline { display: flow-root; max-width: 42rem; margin-top: 6px !important; padding-top: 14px !important; border-top: 1px solid var(--global-palette7, #EADBDE) !important; color: var(--global-palette5, #4F4549); line-height: 1.55; }
.cpil-byline .cpil-byline-avatar { float: left; width: 44px; height: 44px; margin: 1px 12px 0 0; }
.cpil-byline a { color: var(--global-palette3, #18212F); font-weight: 600; text-decoration: none; }
.cpil-byline a:hover, .cpil-byline a:focus-visible { color: var(--global-palette1, #862633); text-decoration: underline; }
/* Facts ledger: maroon rule, small title, label | figure rows on hairlines */
.wp-block-kadence-advancedheading.cpil-ledger__title { margin: 0 !important; padding-top: 14px !important; border-top: 3px solid var(--global-palette1, #862633) !important; font-family: Fraunces, Georgia, serif; font-weight: 600; font-size: 1.125rem; line-height: 1.3; color: var(--global-palette3, #18212F); }
.wp-block-kadence-table.cpil-ledger { margin: 8px 0 0 !important; }
.cpil-ledger table { width: 100%; border-collapse: collapse; border: 0 !important; background: transparent !important; }
.cpil-ledger tr, .cpil-ledger tr:nth-child(odd), .cpil-ledger tr:nth-child(even) { background: transparent !important; }
.cpil-ledger th, .cpil-ledger td { border: 0 !important; border-bottom: 1px solid var(--global-palette7, #EADBDE) !important; padding: 11px 0 !important; vertical-align: baseline; background: transparent !important; }
.cpil-ledger th, .cpil-ledger th * { text-align: left !important; font-weight: 400; }
.cpil-ledger th { padding-right: 16px !important; }
.cpil-ledger td, .cpil-ledger td * { text-align: right !important; }
.cpil-ledger td { white-space: nowrap; }
.cpil-ledger p { margin: 0 !important; }
.cpil-ledger__label { font-size: .98rem; line-height: 1.35; color: var(--global-palette4, #2B3442); }
.cpil-ledger__label a { color: inherit; text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat; }
.cpil-ledger__label a:hover, .cpil-ledger__label a:focus-visible { color: var(--global-palette1, #862633); background-size: 100% 1px; }
.cpil-ledger__sub { display: block; margin-top: 2px; font-size: .84rem; color: var(--global-palette5, #4F4549); }
.cpil-ledger__value { font-family: Fraunces, Georgia, serif; font-weight: 600; font-size: 1.25rem; line-height: 1.2; color: var(--global-palette3, #18212F); font-variant-numeric: tabular-nums lining-nums; }
.cpil-ledger td:has(.cpil-ledger__value) { white-space: normal; max-width: 12rem; }
.cpil-ledger__note { margin: 10px 0 0 !important; font-size: .84rem; color: var(--global-palette5, #4F4549); }
@media (max-width: 1024px) { .cpil-hero .wp-block-kadence-advancedheading:where(h1) { max-width: none; } .cpil-ledger__title { margin-top: 8px !important; } }
@media (min-width: 1025px) { .cpil-hero .wp-block-kadence-advancedheading.cpil-ledger__title { margin-top: 22px !important; } }

/* Sticky sidebars (Kadence section "sticky"): clear the fixed site header (77 px) with a 20 px gap, so the first item
   (photo) isn't hidden under the header, and space the stacked sidebar items. */
.kb-section-is-sticky, .kb-section-is-sticky > .kt-inside-inner-col { --kb-section-setting-offset: 97px; } /* Kadence: top = admin bar + this offset */
.kb-section-is-sticky > .kt-inside-inner-col > * + * { margin-top: 20px; }
