/*
 * PK-Legal design system — tokens and base components (Step 2.1).
 *
 * Prefix "pkc-" (classes) and "--pkc-" (tokens) so nothing here collides
 * with the older .pk-* rules in pk-additional.css. Markup comes from the
 * PHP helpers in inc/pk-components.php.
 *
 * Rules: red is for accents only (links on hover, step numbers, buttons,
 * active states); no shadows except focus rings; 6 px radius; motion only
 * on transform/opacity and never under prefers-reduced-motion.
 */

:root {
  --pkc-red: #8a0104;
  --pkc-red-dark: #6b0003;
  --pkc-text: #1f1e21;
  --pkc-ink: #4b4a4d;
  --pkc-paper: #ffffff;
  --pkc-mist: #f6f5f4;
  --pkc-line: #e4e1de;
  --pkc-green: #1f6b43;
  --pkc-radius: 6px;
  --pkc-serif: "Noto Serif Lao", Georgia, "Times New Roman", serif;
  --pkc-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --pkc-body: 1.125rem;   /* 18 px */
  --pkc-small: 0.9375rem; /* 15 px */
  --pkc-leading: 1.65;
  --pkc-gap: 1.25rem;
  --pkc-focus: 0 0 0 3px #fff, 0 0 0 5px var(--pkc-red);
}

/* ---------- shared ---------- */

.pkc {
  font-family: var(--pkc-sans);
  font-size: var(--pkc-body);
  line-height: var(--pkc-leading);
  color: var(--pkc-text);
  box-sizing: border-box;
  margin: 0 0 1.75rem;
}
.pkc *, .pkc *::before, .pkc *::after { box-sizing: inherit; }
/* Older site CSS styles bare elements (e.g. dd has 50px left padding); reset inside components. */
.pkc { text-align: left; }
/* css/style.css sets "body * { color: #4c4c4e }" on every element, which would
   recolour text inside buttons and links. Children inherit instead. */
.pkc * { color: inherit; }
.pkc dl, .pkc dt, .pkc dd { padding: 0; margin: 0; }
.pkc p { padding: 0; }
.pkc ul:not([class]) { list-style: disc; } /* Plain text lists only; designed lists (cards, checklist…) set their own. */
.pkc a { color: var(--pkc-red); text-decoration: underline; text-underline-offset: 2px; }
.pkc a:hover { color: var(--pkc-red-dark); }
.pkc a:focus-visible, .pkc button:focus-visible, .pkc summary:focus-visible {
  outline: none; box-shadow: var(--pkc-focus); border-radius: var(--pkc-radius);
}
.pkc-h {
  font-family: var(--pkc-serif); font-weight: 500; color: var(--pkc-text);
  font-size: 1.25rem; line-height: 1.3; margin: 0 0 0.75rem;
}
.pkc-icon { width: 1.25em; height: 1.25em; flex: none; vertical-align: -0.2em; }

/* ---------- 1. answer block ---------- */

.pkc-answer {
  font-size: 1.1875rem; line-height: 1.6;
  border-left: 4px solid var(--pkc-red);
  padding: 0.25rem 0 0.25rem 1rem;
  max-width: 68ch;
}

/* ---------- 2. key facts ---------- */

.pkc-facts {
  display: grid; gap: 1px; padding: 0;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  background: var(--pkc-line); border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius);
  overflow: hidden;
}
.pkc-facts > div { background: var(--pkc-paper); padding: 0.9rem 1rem; }
.pkc-facts dt {
  font-size: var(--pkc-small); font-weight: 600; color: var(--pkc-ink);
  text-transform: uppercase; letter-spacing: 0.04em; margin: 0 0 0.25rem;
}
.pkc-facts dd { margin: 0; font-size: 1rem; font-weight: 500; line-height: 1.5; color: var(--pkc-ink); }
/* Columns by count, so a short last row never leaves empty grey cells (1 Nov 2026). */
.pkc-facts--n2, .pkc-facts--n4 { grid-template-columns: 1fr; }
@media (min-width: 560px) {
  .pkc-facts--n2, .pkc-facts--n4 { grid-template-columns: repeat(2, 1fr); }
  .pkc-facts--n3 { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1000px) {
  .pkc-facts--n4 { grid-template-columns: repeat(4, 1fr); }
}
.pkc-facts--n5 > div:last-child, .pkc-facts--n7 > div:last-child { grid-column: 1 / -1; }

/* ---------- 3. review strip ---------- */

.pkc-review {
  display: flex; flex-wrap: wrap; gap: 0.35rem 1.25rem;
  font-size: var(--pkc-small); color: var(--pkc-ink);
  padding: 0.6rem 0; border-top: 1px solid var(--pkc-line); border-bottom: 1px solid var(--pkc-line);
}
.pkc-review strong { color: var(--pkc-text); font-weight: 600; }

/* ---------- 4. legal source box ---------- */

.pkc-sources {
  background: var(--pkc-mist); border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius);
  padding: 1.1rem 1.25rem;
}
.pkc-sources ul { margin: 0; padding-left: 1.2rem; }
.pkc-sources li { margin: 0.35rem 0; }
.pkc-sources .pkc-note { display: block; font-size: var(--pkc-small); color: var(--pkc-ink); }

/* ---------- 5. service aside (marketing, kept apart from the law) ---------- */

.pkc-service {
  border: 1px solid var(--pkc-line); border-top: 4px solid var(--pkc-red);
  border-radius: var(--pkc-radius); padding: 1.1rem 1.25rem; background: var(--pkc-paper);
}
.pkc-service p { margin: 0 0 0.9rem; }

/* ---------- buttons ---------- */

.pkc-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.pkc .pkc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 44px; padding: 0.6rem 1.15rem;
  font: 600 1rem/1.2 var(--pkc-sans); text-decoration: none;
  border-radius: var(--pkc-radius); border: 2px solid var(--pkc-red);
  background: var(--pkc-red); color: #fff; cursor: pointer;
}
.pkc .pkc-btn:hover { background: var(--pkc-red-dark); border-color: var(--pkc-red-dark); color: #fff; }
.pkc .pkc-btn--ghost { background: transparent; color: var(--pkc-red); }
.pkc .pkc-btn--ghost:hover { background: var(--pkc-mist); color: var(--pkc-red-dark); }
.pkc .pkc-btn--light { background: #fff; color: var(--pkc-red); border-color: #fff; }
.pkc .pkc-btn--light:hover { background: var(--pkc-mist); border-color: var(--pkc-mist); color: var(--pkc-red-dark); }

/* ---------- 6. CTA band ---------- */

.pkc-cta {
  background: var(--pkc-red); color: #fff; border-radius: var(--pkc-radius);
  padding: 1.5rem 1.25rem;
}
.pkc-cta .pkc-h { color: #fff; }
.pkc-cta p { margin: 0 0 1rem; max-width: 60ch; }
.pkc-cta a:not(.pkc-btn) { color: #fff; }
.pkc-cta .pkc-btn--ghost.pkc-btn--light { background: transparent; color: #fff; border-color: #fff; }
.pkc-cta .pkc-btn--ghost.pkc-btn--light:hover { background: rgba(255,255,255,0.12); color: #fff; }
.pkc-cta a.pkc-btn:focus-visible { box-shadow: 0 0 0 3px var(--pkc-red), 0 0 0 5px #fff; }

/* ---------- 7. FAQ ---------- */

.pkc-faq-tools { display: flex; justify-content: flex-end; margin: 0 0 0.5rem; }
.pkc-faq-toggle {
  background: none; border: 0; padding: 0.4rem 0; min-height: 44px;
  font: 600 var(--pkc-small)/1 var(--pkc-sans); color: var(--pkc-red); cursor: pointer;
  text-decoration: underline; text-underline-offset: 2px;
}
.pkc-faq details { border-bottom: 1px solid var(--pkc-line); }
.pkc-faq details:first-of-type { border-top: 1px solid var(--pkc-line); }
.pkc-faq summary {
  list-style: none; cursor: pointer; position: relative;
  padding: 0.9rem 2.25rem 0.9rem 0; min-height: 44px;
  font-family: var(--pkc-serif); font-weight: 500; font-size: 1.125rem; line-height: 1.4;
}
.pkc-faq summary::-webkit-details-marker { display: none; }
.pkc-faq summary::after {
  content: ""; position: absolute; right: 0.5rem; top: 1.15rem;
  width: 0.6rem; height: 0.6rem; border-right: 2px solid var(--pkc-red); border-bottom: 2px solid var(--pkc-red);
  transform: rotate(45deg); transition: transform 0.2s ease;
}
.pkc-faq details[open] summary::after { transform: rotate(-135deg); top: 1.4rem; }
.pkc-faq .pkc-faq-a { padding: 0 0 1rem; max-width: 68ch; }
.pkc-faq .pkc-faq-a > :last-child { margin-bottom: 0; }

/* ---------- 8. disclaimer ---------- */

.pkc-disclaimer { font-size: var(--pkc-small); color: var(--pkc-ink); max-width: 68ch; }
.pkc-disclaimer p { margin: 0; }

/* ---------- 9. changelog ---------- */

.pkc-changelog { font-size: var(--pkc-small); color: var(--pkc-ink); }
.pkc-changelog summary { cursor: pointer; font-weight: 600; color: var(--pkc-text); min-height: 44px; padding: 0.6rem 0; }
.pkc-changelog ul { margin: 0.25rem 0 0; padding-left: 1.2rem; }
.pkc-changelog li { margin: 0.3rem 0; }

/* ---------- 10. tables: stacked cards under 600 px, never sideways scroll ---------- */

.pkc-table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.pkc-table caption { text-align: left; font-weight: 600; padding: 0 0 0.5rem; }
/* border: 0 first: the parent theme gives every th/td "1px solid" in the text colour (dark boxes inside our cards). */
.pkc-table th, .pkc-table td { text-align: left; vertical-align: top; padding: 0.7rem 0.8rem; border: 0; border-bottom: 1px solid var(--pkc-line); }
.pkc-table thead th { background: var(--pkc-mist); font-size: var(--pkc-small); color: var(--pkc-ink); }
.pkc-table tbody th { font-weight: 600; }

@media (max-width: 599px) {
  .pkc-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .pkc-table, .pkc-table tbody, .pkc-table tr, .pkc-table th, .pkc-table td { display: block; width: 100%; }
  .pkc-table tr { border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); margin: 0 0 0.75rem; padding: 0 0 0.25rem; overflow: hidden; } /* Grey heading runs to the rounded top edge. */
  .pkc-table tbody th { background: var(--pkc-mist); }
  .pkc-table td { border-bottom: 0; padding: 0.4rem 0.8rem; }
  .pkc-table td[data-label]::before {
    content: attr(data-label); display: block;
    font-size: var(--pkc-small); font-weight: 600; color: var(--pkc-ink);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pkc *, .pkc *::before, .pkc *::after { transition: none !important; animation: none !important; }
}

/* ---------- 11. lawyer profile and team cards (Step 2.2) ---------- */

.pkc-profile, .pkc-team { box-sizing: border-box; max-width: 820px; margin: 0 auto; padding: 32px 20px; }
.pkc-profile-head { margin: 0 0 1.5rem; }
.pkc-profile-photo { display: block; width: 100%; height: auto; border-radius: var(--pkc-radius); margin: 0 0 1.25rem; }
.pkc-profile-title { font: 600 1.0625rem/1.4 var(--pkc-sans); color: var(--pkc-ink); margin: 0; }
.pkc-profile-bio p { margin: 0; max-width: 68ch; }
.pkc-profile-list ul { margin: 0; padding-left: 1.2rem; }
.pkc-profile-list li { margin: 0.35rem 0; }

.pkc-team-intro { max-width: 68ch; color: var(--pkc-ink); }
.pkc-team-grid {
  list-style: none; padding: 0; display: grid; gap: var(--pkc-gap);
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
}
.pkc-team-card {
  border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius);
  padding: 0 0 1rem; overflow: hidden; background: var(--pkc-paper);
}
.pkc-team-card img { display: block; width: 100%; height: 9rem; object-fit: cover; margin: 0 0 0.9rem; }
.pkc-team-card .pkc-h, .pkc-team-card p { padding: 0 1rem; }
.pkc-team-card .pkc-h { margin: 0 0 0.25rem; }
.pkc-team-card .pkc-h a { color: var(--pkc-text); text-decoration: none; }
.pkc-team-card .pkc-h a:hover { color: var(--pkc-red); text-decoration: underline; }
.pkc-team-card p { margin: 0 0 0.35rem; }
.pkc-team-title { font-weight: 600; color: var(--pkc-ink); font-size: var(--pkc-small); }
.pkc-team-practice { font-size: var(--pkc-small); }
.pkc .pkc-team-more { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }

/* ---------- 12. long-form text sections (editorial policy, Step 2.3) ---------- */

.pkc > ul:not([class]) { margin: 0 0 1rem; padding-left: 1.2rem; }
.pkc > ul:not([class]) li { margin: 0.35rem 0; }
.pkc > p { margin: 0 0 1rem; max-width: 68ch; }
.pkc .pkc-disclaimer { margin-top: 0.5rem; }

/* ---------- 13. mobile first screen, tap targets (Step 2.5) ---------- */

.pk-hero-picture { display: contents; }

/* No sticky contact bar on phones (owner's request, 1 Nov 2026): the Step 2.5 bottom bar is gone, and older per-page bars stay hidden. */
.pk-mobile-contact { display: none !important; }

@media (max-width: 767px) {
  /* Tap targets: contact panels, footer links, breadcrumb. */
  body .sticky_contacts a, body #footer .footer_contact a, body #footer .footer_line a { display: inline-flex; align-items: center; min-height: 44px; }
  /* Footer menus: the theme's arrow is a background centred at 50%, and a more specific
     style.css rule forces display:block, so the text sat at the top of the 44px link and
     the arrow below it. !important keeps the text centred with the arrow (1 Nov 2026). */
  body #footer .widget_nav_menu li a, body #footer .menu li a { display: flex !important; align-items: center; min-height: 44px; }
  .breadcrumb a { display: inline-flex; align-items: center; min-height: 24px; padding: 0 2px; }
}

/* Short title block instead of the 400 px image header on phones.
   Selectors start with "body #content" to outrank css/style.css. */
@media (max-width: 600px) {
  body #content .post_header { min-height: 0; height: auto; }
  body #content .post_header img { display: none; }
  body #content .post_header .header_meta_wrapper {
    position: static; height: auto; background: var(--pkc-mist); border-bottom: 1px solid var(--pkc-line);
  }
  body #content .post_header .header_meta { padding: 20px 20px 12px; }
  body #content .post_header .header_meta_wrapper h1 {
    color: var(--pkc-text); font-size: 1.625rem; line-height: 1.25; padding: 0; margin: 0 0 8px; text-align: left;
  }
  body #content .post_header .breadcrumb, body #content .post_header .breadcrumb a { color: var(--pkc-ink); font-size: 0.875rem; text-align: left; }
}

/* ---------- 14. process timeline (Step 3.1) ---------- */

.pkc-tl-intro { margin: 0 0 1rem; max-width: 68ch; }
.pkc-tl-draft { background: #fff4d6; border: 1px solid #e6c56b; border-radius: var(--pkc-radius); padding: 0.5rem 0.75rem; font-size: var(--pkc-small); }

.pkc-tl-where { margin: 0 0 1rem; }
.pkc-tl-where-label { font-weight: 600; margin: 0 0 0.5rem; }
.pkc-tl-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pkc .pkc-tl-chip {
  min-height: 44px; padding: 0.4rem 0.85rem; cursor: pointer;
  border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); background: var(--pkc-paper);
  font: 600 0.9375rem/1.2 var(--pkc-sans); color: var(--pkc-text);
}
.pkc .pkc-tl-chip span { color: var(--pkc-red); margin-right: 0.15rem; }
.pkc .pkc-tl-chip:hover { border-color: var(--pkc-red); }
/* Buttons carry has-background/has-text-color in their markup: Twenty Twenty-One
   otherwise forces its own colours with button:not(:hover):not(:active):not(.has-background). */
.pkc .pkc-tl-chip[aria-pressed="true"] { background: var(--pkc-red); border-color: var(--pkc-red); color: #fff; }
.pkc .pkc-tl-chip[aria-pressed="true"] span { color: #fff; }

.pkc-tl-next { background: var(--pkc-mist); border-left: 4px solid var(--pkc-red); border-radius: var(--pkc-radius); padding: 0.9rem 1rem; margin: 0 0 1.25rem; }
.pkc-tl-next p { margin: 0 0 0.6rem; }
.pkc-tl-next .pkc-tl-next-h { font-weight: 700; }
.pkc-tl-next .pkc-actions { align-items: center; margin: 0; }

.pkc-tl-list { list-style: none; margin: 0; padding: 0; position: relative; }
/* Track and progress line behind the step numbers; progress is transform-only. */
.pkc-tl-list::before, .pkc-tl-list::after {
  content: ""; position: absolute; left: 19px; top: 20px; bottom: 20px; width: 2px;
}
.pkc-tl-list::before { background: var(--pkc-line); }
.pkc-tl-list::after {
  background: var(--pkc-red); transform-origin: top;
  transform: scaleY(var(--pkc-tl-p, 1));
}
.pkc-timeline.pkc-tl-anim .pkc-tl-list::after { transform: scaleY(0); transition: transform 0.4s ease; }
.pkc-timeline.pkc-tl-anim.is-in .pkc-tl-list::after { transform: scaleY(var(--pkc-tl-p, 1)); }

.pkc-tl-step { position: relative; display: flex; gap: 1rem; padding: 0 0 1.25rem; }
.pkc-tl-step:last-child { padding-bottom: 0; }
.pkc-tl-num {
  flex: none; position: relative; z-index: 1; width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--pkc-paper); border: 2px solid var(--pkc-red); color: var(--pkc-red); font-weight: 700;
}
.pkc-tl-body { flex: 1; min-width: 0; padding: 0.15rem 0.75rem 0.25rem; border-radius: var(--pkc-radius); }
.pkc-tl-title { font-family: var(--pkc-serif); font-weight: 500; font-size: 1.125rem; line-height: 1.35; margin: 0.4rem 0 0.2rem; color: var(--pkc-text); }
.pkc-tl-meta { font-size: var(--pkc-small); color: var(--pkc-ink); margin: 0 0 0.4rem; }
.pkc-tl-text p { margin: 0 0 0.5rem; }
.pkc-tl-text > :last-child { margin-bottom: 0; }

.pkc-tl-step.is-done .pkc-tl-num, .pkc-tl-step.is-current .pkc-tl-num { background: var(--pkc-red); color: #fff; }
.pkc-tl-step.is-current .pkc-tl-body { background: var(--pkc-mist); }
.pkc-tl-step.is-current .pkc-tl-title { font-weight: 700; }

@media print {
  .pkc-tl-where, .pkc-tl-next { display: none !important; }
  .pkc-tl-list::after { display: none; }
}

/* ---------- 15. pillar guide layout (Step 3.2) ---------- */

/* 1210 = the 1170 px content column below (Bootstrap container) + padding, so every band lines up. */
.pkc-pillar-wrap { box-sizing: border-box; max-width: 1210px; margin: 0 auto; padding: 0 20px; }
.pkc-pillar-hero { background: var(--pkc-mist); border-bottom: 1px solid var(--pkc-line); padding: 24px 0 8px; margin: 0 0 1.75rem; }
.pkc-pillar-hero .pk-archive-title { margin: 0.25rem 0 1rem; }
.pkc-pillar-hero .pkc-answer { max-width: none; background: var(--pkc-paper); padding: 0.75rem 1rem; border-radius: 0 var(--pkc-radius) var(--pkc-radius) 0; }
.pkc-pillar-hero .pkc-review { border-color: transparent; }
.pkc-pillar-crumb { font-size: 0.875rem; color: var(--pkc-ink); }
.pkc-pillar-content { margin: 0 0 1.75rem; }

/* The page content's own hero and fact boxes are replaced by the pillar
   hero and key facts; hidden here until editors delete them (Block 17). */
body.pk-pillar .pkc-pillar-content .pk-page > .pk-hero,
body.pk-pillar .pkc-pillar-content .pk-page > .pk-facts-wrap { display: none; }

@media (max-width: 600px) {
  .pkc-pillar-hero { padding-top: 16px; }
  .pkc-pillar-hero .pk-archive-title { font-size: 1.625rem; }
}

/* ---------- 16. office card and table note (Step 3.3) ---------- */

.pkc-office { border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); padding: 1.1rem 1.25rem; background: var(--pkc-paper); }
.pkc-office-list { display: grid; gap: 0.6rem; margin: 0 0 1rem; }
.pkc-office-list dt { font-size: var(--pkc-small); font-weight: 600; color: var(--pkc-ink); }
.pkc-office-list dd a { font-weight: 600; }
.pkc-table-note { font-size: var(--pkc-small); color: var(--pkc-ink); margin-top: -1rem; }

/* ---------- 17. document checker (Step 3.5) ---------- */

.pkc-checker { border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); padding: 1.1rem 1.25rem; }
.pkc-ck-intro { margin: 0 0 1rem; color: var(--pkc-ink); }
.pkc-ck-q { border: 0; margin: 0 0 1rem; padding: 0; min-width: 0; }
.pkc-ck-q legend { font-family: var(--pkc-serif); font-size: 1.1875rem; font-weight: 500; padding: 0; margin: 0 0 0.75rem; }
.pkc-ck-count { display: block; font: 600 var(--pkc-small)/1.4 var(--pkc-sans); color: var(--pkc-ink); margin: 0 0 0.25rem; }
.pkc-ck-opt {
  display: flex; align-items: center; gap: 0.6rem; min-height: 48px; padding: 0.5rem 0.85rem; margin: 0 0 0.5rem;
  border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); background: var(--pkc-paper); cursor: pointer;
}
.pkc-ck-opt:hover { border-color: var(--pkc-red); }
.pkc-ck-opt input { width: 1.15rem; height: 1.15rem; accent-color: var(--pkc-red); flex: none; margin: 0; }
.pkc-ck-opt:has(input:checked) { border-color: var(--pkc-red); background: var(--pkc-mist); }
.pkc-ck-opt:has(input:focus-visible) { box-shadow: var(--pkc-focus); }
.pkc-ck-error { color: var(--pkc-red); font-weight: 600; margin: 0 0 0.75rem; }
.pkc-ck-result { background: var(--pkc-mist); border-left: 4px solid var(--pkc-red); border-radius: var(--pkc-radius); padding: 1rem; margin: 0 0 1.5rem; }
.pkc-ck-result-h { font-family: var(--pkc-serif); font-weight: 500; font-size: 1.25rem; margin: 0 0 0.25rem; }
.pkc-ck-result-h:focus { outline: none; }
.pkc-ck-summary { font-size: var(--pkc-small); color: var(--pkc-ink); margin: 0 0 0.75rem; }
.pkc-ck-list { margin: 0 0 0.75rem; padding-left: 1.3rem; }
.pkc-ck-list li { margin: 0.35rem 0; }
.pkc-ck-matrix-h { font-family: var(--pkc-serif); font-weight: 500; font-size: 1.125rem; margin: 1.5rem 0 0.5rem; }

/* "Print" buttons (pk-components.js) copy their box into #pkc-print-root; only that is printed.
   Printing the page any other way (Ctrl+P) prints the whole page as usual. */
#pkc-print-root { display: none; }
@media print {
  body.pkc-printing > *:not(#pkc-print-root) { display: none !important; }
  body.pkc-printing #pkc-print-root { display: block; padding: 0; margin: 0; }
  #pkc-print-root .pkc { border: 0; background: #fff; padding: 0; margin: 0; max-width: none; }
  #pkc-print-root button, #pkc-print-root .pkc-actions { display: none !important; }
  .pkc-print-source { font: 12px/1.4 var(--pkc-sans); color: #555; margin: 0 0 12px; }
  .pkc-checklist-list li { break-inside: avoid; }
}

/* ---------- 18. card grid and printable checklist (Step 3.6) ---------- */

.pkc-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.pkc-card { border: 1px solid var(--pkc-line); border-top: 3px solid var(--pkc-red); border-radius: var(--pkc-radius); padding: 0.9rem 1rem; background: var(--pkc-paper); }
.pkc-card-title { font-family: var(--pkc-serif); font-weight: 500; font-size: 1.0625rem; line-height: 1.35; margin: 0 0 0.35rem; }
.pkc-card p { margin: 0 0 0.5rem; font-size: 1rem; }
.pkc-card .pkc-card-link { margin: 0; }
.pkc-card-link a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }

.pkc-checklist { border: 1px dashed var(--pkc-line); border-radius: var(--pkc-radius); padding: 1rem 1.25rem; }
.pkc-checklist-list { list-style: none; margin: 0 0 1rem; padding: 0; }
.pkc-checklist-list li { display: flex; align-items: flex-start; gap: 0.6rem; padding: 0.35rem 0; border-bottom: 1px solid var(--pkc-line); }
.pkc-checklist-list input { width: 1.2rem; height: 1.2rem; margin: 0.3rem 0 0; accent-color: var(--pkc-red); flex: none; }
.pkc-checklist-list label { cursor: pointer; min-height: 32px; }

@media print {
  .pkc-checklist { border: 0; }
  .pkc-checklist button { display: none; }
}

/* ---------- 19. talaq / Khulla 90-day calculator (Step 3.7) ---------- */

.pkc-calc { border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); padding: 1.1rem 1.25rem; }
.pkc-calc-field label { display: block; font-weight: 600; margin: 0 0 0.4rem; }
.pkc-calc-field input[type="date"] {
  min-height: 48px; padding: 0.5rem 0.75rem; font: 1.0625rem var(--pkc-sans);
  border: 1px solid var(--pkc-ink); border-radius: var(--pkc-radius); background: var(--pkc-paper); color: var(--pkc-text);
}
.pkc-calc-field input[type="date"]:focus-visible { outline: none; box-shadow: var(--pkc-focus); }
.pkc-calc-dates { display: grid; gap: 0.6rem; margin: 0.5rem 0 0.75rem; }
.pkc-calc-dates dt { font-size: var(--pkc-small); color: var(--pkc-ink); font-weight: 600; }
.pkc-calc-dates dd { margin: 0; font-weight: 700; font-size: 1.0625rem; }

/* ---------- 20. document pathway (Step 3.8) ---------- */

.pkc-pathway { border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); padding: 1.1rem 1.25rem; }
.pkc-pw-rule { background: var(--pkc-mist); border-left: 4px solid var(--pkc-red); border-radius: var(--pkc-radius); padding: 0.9rem 1rem; margin: 0 0 1.25rem; }
.pkc-pw-rule:focus { outline: none; }
.pkc-pw-rule .pkc-tl-next-h { font-weight: 700; margin: 0 0 0.5rem; }
.pkc-pw-rule .pkc-calc-dates dd { font-weight: 400; font-size: 1rem; }
.pkc-pw-source { font-size: var(--pkc-small); margin: 0; }
.pkc-pw-ours .pkc-tl-body { background: var(--pkc-mist); }
.pkc-pw-badge { display: inline-block; font: 600 0.75rem/1.4 var(--pkc-sans); text-transform: uppercase; letter-spacing: 0.04em; color: var(--pkc-red); border: 1px solid var(--pkc-red); border-radius: var(--pkc-radius); padding: 0 0.4rem; vertical-align: 0.15em; }
.pkc-pw-dest { font-weight: 600; }
.pkc-pw-steps .pkc-actions { margin: 0.5rem 0 0.25rem; }

/* ---------- 21. overseas strip (Step 3.10) ---------- */

.pkc-overseas { border: 1px solid var(--pkc-line); border-left: 4px solid var(--pkc-red); border-radius: var(--pkc-radius); padding: 0.9rem 1rem; }
.pkc-overseas p { margin: 0 0 0.6rem; }
.pkc-overseas .pkc-overseas-h { font-weight: 700; margin: 0 0 0.25rem; }
.pkc-overseas .pkc-actions { margin: 0; }

/* ---------- 22. consultation form, Contact Form 7 (Step 3.12) ---------- */

.pk-consult { font-family: var(--pkc-sans); color: var(--pkc-text); max-width: 560px; }
.pk-consult p { margin: 0 0 1rem; padding: 0; }
.pk-consult label { display: block; font-weight: 600; margin: 0 0 0.35rem; color: var(--pkc-text); }
.pk-consult label span, .pk-consult .pk-consult__hint { font-weight: 400; color: var(--pkc-ink); font-size: var(--pkc-small); }
.pk-consult .wpcf7-form-control-wrap { display: block; }
.pk-consult input[type="text"], .pk-consult input[type="tel"], .pk-consult select, .pk-consult textarea {
  box-sizing: border-box; width: 100%; min-height: 48px; padding: 0.6rem 0.75rem;
  font: 1rem/1.4 var(--pkc-sans); color: var(--pkc-text); background: var(--pkc-paper);
  border: 1px solid var(--pkc-ink); border-radius: var(--pkc-radius);
}
.pk-consult textarea { min-height: 7rem; resize: vertical; }
.pk-consult input:focus-visible, .pk-consult select:focus-visible, .pk-consult textarea:focus-visible { outline: none; box-shadow: var(--pkc-focus); }
.pk-consult .wpcf7-not-valid { border-color: var(--pkc-red); }
.pk-consult .wpcf7-not-valid-tip { display: block; color: var(--pkc-red); font-size: var(--pkc-small); font-weight: 600; margin-top: 0.3rem; }
.pk-consult .pk-consult__note { font-size: var(--pkc-small); color: var(--pkc-ink); }
/* Classes has-background/has-text-color on the button keep Twenty Twenty-One's input[type=submit] colours off. */
.pk-consult input[type="submit"].pk-consult__btn {
  min-height: 48px; padding: 0.7rem 1.4rem; border: 2px solid var(--pkc-red); border-radius: var(--pkc-radius);
  background: var(--pkc-red); color: #fff; font: 600 1rem/1.2 var(--pkc-sans); cursor: pointer;
}
.pk-consult input[type="submit"].pk-consult__btn:hover { background: var(--pkc-red-dark); border-color: var(--pkc-red-dark); }
.pk-consult input[type="submit"].pk-consult__btn:focus-visible { outline: none; box-shadow: var(--pkc-focus); }
.wpcf7 form:has(.pk-consult) .wpcf7-response-output { margin: 0.5rem 0 0; padding: 0.6rem 0.8rem; border-radius: var(--pkc-radius); font-size: var(--pkc-small); }

/* ---------- 23. judgments database (Step 4.1) ---------- */

.pkc-jd-meta { font-size: var(--pkc-small); color: var(--pkc-ink); font-weight: 600; margin: 0 0 0.5rem; }
.pkc-jd-status { display: inline-block; font-size: var(--pkc-small); font-weight: 700; border-radius: var(--pkc-radius); padding: 0.15rem 0.6rem; margin: 0 0 0.75rem; background: var(--pkc-mist); border: 1px solid var(--pkc-line); }
.pkc-jd-status--overruled, .pkc-jd-status--set_aside { background: #fde8e8; border-color: #e7a4a4; color: #7a0000; }
.pkc-jd-status--appealed { background: #fff4d6; border-color: #e0c06a; color: #5c4300; }
/* Case identity and "Judgment at a glance" (single judgment, 2 Nov 2026). */
.pkc-jd-ident { font-size: var(--pkc-small); color: var(--pkc-ink); margin: 0 0 0.75rem; line-height: 1.6; }
.pkc-jd-parties { font-weight: 700; color: var(--pkc-text); }
.pkc-jd-unrep { font-style: italic; }
.pkc-jd-glance .pkc-jd-dl { border-left: 4px solid var(--pkc-red); }
.pkc-jd-glance dd { margin: 0; }
.pkc-jd-glance dd ul { margin: 0; padding-left: 1.1rem; }
.pkc-jd-glance dd li { margin: 0 0 0.25rem; }
.pkc-jd-cite { font-size: var(--pkc-small); margin: 0.9rem 0 0.5rem; overflow-wrap: anywhere; }
.pkc-jd-cite-label { font-weight: 700; }
.pkc-jd-tools { margin: 0; }
.pkc-jd-source { font-size: var(--pkc-small); }
.pkc-jd-source--secondary { color: #7a5200; font-weight: 600; }
/* Detailed analysis (2 Nov 2026): paragraph references, timeline, questions, quotations. */
.pkc-jd-ref { color: var(--pkc-ink); font-size: var(--pkc-small); white-space: nowrap; }
.pkc-jd-note { color: var(--pkc-ink); font-size: var(--pkc-small); }
.pkc-jd-h3 { font-family: var(--pkc-serif); font-weight: 500; font-size: 1.125rem; line-height: 1.35; margin: 1.25rem 0 0.4rem; }
.pkc-jd-sec > .pkc-h + .pkc-jd-h3 { margin-top: 0; }
.pkc-jd-history { list-style: none; margin: 0; padding: 0 0 0 1.1rem; border-left: 3px solid var(--pkc-line); }
.pkc-jd-history li { position: relative; display: grid; gap: 0.15rem; padding: 0 0 1rem; }
.pkc-jd-history li::before { content: ""; position: absolute; left: calc(-1.1rem - 8px); top: 0.35rem; width: 13px; height: 13px; background: var(--pkc-red); }
.pkc-jd-history li:last-child { padding-bottom: 0; }
.pkc-jd-history-date { font-size: var(--pkc-small); font-weight: 700; color: var(--pkc-ink); }
.pkc-jd-questions { margin: 0; padding-left: 1.25rem; }
.pkc-jd-questions li { margin: 0 0 1rem; }
.pkc-jd-questions p { margin: 0 0 0.35rem; }
.pkc-jd-q { font-weight: 600; }
.pkc-jd-label { display: inline-block; font-size: 0.8125rem; font-weight: 600; color: var(--pkc-ink); background: var(--pkc-mist); border: 1px solid var(--pkc-line); padding: 0 0.4rem; margin-left: 0.25rem; vertical-align: 0.1em; }
.pkc-jd-quote { margin: 0 0 1rem; border: 1px solid var(--pkc-line); border-left: 4px solid var(--pkc-red); background: var(--pkc-mist); padding: 0.8rem 1rem; }
.pkc-jd-quote blockquote { margin: 0; font-family: var(--pkc-serif); }
.pkc-jd-quote blockquote p { margin: 0; }
.pkc-jd-quote figcaption { margin-top: 0.4rem; font-size: var(--pkc-small); font-weight: 700; color: var(--pkc-ink); }
.pkc-jd-cards { list-style: none; margin: 0 0 1.75rem; padding: 0; display: grid; gap: 0.75rem; }
.pkc-jd-card { border: 1px solid var(--pkc-line); border-left: 4px solid var(--pkc-red); border-radius: var(--pkc-radius); padding: 0.9rem 1rem; background: var(--pkc-paper); font-family: var(--pkc-sans); }
.pkc-jd-card[hidden] { display: none; }
.pkc-jd-title { font-family: var(--pkc-serif); font-weight: 500; font-size: 1.125rem; line-height: 1.35; margin: 0 0 0.35rem; padding: 0; }
.pkc-jd-title a { color: var(--pkc-text); text-decoration: none; }
.pkc-jd-title a:hover { color: var(--pkc-red); text-decoration: underline; }
.pkc-jd-holding { margin: 0; font-size: 1rem; }
.pkc-jd-filter { display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); align-items: end; }
.pkc-jd-filter p { margin: 0; }
.pkc-jd-filter label { display: block; font-weight: 600; font-size: var(--pkc-small); margin: 0 0 0.3rem; }
.pkc-jd-filter select, .pkc-jd-filter input { box-sizing: border-box; width: 100%; min-height: 48px; padding: 0.5rem 0.75rem; font: 1rem var(--pkc-sans); border: 1px solid var(--pkc-ink); border-radius: var(--pkc-radius); background: var(--pkc-paper); color: var(--pkc-text); }
.pkc-jd-filter select:focus-visible, .pkc-jd-filter input:focus-visible { outline: none; box-shadow: var(--pkc-focus); }
.pkc-jd-count { font-size: var(--pkc-small); color: var(--pkc-ink); margin: 0 0 0.75rem; }
.pkc-jd-count:empty { display: none; }
.pkc-jd-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.pkc-jd-actions a { display: inline-flex; align-items: center; min-height: 44px; }
.pkc-jd-pages ul { list-style: none; padding: 0; margin: 0 0 1.75rem; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pkc-jd-pages a, .pkc-jd-pages span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 0.75rem; border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); text-decoration: none; }
.pkc-jd-pages .current { background: var(--pkc-red); border-color: var(--pkc-red); color: #fff; font-weight: 700; }
.pkc-jd-pages .dots { border: 0; }
/* .pkc.pkc-jd-browse outranks ".pkc ul:not([class])" (bullets, indent) and "body li" padding, which otherwise put a bullet over each count. */
.pkc.pkc-jd-browse > ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; margin: 0 0 1.25rem; }
.pkc.pkc-jd-browse > ul > li { margin: 0; padding: 0; }
.pkc-jd-browse li a { display: inline-flex; align-items: center; min-height: 44px; }
.pkc-jd-browse span { color: var(--pkc-ink); font-size: var(--pkc-small); }
.pkc-jd-dl { display: grid; gap: 1px; background: var(--pkc-line); border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); overflow: hidden; }
.pkc-jd-dl > div { display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr; gap: 0.75rem; background: var(--pkc-paper); padding: 0.7rem 1rem; }
.pkc-jd-dl dt { font-weight: 600; color: var(--pkc-ink); font-size: var(--pkc-small); }
@media (max-width: 599px) { .pkc-jd-dl > div { grid-template-columns: 1fr; gap: 0.2rem; } }
.pkc-jd-more { margin-top: -1rem; font-weight: 600; }
/* "Judgments in this brief" sits after .pk-brief, outside its column: same width and centring as the brief. */
.pk-brief ~ .pkc-jd-list { box-sizing: border-box; width: calc(100% - 48px); max-width: 1200px; margin: 0 auto 34px; }
@media (max-width: 900px) { .pk-brief ~ .pkc-jd-list { width: calc(100% - 32px); } }
@media (max-width: 520px) { .pk-brief ~ .pkc-jd-list { width: calc(100% - 24px); } }

/* ---------- 24. internal links: contents, next step, related, services (Step 4.3) ---------- */

/* Table of contents (pkc_toc): numbered jump links in a foldable box; two columns on wide pages. */
.pkc-toc { border: 1px solid var(--pkc-line); border-left: 4px solid var(--pkc-red); border-radius: var(--pkc-radius); background: var(--pkc-mist); max-width: 68ch; margin: 0 0 1.75rem; }
.pkc-toc--wide { max-width: none; }
.pkc-toc summary { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.2rem 0.6rem; min-height: 48px; padding: 0.85rem 2.6rem 0.85rem 1.1rem; position: relative; cursor: pointer; list-style: none; font-family: var(--pkc-serif); font-size: 1.25rem; font-weight: 700; color: var(--pkc-text); }
.pkc-toc summary::-webkit-details-marker { display: none; }
.pkc-toc summary::after { content: ""; position: absolute; right: 1.2rem; top: 1.3rem; width: 0.55rem; height: 0.55rem; border-right: 2px solid var(--pkc-red); border-bottom: 2px solid var(--pkc-red); transform: rotate(45deg); transition: transform 0.15s; }
.pkc-toc details[open] summary::after { transform: rotate(-135deg); top: 1.55rem; }
.pkc-toc summary:focus-visible { outline: none; box-shadow: var(--pkc-focus); border-radius: var(--pkc-radius); }
.pkc-toc .pkc-toc-n { font-family: var(--pkc-sans); font-size: var(--pkc-small); font-weight: 500; color: var(--pkc-ink); }
.pkc-toc ol { list-style: none; counter-reset: pkc-toc; margin: 0; padding: 0 1.1rem 0.75rem; }
.pkc-toc li { counter-increment: pkc-toc; display: flex; gap: 0.5rem; margin: 0; border-top: 1px solid var(--pkc-line); break-inside: avoid; }
.pkc-toc li::before { content: counter(pkc-toc) "."; flex: 0 0 1.7rem; padding-top: 0.6rem; font-size: 1rem; font-weight: 700; color: var(--pkc-red); font-variant-numeric: tabular-nums; }
.pkc-toc a { display: flex; align-items: center; min-height: 44px; padding: 0.35rem 0; font-size: 1rem; line-height: 1.45; color: var(--pkc-text); text-decoration: none; }
.pkc-toc a:hover, .pkc-toc a:focus-visible { color: var(--pkc-red); text-decoration: underline; }
@media (min-width: 900px) { .pkc-toc--wide ol { columns: 2; column-gap: 2.5rem; } }
/* Jump targets: a little air above a heading reached from the contents. */
h2[id], h3[id] { scroll-margin-top: 16px; }
.pkc-links { display: grid; gap: 1rem; margin: 1.75rem 0; }
.pkc-links .pkc { margin: 0; }
.pkc-next { background: var(--pkc-mist); border-left: 4px solid var(--pkc-red); border-radius: var(--pkc-radius); padding: 0.9rem 1rem; }
.pkc-next .pkc-next-label { font-size: var(--pkc-small); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--pkc-ink); margin: 0 0 0.2rem; }
.pkc-next .pkc-next-link { margin: 0; font-weight: 600; }
.pkc-next .pkc-next-link a::after { content: " \2192"; }
.pkc-related ul, .pkc-also ul { list-style: none; margin: 0; padding: 0; }
.pkc-related li, .pkc-also li { border-top: 1px solid var(--pkc-line); }
.pkc-related a, .pkc-also a { display: flex; align-items: center; min-height: 44px; font-weight: 600; text-decoration: none; }
.pkc-related a:hover, .pkc-also a:hover { text-decoration: underline; }
.pkc-also { border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); padding: 0.9rem 1.1rem; }
@media (min-width: 900px) { .pkc-links { grid-template-columns: 1fr 1fr; } .pkc-links .pkc-next { grid-column: 1 / -1; } }

/* ---------- 25. supporting guides (Step 4.4) ---------- */

.pkc-guide-section { max-width: 72ch; }
.pkc-guide-section ol, .pkc-guide-section ul { padding-left: 1.3rem; margin: 0 0 1rem; }
.pkc-guide-section li { margin: 0.35rem 0; }
.pkc-guide-section > p { margin: 0 0 1rem; }
.pkc-verify { background: #fff4d6; color: #6b4e00; font-size: 0.8125rem; font-weight: 700; padding: 0 0.35rem; border-radius: 4px; }

/* CTA band: office hours under the buttons (1 Nov 2026). */
.pkc-cta .pkc-cta-hours { margin: 0.75rem 0 0; font-size: var(--pkc-small); opacity: 0.9; }

/* ---------- 26. search results (search.php, 1 Nov 2026) ---------- */

.pkc-search-form { display: flex; gap: 0.5rem; margin: 0 0 1.25rem; max-width: 720px; }
.pkc-search-form input { flex: 1; min-width: 0; min-height: 48px; padding: 0.5rem 0.9rem; font: 1rem var(--pkc-sans); border: 1px solid var(--pkc-ink); border-radius: var(--pkc-radius); background: var(--pkc-paper); color: var(--pkc-text); }
.pkc-search-form input:focus-visible { outline: none; box-shadow: var(--pkc-focus); }
.pkc-search-form .pkc-btn { min-height: 48px; }
.pkc-search .pk-archive-title { font-size: clamp(1.625rem, 3vw, 2.25rem); line-height: 1.25; overflow-wrap: anywhere; }
.pkc-search-list { list-style: none; margin: 0 0 1.75rem; padding: 0; display: grid; gap: 0.75rem; }
.pkc-search-item { border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); background: var(--pkc-paper); padding: 1rem 1.15rem; }
.pkc-search-item:hover { border-color: var(--pkc-ink); }
.pkc-search-meta { display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; align-items: center; margin: 0 0 0.35rem; font-size: 0.8125rem; color: var(--pkc-ink); }
.pkc-search-type { font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--pkc-red); }
.pkc .pkc-search-title { font-family: var(--pkc-serif); font-size: 1.25rem; line-height: 1.35; margin: 0 0 0.2rem; }
.pkc-search-title a { color: var(--pkc-text); text-decoration: none; }
.pkc-search-title a:hover, .pkc-search-title a:focus-visible { color: var(--pkc-red); text-decoration: underline; }
.pkc-search-url { margin: 0 0 0.4rem; font-size: 0.8125rem; color: var(--pkc-green); overflow-wrap: anywhere; }
.pkc-search-text { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--pkc-ink); }
.pkc-search-text mark { background: #fbeaea; color: var(--pkc-text); font-weight: 600; padding: 0 2px; border-radius: 2px; }
.pkc-search-popular { list-style: none; margin: 0 0 1.75rem; padding: 0; display: grid; gap: 0.5rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.pkc-search-popular a { display: flex; align-items: center; min-height: 48px; padding: 0.5rem 0.9rem; border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); font-weight: 600; text-decoration: none; }
.pkc-search-popular a:hover { border-color: var(--pkc-red); text-decoration: underline; }
.pkc-search-help { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; margin: 0 0 2.5rem; padding: 1rem 1.15rem; background: var(--pkc-mist); border-left: 4px solid var(--pkc-red); border-radius: var(--pkc-radius); }
.pkc-search-help p { margin: 0; max-width: 60ch; }
@media (max-width: 479px) { .pkc-search-form { flex-direction: column; } }
.pkc-jd-guide { margin: 0 0 1rem; font-weight: 600; }

/* ---------- 27. fixes (2 Nov 2026) ---------- */

/* Checkboxes and radio buttons: the parent theme draws its own with a white border (dark-theme
   colours), invisible on our white pages. Use the browser's own, in maroon. */
.pkc input[type="checkbox"], .pkc input[type="radio"],
.pk-consult input[type="checkbox"], .pk-consult input[type="radio"] {
  -webkit-appearance: auto; appearance: auto; width: 1.2rem; height: 1.2rem; margin: 0.3rem 0 0;
  border: 0; background: none; accent-color: var(--pkc-red); flex: none; cursor: pointer;
}
.pkc input[type="checkbox"]::after, .pkc input[type="radio"]::after,
.pk-consult input[type="checkbox"]::after, .pk-consult input[type="radio"]::after { content: none; display: none; }

/* Pillar and guide pages are 1170 px wide since 1 Nov; let their text use it (was capped at ~68 characters). */
.pkc-pillar-wrap .pkc > p, .pkc-pillar-wrap .pkc-tl-intro, .pkc-pillar-wrap .pkc-faq .pkc-faq-a,
.pkc-pillar-wrap .pkc-disclaimer, .pkc-pillar-wrap .pkc-guide-section, .pkc-pillar-wrap .pkc-cta p,
.pkc-pillar-wrap .pkc-toc { max-width: none; }

/* Talaq calculator result: the note under the dates reused .pkc-table-note (margin-top -1rem, meant
   for under a table) and overlapped "90 days to go"; the result box also touched the button. */
.pkc-calc .pkc-calc-result { margin-top: 1.25rem; }
.pkc-calc-result .pkc-calc-dates { margin: 0.5rem 0 1rem; }
.pkc-calc-result .pkc-table-note { margin: 0 0 1rem; }

/* FAQs: the 44 px minimum was added on top of the padding (content-box), so each question
   row was 73 px; and an open answer sat a full padding below its question (owner, 2 Nov). */
.pkc-faq summary { box-sizing: border-box; }
.pkc-faq details[open] summary { padding-bottom: 0.4rem; }
/* Judgment cards (Phase 5): parties, issue, laws as small links. */
.pkc-jd-case { margin: 0 0 0.35rem; font-size: var(--pkc-small); font-weight: 600; color: var(--pkc-ink); }
.pkc-jd-issue { margin: 0 0 0.35rem; font-size: 1rem; }
.pkc-jd-laws { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.6rem 0 0; }
.pkc-jd-laws a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 0.55rem; font-size: 0.8125rem; border: 1px solid var(--pkc-line); background: var(--pkc-mist); color: var(--pkc-text); text-decoration: none; }
.pkc-jd-laws a:hover, .pkc-jd-laws a:focus-visible { border-color: var(--pkc-red); color: var(--pkc-red); }
.pkc-jd-filter optgroup { font-weight: 700; }
/* Related judgments (Phase 6). */
.pkc-jd-related { list-style: none; margin: 0; padding: 0; }
.pkc-jd-related li { display: grid; gap: 0.15rem; padding: 0.6rem 0; border-bottom: 1px solid var(--pkc-line); }
.pkc-jd-related li:last-child { border-bottom: 0; }
.pkc-jd-related .pkc-jd-label { justify-self: start; margin-left: 0; }
.pkc-jd-related-meta, .pkc-jd-related-check { font-size: var(--pkc-small); color: var(--pkc-ink); }
/* Editorial workflow (Phase 7): what is the court's and what is ours. */
.pkc-jd-kind { display: inline-block; margin: -0.25rem 0 0.75rem; padding: 0 0.45rem; font-size: 0.8125rem; font-weight: 600; border: 1px solid var(--pkc-line); }
.pkc-jd-kind--court { background: var(--pkc-mist); color: var(--pkc-ink); }
.pkc-jd-kind--ours { background: #fff; color: var(--pkc-ink); border-style: dashed; }
.pkc-jd-correction { font-weight: 600; }
/* Landmark judgments (Phase 8). */
.pkc-jd-landmark { display: inline-block; margin: 0 0 0.5rem; padding: 0.1rem 0.55rem; font-size: var(--pkc-small); font-weight: 700; color: #fff; background: var(--pkc-red); }

/* ---------- 28. Nikahnama column map (Step 5.3, 3 Nov 2026) ---------- */
.pkc-nkm-group { border-bottom: 1px solid var(--pkc-line); }
.pkc-nkm-group:first-of-type { border-top: 1px solid var(--pkc-line); }
.pkc-nkm-group summary {
  list-style: none; cursor: pointer; position: relative;
  padding: 0.9rem 2.25rem 0.9rem 0; min-height: 44px;
  font-family: var(--pkc-serif); font-weight: 500; font-size: 1.125rem; line-height: 1.4;
}
.pkc-nkm-group summary::-webkit-details-marker { display: none; }
.pkc-nkm-group summary::after {
  content: ""; position: absolute; right: 0.5rem; top: 1.15rem;
  width: 0.6rem; height: 0.6rem; border-right: 2px solid var(--pkc-red); border-bottom: 2px solid var(--pkc-red);
  transform: rotate(45deg); transition: transform 0.2s ease;
}
.pkc-nkm-group[open] summary::after { transform: rotate(-135deg); top: 1.4rem; }
.pkc-nkm-table { margin: 0 0 1rem; }
/* Inside <details> the content inherits through the browser's own slot, which breaks ".pkc * { box-sizing: inherit }". */
.pkc-nkm-table, .pkc-nkm-table * { box-sizing: border-box; }
@media (min-width: 600px) { .pkc-nkm-table tbody th { width: 4.5rem; } }
@media (max-width: 599px) { .pkc-nkm-table tbody th::before { content: "Column "; } } /* Phone cards: no column headings. */
.pkc-nkm-table tr:target { background: #fff4d6; }
.pkc-nkm-source { font-size: var(--pkc-small); color: var(--pkc-ink); }
@media (prefers-reduced-motion: reduce) { .pkc-nkm-group summary::after { transition: none; } }

/* ---------- 29. tool pages and tool tables (Step 5.3, owner 3 Nov 2026) ---------- */
.pkc-tool-page { padding-top: 28px; padding-bottom: 40px; }
.pkc-tool-page .pk-archive-title { margin: 0.25rem 0 1.25rem; }
.pkc-tool-page .pkc-ck-intro { max-width: none; }
/* Tables inside the tools: framed, clear header, zebra rows. Phones keep the stacked cards (section 6). */
@media (min-width: 600px) {
  .pkc-checker .pkc-table, .pkc-nkm-table {
    border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius);
    border-collapse: separate; border-spacing: 0; overflow: hidden;
  }
  .pkc-checker .pkc-table caption { font-family: var(--pkc-serif); font-size: 1.05rem; padding: 0 0 0.6rem; }
  .pkc-checker .pkc-table thead th, .pkc-nkm-table thead th {
    background: var(--pkc-mist); color: var(--pkc-text); font-size: var(--pkc-small); font-weight: 700;
    letter-spacing: 0.03em; text-transform: uppercase; border-bottom: 2px solid var(--pkc-red); padding: 0.75rem 1rem;
  }
  .pkc-checker .pkc-table tbody th, .pkc-checker .pkc-table td,
  .pkc-nkm-table tbody th, .pkc-nkm-table td { padding: 0.8rem 1rem; }
  .pkc-checker .pkc-table tbody th { font-weight: 400; } /* Document names are sentences: bold made the table heavy. */
  .pkc-checker .pkc-table td { width: 32%; color: var(--pkc-ink); font-size: 0.95rem; }
  .pkc-checker .pkc-table tbody tr:nth-child(even), .pkc-nkm-table tbody tr:nth-child(even) { background: #faf9f8; }
  .pkc-checker .pkc-table tbody tr:last-child > *, .pkc-nkm-table tbody tr:last-child > * { border-bottom: 0; }
  .pkc-nkm-table tbody th { color: var(--pkc-red); font-weight: 700; }
}
/* Phone cards: the table is display:block, so its caption shrank to one word per line (owner, 3 Nov). */
@media (max-width: 599px) { .pkc-table caption { display: block; width: auto; } }
/* Checker result: the note under the list reused .pkc-table-note (margin-top -1rem) and sat on the buttons (owner, 3 Nov). */
.pkc-ck-result .pkc-table-note { margin: 0.5rem 0 1.5rem; }
.pkc-ck-result .pkc-ck-actions { margin-top: 0.5rem; }
/* Team page: standard page width (owner, 3 Nov). Cards share the row instead of leaving an empty slot. */
.pkc-team-page .pkc-team-intro { max-width: none; }
/* 2 x 2 on wider screens, one card per row on phones (owner, 3 Nov). Photos are 800 x 290 banners: shown whole. */
.pkc-team-page .pkc-team-grid { grid-template-columns: 1fr; }
@media (min-width: 700px) { .pkc-team-page .pkc-team-grid { grid-template-columns: repeat(2, 1fr); } }
.pkc-team-page .pkc-team-card img { height: auto; aspect-ratio: 80 / 29; }
/* A card without a photo keeps its name in line with the others. */
.pkc-team-card:not(:has(img))::before { content: ""; display: block; height: 9rem; margin: 0 0 0.9rem; background: var(--pkc-mist); }
.pkc-team-page .pkc-team-card:not(:has(img))::before { height: auto; aspect-ratio: 80 / 29; }

/* ---------- 30. search: filters and result groups (Step 5.4, 3 Nov 2026) ---------- */
.pkc-search-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.5rem; }
.pkc-search-filters a { display: inline-flex; align-items: center; gap: 0.45rem; min-height: 44px; padding: 0.35rem 0.9rem; border: 1px solid var(--pkc-line); border-radius: 999px; background: var(--pkc-paper); color: var(--pkc-text); font-weight: 600; font-size: 0.9375rem; text-decoration: none; }
.pkc-search-filters a:hover { border-color: var(--pkc-red); color: var(--pkc-red); }
.pkc-search-filters a[aria-current="page"] { background: var(--pkc-red); border-color: var(--pkc-red); color: #fff; }
.pkc-search-filters span, .pkc-search-n { display: inline-block; min-width: 1.6rem; padding: 0 0.45rem; border-radius: 999px; background: var(--pkc-mist); color: var(--pkc-ink); font-size: 0.8125rem; font-weight: 600; text-align: center; }
.pkc-search-filters a[aria-current="page"] span { background: rgba(255, 255, 255, 0.2); color: #fff; }
.pkc-search-group { margin: 0 0 2rem; }
.pkc-search-group > .pkc-h { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.85rem; }
.pkc-search-group .pkc-search-list { margin-bottom: 0.75rem; }
.pkc-search-more { margin: 0; font-weight: 600; }
.pkc-search-more a { color: var(--pkc-red); }
.pkc .pkc-search-title { padding: 0; } /* Grouped results use h3, which the parent theme pads 30 px at the top. */

/* ---------- 31. recent changes list (Step 5.10, 3 Nov 2026) ---------- */
.pkc-changes { list-style: none; margin: 0 0 2rem; padding: 0; }
.pkc-changes li { padding: 0.75rem 0; border-bottom: 1px solid var(--pkc-line); }
.pkc-changes li:first-child { border-top: 1px solid var(--pkc-line); }
.pkc-changes time { color: var(--pkc-ink); font-size: var(--pkc-small); }
.pkc-changes a { font-weight: 600; }

/* ---------- 32. Urdu pages (Step 5.5, 4 Nov 2026): right to left, system Nastaliq, roomy lines ---------- */
.pkc-urdu {
  --pkc-sans: "Jameel Noori Nastaleeq", "Noto Nastaliq Urdu", "Urdu Typesetting", "Noto Naskh Arabic", Tahoma, serif;
  --pkc-serif: var(--pkc-sans);
  font-family: var(--pkc-sans);
}
.pkc-urdu * { font-family: var(--pkc-sans); } /* The parent theme sets its own font on li, so inheriting is not enough. */
article.pkc-urdu, article.pkc-urdu .pkc, article.pkc-urdu .pkc-pillar-crumb, article.pkc-urdu .pk-archive-title { text-align: right; } /* The parent theme left-aligns these outright. */
.pkc-urdu p, .pkc-urdu li, .pkc-urdu dd, .pkc-urdu summary { font-size: 1.2rem; line-height: 2.1; } /* Nastaliq reads small at the English size. */
.pkc-urdu .pkc-pillar-hero .pkc-answer { font-size: 1.3rem; }
.pkc-urdu .pkc-pillar-crumb, .pkc-urdu .pkc-disclaimer p { font-size: 1.05rem; }
.pkc-urdu .pk-archive-title { font-size: clamp(1.9rem, 5vw, 2.6rem); line-height: 1.9; }
.pkc-urdu .pkc-h { font-size: 1.6rem; line-height: 1.9; }
.pkc-urdu .pkc-btn { font-size: 1.15rem; line-height: 1.8; }
.pkc-urdu [dir="ltr"] { font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
.pkc-urdu .pkc-answer { border-left: 0; border-right: 4px solid var(--pkc-red); }
.pkc-urdu.pkc-pillar .pkc-pillar-hero .pkc-answer { border-radius: var(--pkc-radius) 0 0 var(--pkc-radius); }
.pkc-urdu .pkc-sources ul, .pkc-urdu .pkc-guide-section ol, .pkc-urdu .pkc-guide-section ul { padding-left: 0; padding-right: 1.3rem; }
.pkc-urdu .pkc-faq summary { padding: 0.9rem 0 0.9rem 2.25rem; }
.pkc-urdu .pkc-faq summary::after { right: auto; left: 0.5rem; }
.pkc-urdu .pkc-guide-section { max-width: none; }
.pkc-urdu .pkc-urdu-strip { font-size: 1.05rem; color: var(--pkc-ink); margin: 0.5rem 0; }
.pkc-lang-link { margin: 0.5rem 0; }
.pkc-lang-link a { font-family: "Jameel Noori Nastaleeq", "Noto Nastaliq Urdu", "Urdu Typesetting", Tahoma, serif; font-size: 1.05rem; font-weight: 600; }

/* ---------- 33. City pages (Step 5.9, 4 Nov 2026): office box ---------- */
.pkc-local { background: var(--pkc-mist); border: 1px solid var(--pkc-line); border-radius: var(--pkc-radius); padding: 1rem 1.25rem; margin: 1.25rem 0; }
.pkc-local .pkc-h { margin: 0 0 0.5rem; padding-top: 0; font-size: 1.25rem; }
.pkc-local p { margin: 0.25rem 0; }
