/* Practice Hub — tokens match design/project/*.dc.html (BUILD-SPEC §13).
   Every firm-specific value comes from the config; nothing here names a firm.
   --accent and --serif below are fallbacks; app.js sets them from
   config/firms/<id>.json (theme.accent, theme.serif). */

:root {
  --paper: #faf9f7;
  --panel: #ffffff;
  --ink: #14120f;
  --ink-soft: #6b625a;
  --rule: #e2dcd4;
  --rule-soft: #efeae4;
  --chip-line: #cfc7bd;
  --mast-bg: #14120f;
  --mast-ink: #faf9f7;
  --mast-soft: #b8ada2;
  --accent: #6b4f3a;
  --serif: Georgia,"Times New Roman",serif;
  --sans: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono: ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --pa-banking-finance: #1F5FA8;
  --pa-litigation: #8B1E3F;
  --pa-competition-consumer: #C8511B;
  --pa-construction-infrastructure: #7A5C00;
  --pa-corporate-commercial: #2E6B4F;
  --pa-employment: #5B3F8C;
  --pa-environment-planning: #3D7A33;
  --pa-ecm: #0F6E8C;
  --pa-insolvency-restructuring: #6B4F3A;
  --pa-ip: #B0328A;
  --pa-ma: #1B4B7A;
  --pa-privacy-data: #4A6FA5;
  --pa-property: #A0522D;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #14120f;
    --panel: #1c1916;
    --ink: #f0ece6;
    --ink-soft: #a49a8f;
    --rule: #2e2924;
    --rule-soft: #23201c;
    --chip-line: #4a433c;
    --mast-bg: #0d0c0a;
    --mast-ink: #f0ece6;
    --mast-soft: #a49a8f;
    --pa-banking-finance: #8FB8EA;
    --pa-litigation: #E38AA5;
    --pa-competition-consumer: #F0A177;
    --pa-construction-infrastructure: #E0C25A;
    --pa-corporate-commercial: #8FD0B0;
    --pa-employment: #BFA6E6;
    --pa-environment-planning: #9FD48F;
    --pa-ecm: #7CCBE3;
    --pa-insolvency-restructuring: #C9A888;
    --pa-ip: #EE9AD3;
    --pa-ma: #8DB4DE;
    --pa-privacy-data: #A9BFE3;
    --pa-property: #E4A47F;
  }
}
:root[data-theme="dark"] {
  --paper: #14120f;
  --panel: #1c1916;
  --ink: #f0ece6;
  --ink-soft: #a49a8f;
  --rule: #2e2924;
  --rule-soft: #23201c;
  --chip-line: #4a433c;
  --mast-bg: #0d0c0a;
  --mast-ink: #f0ece6;
  --mast-soft: #a49a8f;
  --pa-banking-finance: #8FB8EA;
  --pa-litigation: #E38AA5;
  --pa-competition-consumer: #F0A177;
  --pa-construction-infrastructure: #E0C25A;
  --pa-corporate-commercial: #8FD0B0;
  --pa-employment: #BFA6E6;
  --pa-environment-planning: #9FD48F;
  --pa-ecm: #7CCBE3;
  --pa-insolvency-restructuring: #C9A888;
  --pa-ip: #EE9AD3;
  --pa-ma: #8DB4DE;
  --pa-privacy-data: #A9BFE3;
  --pa-property: #E4A47F;
}

/* ---------------------------------------------------------------------------
   Components — match design/project/*.dc.html
--------------------------------------------------------------------------- */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { color: var(--ink); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
button, input, select { font: inherit; color: inherit; }
.wrap { max-width: 1120px; margin: 0 auto; padding: 0 16px; box-sizing: content-box; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
svg { flex-shrink: 0; }

/* Masthead and navigation */
.mast { background: var(--mast-bg); color: var(--mast-ink); }
.mast-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding-top: 26px; padding-bottom: 22px; }
.eyebrow { font: 500 11px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--mast-soft); margin: 0 0 10px; }
.firm { font-family: var(--serif); font-weight: 400; font-size: 36px; line-height: 1.1; margin: 0; letter-spacing: -.01em; color: var(--mast-ink); }
.firm a { color: inherit; }
.mast-lede { margin: 8px 0 0; color: var(--mast-soft); font-size: 14.5px; max-width: 62ch; }
.mast .out { color: var(--mast-ink); font-size: 13.5px; font-weight: 500; display: inline-flex; gap: 6px; align-items: center; border: 1px solid var(--mast-soft); padding: 0 12px; height: 36px; border-radius: 4px; white-space: nowrap; }
.accent-rule { height: 4px; background: var(--accent); }
.nav { border-bottom: 1px solid var(--rule); background: var(--paper); position: sticky; top: 0; z-index: 20; }
.nav-row { display: flex; align-items: center; gap: 4px 18px; min-height: 52px; flex-wrap: wrap; }
.nav-row > a, .nav-row > .menu > button { font-size: 13.5px; font-weight: 500; color: var(--ink); padding: 15px 0 13px; border: 0; border-bottom: 2px solid transparent; background: none; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
.nav-row > a.is-active, .nav-row > .menu.is-active > button { border-bottom-color: var(--accent); font-weight: 700; }
.nav-row > a:hover { text-decoration: none; border-bottom-color: var(--rule); }
.nav-row > a.is-active:hover { border-bottom-color: var(--accent); }
.menu { position: relative; }
.menu-list { position: absolute; top: 100%; left: -12px; background: var(--panel); border: 1px solid var(--rule); border-radius: 6px; padding: 8px; min-width: 300px; display: none; flex-direction: column; gap: 4px; box-shadow: 0 8px 24px rgba(20,18,15,.12); z-index: 30; }
.menu.open .menu-list { display: flex; }
.menu-list a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px; border-radius: 4px; }
.menu-list a:hover { background: var(--rule-soft); text-decoration: none; }

/* Page structure */
.main { padding-top: 32px; padding-bottom: 56px; }
.sec { margin-bottom: 44px; }
.sec-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 1px solid var(--rule); padding-bottom: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.h1 { font-family: var(--serif); font-weight: 400; font-size: 40px; line-height: 1.1; margin: 0; letter-spacing: -.01em; }
.h2 { font-family: var(--serif); font-weight: 400; font-size: 26px; line-height: 1.2; margin: 0; }
.h3 { font-family: var(--serif); font-weight: 400; font-size: 20px; line-height: 1.25; margin: 0 0 8px; }
.count { font: 12px/1.3 var(--mono); color: var(--ink-soft); }
.muted { color: var(--ink-soft); }
.page-head { padding-top: 28px; padding-bottom: 8px; }
.page-head p { margin: 8px 0 0; max-width: 72ch; }
.empty { border: 1px dashed var(--rule); border-radius: 6px; padding: 22px; text-align: center; color: var(--ink-soft); font-size: 14.5px; }
.note { font-size: 13px; color: var(--ink-soft); }

/* Pills, chips, badges */
.pill { --c: var(--ink-soft); display: inline-flex; align-items: center; border: 0; border-left: 3px solid var(--c); background: color-mix(in srgb, var(--c) 10%, transparent); color: var(--ink); font: 500 12.5px/1.25 var(--sans); padding: 4px 9px 4px 8px; border-radius: 0 3px 3px 0; white-space: nowrap; }
a.pill:hover { text-decoration: underline; }
button.pill { cursor: pointer; }
.pill.is-selected { background: color-mix(in srgb, var(--c) 24%, transparent); box-shadow: inset 0 0 0 1px var(--c); font-weight: 700; }
.pill.is-placeholder { opacity: .75; }
.chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--chip-line); color: var(--ink-soft); background: transparent; font: 12.5px/1.2 var(--sans); padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
button.chip { cursor: pointer; min-height: 30px; }
.chip .n { font: 11.5px/1 var(--mono); }
.chip.is-on { border-color: var(--ink); color: var(--ink); background: var(--panel); font-weight: 600; }
.src { font: 500 12px/1.3 var(--mono); color: var(--ink); }
.key, .status { font: 700 10.5px/1 var(--mono); letter-spacing: .07em; text-transform: uppercase; color: var(--ink); border: 1px solid var(--ink); padding: 3px 5px 2px; border-radius: 2px; white-space: nowrap; }
.status.is-closed { color: var(--ink-soft); border-color: var(--chip-line); }
.badge-grey { font: 600 10.5px/1 var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--ink-soft); border: 1px solid var(--chip-line); padding: 3px 5px 2px; border-radius: 2px; }

/* Record card */
.card { background: var(--panel); border: 1px solid var(--rule); border-radius: 6px; padding: 16px 18px 14px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.card-title { margin: 0; font: 600 16px/1.35 var(--sans); overflow-wrap: anywhere; }
.meta { font: 12px/1.4 var(--mono); color: var(--ink-soft); display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.sum { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ink); }
.sum.lead { color: var(--ink-soft); }
.why { margin: 0; font-size: 14px; line-height: 1.5; padding-left: 10px; border-left: 2px solid var(--rule); }
.why b { font-weight: 600; }
.case-line { margin: 0; font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
.case-line b { font-weight: 700; }
.case-line a, .disc a { text-decoration: underline; text-underline-offset: 3px; }
.disc { margin: 0; font-size: 13px; color: var(--ink-soft); }
.ack { font: 11.5px/1.3 var(--mono); color: var(--ink-soft); }
.card-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--rule-soft); flex-wrap: wrap; }
.tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-width: 0; }
.btn { display: inline-flex; align-items: center; gap: 6px; font: 500 12.5px/1 var(--sans); color: var(--ink); background: transparent; border: 1px solid var(--chip-line); border-radius: 4px; padding: 0 11px; min-height: 32px; white-space: nowrap; cursor: pointer; }
.btn:hover { border-color: var(--ink); text-decoration: none; }
.btn.primary { border-color: var(--ink); font-weight: 600; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }

.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.tabbar { display: flex; gap: 20px; border-bottom: 1px solid var(--rule); margin-bottom: 16px; flex-wrap: wrap; }
.tabbar button { background: none; border: 0; border-bottom: 2px solid transparent; padding: 10px 0 8px; font-weight: 500; cursor: pointer; }
.tabbar button[aria-selected="true"] { border-bottom-color: var(--ink); font-weight: 700; }
.short { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.short li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: start; }
.num { font: 400 26px/1 var(--serif); color: var(--ink-soft); padding-top: 14px; text-align: right; }
.grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; align-items: start; }
.stack { display: flex; flex-direction: column; gap: 12px; }
.more { margin-top: 12px; }

.tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.tile { background: var(--panel); border: 1px solid var(--rule); border-radius: 6px; padding: 14px 16px; display: flex; flex-direction: column; justify-content: space-between; gap: 16px; min-height: 118px; color: var(--ink); }
.tile:hover { border-color: var(--ink-soft); text-decoration: none; }
.tile .pill { white-space: normal; align-self: flex-start; }
.tile-n { display: flex; align-items: baseline; gap: 8px; }
.big { font: 500 26px/1 var(--mono); color: var(--ink); }
.lbl { font-size: 12.5px; color: var(--ink-soft); }

.stock { display: flex; justify-content: space-between; align-items: center; gap: 24px; background: var(--panel); border: 1px solid var(--rule); border-radius: 6px; padding: 22px 24px; flex-wrap: wrap; }
.stock h3 { font-family: var(--serif); font-weight: 400; font-size: 24px; line-height: 1.2; margin: 8px 0 6px; }
.go { display: inline-flex; align-items: center; gap: 8px; font: 600 14px/1 var(--sans); color: var(--ink); border: 1px solid var(--ink); border-radius: 4px; padding: 0 16px; min-height: 42px; white-space: nowrap; background: none; cursor: pointer; }
.go:hover { text-decoration: none; background: var(--rule-soft); }

.foot { border-top: 1px solid var(--rule); padding-top: 18px; padding-bottom: 28px; font: 11.5px/1.7 var(--mono); color: var(--ink-soft); }
.foot p { margin: 0; }

/* Practice-area page */
.pa-head { background: color-mix(in srgb, var(--c) 7%, var(--paper)); border-top: 5px solid var(--c); border-bottom: 1px solid var(--rule); }
.pa-inner { padding-top: 26px; padding-bottom: 22px; }
.crumb { font: 12px/1.3 var(--mono); color: var(--ink-soft); margin: 0 0 12px; }
.scope { margin: 10px 0 0; font-size: 15px; max-width: 72ch; color: var(--ink); }
.jump { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 18px; font-size: 13.5px; font-weight: 500; }
.jump a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--chip-line); }
.filters { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: flex-end; padding-top: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--rule); margin-bottom: 20px; }
.field { display: flex; flex-direction: column; gap: 6px; font: 12px/1 var(--mono); color: var(--ink-soft); }
.select, .input { font: 14px/1 var(--sans); color: var(--ink); background: var(--panel); border: 1px solid var(--chip-line); border-radius: 4px; height: 36px; padding: 0 10px; min-width: 180px; max-width: 100%; }
.input { min-width: 260px; }
.seg { display: inline-flex; border: 1px solid var(--chip-line); border-radius: 4px; overflow: hidden; min-height: 36px; margin: 0; padding: 0; }
.seg button { display: flex; align-items: center; padding: 0 13px; font: 13px/1 var(--sans); color: var(--ink); border: 0; border-left: 1px solid var(--chip-line); background: none; cursor: pointer; }
.seg button:first-child { border-left: 0; }
.seg button[aria-pressed="true"] { background: var(--ink); color: var(--paper); font-weight: 600; }
.check { display: inline-flex; align-items: center; gap: 8px; font: 14px/1 var(--sans); color: var(--ink); min-height: 36px; }
.check input { width: 16px; height: 16px; accent-color: var(--ink); margin: 0; }
.strip { padding: 4px 0 18px; border-bottom: 1px solid var(--rule); margin-bottom: 24px; }
.strip-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.strip-lab { font: 12px/1 var(--mono); color: var(--ink-soft); margin-right: 6px; min-width: 96px; }
.also { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13.5px; color: var(--ink-soft); }
.clear { font-size: 13px; text-decoration: underline; text-underline-offset: 3px; background: none; border: 0; cursor: pointer; padding: 0; }
.placeholder-box { background: var(--panel); border: 1px dashed var(--chip-line); border-radius: 6px; padding: 28px; max-width: 72ch; }

/* Tables */
.table-wrap { overflow-x: auto; border: 1px solid var(--rule); border-radius: 6px; background: var(--panel); }
table.t { border-collapse: collapse; width: 100%; font-size: 13.5px; }
table.t th, table.t td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--rule-soft); vertical-align: top; }
table.t th { font: 600 11.5px/1.3 var(--mono); color: var(--ink-soft); text-transform: uppercase; letter-spacing: .04em; background: var(--paper); white-space: nowrap; }
table.t td.n { font-family: var(--mono); text-align: right; white-space: nowrap; }
table.t tr:last-child td { border-bottom: 0; }

/* Charts */
.charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.chart { background: var(--panel); border: 1px solid var(--rule); border-radius: 6px; padding: 16px 18px 12px; min-width: 0; }
.chart h3 { margin: 0; font: 600 15px/1.3 var(--sans); }
.chart .cap { margin: 4px 0 10px; font-size: 12.5px; color: var(--ink-soft); }
.chart svg { width: 100%; height: auto; display: block; }
.chart svg text { font-family: var(--mono); font-size: 10.5px; fill: var(--ink-soft); }
.chart svg .lab-ink { fill: var(--ink); }
.chart-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; gap: 10px; flex-wrap: wrap; }
.legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--ink-soft); }
.legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 5px; vertical-align: -1px; }
.heat td.cell { text-align: center; font-family: var(--mono); min-width: 54px; }
.heat td.cell.unstated { color: var(--ink-soft); }

/* Drawer */
.drawer-back { position: fixed; inset: 0; background: rgba(20,18,15,.35); z-index: 50; display: flex; justify-content: flex-end; }
.drawer { background: var(--paper); width: min(560px, 100%); height: 100%; overflow-y: auto; padding: 24px; box-shadow: -8px 0 24px rgba(0,0,0,.15); }
.drawer .h2 { margin-bottom: 6px; }
.drawer .alert-body h4 { font: 600 15px/1.3 var(--sans); margin: 18px 0 6px; }
.drawer .alert-body p { margin: 0 0 10px; }
.label-tag { display: inline-block; font: 700 10.5px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--ink); padding: 3px 5px 2px; border-radius: 2px; margin-bottom: 10px; }

/* Calendar */
.cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--rule); border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; }
.cal-grid .dow { background: var(--paper); font: 600 11px/1 var(--mono); color: var(--ink-soft); padding: 8px; text-transform: uppercase; }
.cal-day { background: var(--panel); min-height: 92px; padding: 6px; font-size: 12px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cal-day.out { background: var(--paper); color: var(--ink-soft); }
.cal-day .d { font: 11px/1 var(--mono); color: var(--ink-soft); }
.cal-ev { display: block; font-size: 11.5px; line-height: 1.3; border-left: 3px solid var(--c, var(--ink-soft)); background: color-mix(in srgb, var(--c, var(--ink-soft)) 10%, transparent); padding: 2px 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.timeline { display: flex; flex-direction: column; gap: 6px; }
.tl-row { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 12px; align-items: center; font-size: 13px; }
.tl-row .bar-track { position: relative; height: 14px; background: var(--rule-soft); border-radius: 2px; }
.tl-row .bar { position: absolute; top: 0; height: 14px; background: var(--c, var(--ink-soft)); border-radius: 2px; min-width: 3px; }
.tl-row .today { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--ink); }

/* Chatbot */
.chat { max-width: 780px; display: flex; flex-direction: column; gap: 14px; }
.bubble { border-radius: 8px; padding: 14px 16px; }
.bubble.q { background: var(--rule-soft); align-self: flex-end; max-width: 80%; font-weight: 500; }
.bubble.a { background: var(--panel); border: 1px solid var(--rule); }
.bubble.a h3, .bubble.a h4 { font: 600 15px/1.3 var(--sans); margin: 14px 0 6px; }
.bubble.a h2 { font-family: var(--serif); font-weight: 400; font-size: 22px; margin: 0 0 8px; }
.bubble.a p { margin: 0 0 10px; }
.bubble.a ul { margin: 0 0 10px; padding-left: 20px; }
.bubble.a a { text-decoration: underline; text-underline-offset: 3px; }
.followups { display: flex; flex-wrap: wrap; gap: 8px; }
.free { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.stocktake h2 { font-family: var(--serif); font-weight: 400; font-size: 26px; }
.stocktake h3 { font: 600 16px/1.3 var(--sans); margin: 20px 0 6px; }
.stocktake a { text-decoration: underline; text-underline-offset: 3px; }

/* Modules */
.mod-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.mod { background: var(--panel); border: 1px solid var(--rule); border-radius: 6px; padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; }
.mod h3 { margin: 0; font: 600 15.5px/1.3 var(--sans); }
.mod p { margin: 0; font-size: 13.5px; color: var(--ink-soft); }
.mock { border: 1px solid var(--rule); border-radius: 4px; padding: 12px; background: var(--paper); font-size: 12.5px; }
.mock .sample { font: 700 10px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }

@media (max-width: 900px) {
  .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid2, .cols, .charts, .mod-grid { grid-template-columns: minmax(0, 1fr); }
  .tl-row { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .mast-row { flex-direction: column; align-items: flex-start; }
  .firm { font-size: 28px; }
  .h1 { font-size: 30px; }
  .tiles { grid-template-columns: minmax(0, 1fr); }
  .nav-row { flex-wrap: nowrap; overflow-x: auto; gap: 16px; }
  .short li { grid-template-columns: minmax(0, 1fr); }
  .num { display: none; }
  .select, .input { min-width: 0; width: 100%; }
  .field { width: 100%; }
  .cal-day { min-height: 60px; }
  .menu-list { position: fixed; left: 16px; right: 16px; top: auto; min-width: 0; }
}

/* ---------------------------------------------------------------------------
   Layout v2 — full-screen home of practice areas; features inside each area
--------------------------------------------------------------------------- */
.topbar { background: var(--mast-bg); color: var(--mast-ink); }
.topbar-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 64px; padding-top: 10px; padding-bottom: 10px; }
.brand { display: flex; flex-direction: column; color: var(--mast-ink); }
.brand:hover { text-decoration: none; }
.brand .eyebrow { margin: 0 0 4px; }
.brand .firm { font-size: 26px; }
.topsearch { display: flex; gap: 6px; flex: 0 1 380px; }
.topsearch .input { min-width: 0; flex: 1; background: rgba(255,255,255,.08); color: var(--mast-ink); border-color: var(--mast-soft); }
.topsearch .input::placeholder { color: var(--mast-soft); }
.topsearch .btn { color: var(--mast-ink); border-color: var(--mast-soft); }

body.is-home .foot { display: none; }
.home { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; height: calc(100vh - 68px); padding-top: 16px; padding-bottom: 16px; max-width: 1400px; }
.home-areas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(0, 1fr); gap: 12px; min-height: 0; }
.home-side { display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 12px; min-height: 0; }

.box { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 0; border-radius: 10px; border: 1px solid var(--rule);
  background: color-mix(in srgb, var(--c, var(--ink-soft)) 9%, var(--panel)); border-top: 6px solid var(--c, var(--ink)); transition: transform .12s ease, box-shadow .12s ease; }
.box:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(20,18,15,.10); }
.box-main { flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 8px; padding: 16px 16px 8px; color: var(--ink); min-height: 0; }
a.box-main:hover, a.box:hover { text-decoration: none; }
.box-title { font-family: var(--serif); font-size: clamp(15px, 1.28vw, 22px); line-height: 1.15; overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto; }
.box-sub { font-size: 13px; color: var(--ink-soft); }
.box-sub b { font: 600 20px/1 var(--mono); color: var(--ink); margin-right: 4px; }
.box.is-placeholder { background: var(--panel); }
.box.is-placeholder .box-title { color: var(--ink-soft); }
.box-dd { align-self: stretch; display: flex; justify-content: space-between; align-items: center; gap: 6px; margin: 0 10px 10px; padding: 7px 10px; border: 1px solid var(--chip-line); border-radius: 6px; background: var(--panel); font: 500 13px/1 var(--sans); cursor: pointer; }
.box-dd:hover { border-color: var(--ink); }
.box.open .box-dd svg { transform: rotate(180deg); }
.dd-menu { display: none; position: absolute; left: 10px; right: 10px; top: calc(100% - 12px); z-index: 40; list-style: none; margin: 0; padding: 6px; background: var(--panel); border: 1px solid var(--rule); border-radius: 8px; box-shadow: 0 14px 30px rgba(20,18,15,.16); }
.box.open .dd-menu { display: block; }
.box.open { z-index: 41; }
.dd-menu a { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 5px; font-size: 14px; }
.dd-menu a:hover { background: color-mix(in srgb, var(--c, var(--ink-soft)) 12%, transparent); text-decoration: none; }
.dd-menu a.soon { color: var(--ink-soft); }
.side-box { --c: var(--ink); background: var(--panel); }
.side-box .box-title { font-size: clamp(19px, 1.7vw, 26px); }
.side-box.request { --c: var(--accent); background: color-mix(in srgb, var(--accent) 8%, var(--panel)); }
/* Menus in the bottom row open upwards so they stay on screen */
.home-areas .box:nth-last-child(-n+3) .dd-menu, .home-side .box:last-child .dd-menu, .home-side .box:nth-child(2) .dd-menu { top: auto; bottom: calc(100% - 12px); }

.pa-tabs { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 18px; }
.pa-tabs a { padding: 7px 12px; border-radius: 999px; border: 1px solid var(--chip-line); background: var(--panel); font-size: 13.5px; font-weight: 500; }
.pa-tabs a:hover { text-decoration: none; border-color: var(--ink); }
.pa-tabs a.on { background: var(--c); border-color: var(--c); color: #fff; }
.lede-note { margin: 0 0 16px; max-width: 76ch; color: var(--ink-soft); }

.charts.wide { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.charts.wide .chart { padding: 20px 24px 16px; }
.charts.wide .chart h3 { font-size: 18px; }
.charts.wide .chart svg text { font-size: 12px; }

.prio-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.prio { background: var(--panel); border: 1px solid var(--rule); border-left: 6px solid var(--c); border-radius: 8px; padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.prio h3 { margin: 0; font: 600 16px/1.3 var(--sans); }
.prio-n { margin: 0; font-size: 14px; }
.prio-n b { font: 600 24px/1 var(--mono); margin-right: 4px; }
.prio-ex { margin: 4px 0 0; padding-left: 18px; font-size: 13.5px; }
.prio-ex a { text-decoration: underline; text-underline-offset: 3px; }
.history summary { cursor: pointer; font-weight: 600; margin-bottom: 12px; }
.heat td.stated { font-weight: 700; }

.firm-bars { display: flex; flex-direction: column; gap: 8px; }
.fb-row { display: grid; grid-template-columns: 300px 56px minmax(0, 1fr); gap: 12px; align-items: center; }
.fb-name { font-weight: 600; }
.fb-total { font: 600 20px/1 var(--mono); text-align: right; }
.fb-track { background: var(--rule-soft); border-radius: 6px; height: 26px; overflow: hidden; }
.fb-bar { display: flex; height: 100%; border-radius: 6px; overflow: hidden; }
.fb-bar span { display: block; height: 100%; }
.gap-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.gap { background: var(--panel); border: 1px solid var(--rule); border-top: 5px solid var(--accent); border-radius: 8px; padding: 16px 18px; }
.gap h3 { margin: 0 0 4px; font: 600 16px/1.3 var(--sans); }
.gap ul { margin: 10px 0 0; padding-left: 18px; font-size: 14px; }
.gap a { text-decoration: underline; text-underline-offset: 3px; }
.first-list { display: flex; flex-direction: column; border: 1px solid var(--rule); border-radius: 8px; background: var(--panel); }
.first-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr) minmax(0, 1fr); gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--rule-soft); align-items: center; font-size: 14px; }
.first-row:last-child { border-bottom: 0; }

@media (max-width: 1000px) {
  .home { grid-template-columns: minmax(0, 1fr); height: auto; }
  .home-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(140px, auto); }
  .home-side { grid-template-rows: none; grid-auto-rows: minmax(120px, auto); }
  .prio-grid, .gap-grid { grid-template-columns: minmax(0, 1fr); }
  .fb-row { grid-template-columns: 130px 44px minmax(0, 1fr); }
  .first-row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}
@media (max-width: 600px) {
  .home-areas { grid-template-columns: minmax(0, 1fr); }
  .topbar-row { flex-direction: column; align-items: stretch; }
  .topsearch { flex-basis: auto; }
}
.home { box-sizing: border-box; min-height: 520px; }
.topbar .wrap { max-width: 1400px; }
@media (max-width: 1000px) { .home { min-height: 0; } }
.charts.wide .chart svg { max-height: 340px; }
.tab-dd { position: relative; }
.tab-dd-btn { display: inline-flex; align-items: center; gap: 4px; padding: 7px 12px; border-radius: 999px; border: 1px solid var(--chip-line); background: var(--panel); font: 500 13.5px/1.2 var(--sans); cursor: pointer; }
.tab-dd.on .tab-dd-btn { background: var(--c); border-color: var(--c); color: #fff; }
.tab-dd-menu { display: none; position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; min-width: 230px; flex-direction: column; padding: 6px; background: var(--panel); border: 1px solid var(--rule); border-radius: 8px; box-shadow: 0 12px 28px rgba(20,18,15,.14); }
.tab-dd.open .tab-dd-menu { display: flex; }
.tab-dd-menu a { padding: 8px 10px; border-radius: 5px; font-size: 14px; }
.tab-dd-menu a:hover { background: color-mix(in srgb, var(--c) 12%, transparent); text-decoration: none; }
.tab-dd-menu a.on { font-weight: 700; }
.dd-head { padding: 8px 10px 2px; font: 600 11px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.dd-sub a { padding-left: 20px; }
.assist { max-width: 820px; }
.assist .bubble.a h2 { font-size: 22px; }

/* ---- Client news (layout from the BETA Client News site) -------------------
   Topic colours are the Client News site's; always shown with their label. */
body {
  --cat-courts: #b3261e; --cat-regulators: #6b3fa0; --cat-safety: #c2410c; --cat-law: #8a6a1f;
  --cat-deals: #0d4c73; --cat-results: #1c7a4a; --cat-shares: #3f7d7d; --cat-distress: #8a2f4f;
  --cat-pricing: #9a6a3c; --cat-operations: #4a5a7a; --cat-products: #a0396f; --cat-sustainability: #4d7c3a;
  --cat-people: #5c6672; --cat-general: #7b7168;
}
.cn-filters { align-items: flex-end; }
.ddf { position: relative; }
.ddf-btn { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: 10px; row-gap: 5px; text-align: left; min-width: 200px; max-width: 280px; padding: 7px 10px; background: var(--panel); border: 1px solid var(--chip-line); border-radius: 4px; cursor: pointer; color: var(--ink); }
.ddf-btn[aria-expanded="true"] { border-color: var(--accent); }
.ddf-label { grid-column: 1; font: 11px/1 var(--mono); color: var(--ink-soft); text-transform: uppercase; letter-spacing: .04em; }
.ddf-value { grid-column: 1; display: flex; align-items: center; gap: 6px; font: 600 14px/1.2 var(--sans); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ddf-btn svg { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.ddf-panel { position: absolute; z-index: 30; top: calc(100% + 4px); left: 0; width: 320px; max-width: calc(100vw - 32px); max-height: 420px; overflow: auto; background: var(--panel); border: 1px solid var(--rule); border-radius: 6px; box-shadow: 0 12px 28px rgba(0,0,0,.14); padding: 6px; }
.ddf-find { width: 100%; margin-bottom: 6px; }
.ddf-list { list-style: none; margin: 0; padding: 0; }
.ddf-list button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 7px 8px; background: none; border: 0; border-radius: 4px; text-align: left; font: 13.5px/1.3 var(--sans); color: var(--ink); cursor: pointer; }
.ddf-list button:hover { background: var(--rule-soft); }
.ddf-list button.on { font-weight: 600; background: var(--rule-soft); }
.ddf-text { flex: 1; }
.cn-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; background: var(--cat-general); }
.logo { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; background: #fff; border: 1px solid var(--rule); border-radius: 4px; overflow: hidden; color: var(--ink-soft); font: 600 10px/1 var(--sans); }
.logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.logo--xs { width: 20px; height: 16px; border-radius: 3px; padding: 1px; font-size: 8px; }
.logo--sm { width: 34px; height: 26px; padding: 2px; }
.logo--lg { width: 132px; height: 88px; padding: 8px; border-radius: 8px; font-size: 26px; }
.logo--none { background: var(--rule-soft); }
.client-chip { gap: 6px; }
.cn-pill, .cn-dot { --cc: var(--cat-general); }
.cn-pill { display: inline-block; padding: 3px 8px; border-radius: 999px; background: var(--cc); color: #fff; font: 600 10.5px/1.25 var(--sans); text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.cn-dot { background: var(--cc); }
[data-cat="Courts & Claims"] { --cc: var(--cat-courts); } [data-cat="Regulators & Enforcement"] { --cc: var(--cat-regulators); }
[data-cat="Safety & Recalls"] { --cc: var(--cat-safety); } [data-cat="Law & Policy"] { --cc: var(--cat-law); }
[data-cat="Deals & Acquisitions"] { --cc: var(--cat-deals); } [data-cat="Results & Earnings"] { --cc: var(--cat-results); }
[data-cat="Shares & Market"] { --cc: var(--cat-shares); } [data-cat="Restructuring & Distress"] { --cc: var(--cat-distress); }
[data-cat="Pricing & Consumers"] { --cc: var(--cat-pricing); } [data-cat="Operations & Supply"] { --cc: var(--cat-operations); }
[data-cat="Products & Brands"] { --cc: var(--cat-products); } [data-cat="Sustainability & Packaging"] { --cc: var(--cat-sustainability); }
[data-cat="People & Leadership"] { --cc: var(--cat-people); }
.cn-table td { vertical-align: middle; }
.cn-date { white-space: nowrap; font-family: var(--mono); font-size: 12.5px; color: var(--ink-soft); }
.cn-client a { display: flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 600; font-size: 13px; text-decoration: none; margin: 2px 0; }
.cn-client a:hover span { text-decoration: underline; }
.cn-head a { font-weight: 600; color: var(--ink); }
.cn-head .count { display: block; margin-top: 3px; }
.cn-head .sum { margin: 4px 0 0; font-size: 13px; color: var(--ink-soft); }
.cn-src { font-size: 13px; color: var(--ink-soft); }
.cn-client-head { display: flex; gap: 20px; align-items: center; padding: 18px; margin-bottom: 26px; background: var(--panel); border: 1px solid var(--rule); border-radius: 8px; }
.cn-client-head .h2 { margin: 0 0 4px; }
.cn-ents { margin: 4px 0 0; font-size: 13px; color: var(--ink-soft); }
.cn-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
@media (max-width: 720px) {
  .ddf, .ddf-btn { width: 100%; max-width: none; }
  .cn-client-head { flex-direction: column; align-items: flex-start; }
  .cn-table thead { display: none; }
  .cn-table, .cn-table tbody, .cn-table tr, .cn-table td { display: block; width: 100%; }
  .cn-table tr { padding: 10px 12px; border-bottom: 1px solid var(--rule); }
  .cn-table.t td { border: 0; padding: 3px 0; }
}

/* ---- Firm badges (logos from the BETA Firm Insights site) ------------------ */
.firm-logo { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; background: #fff; border: 1px solid var(--rule); border-radius: 4px; overflow: hidden; vertical-align: middle; }
.firm-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.firm-logo--xs { width: 40px; height: 18px; padding: 1px 3px; margin-right: 6px; }
.firm-logo--sm { width: 64px; height: 26px; padding: 2px 5px; }
.firm-logo--lg { width: 220px; height: 64px; padding: 8px 14px; border-radius: 8px; }
.fb-name { display: flex; align-items: center; gap: 8px; }
.firm-head-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 3px solid var(--accent); }
@media (max-width: 720px) { .fb-name .firm-logo { display: none; } }

/* ---- Regulator releases: counts that filter (BETA ACCC Media Releases site) -- */
.stat-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 18px 0 4px; }
.stat-card { background: var(--panel); border: 1px solid var(--rule); border-radius: 8px; padding: 12px; }
.stat-scroll { max-height: 232px; overflow: auto; }
.stat-total { background: var(--mast-bg); color: var(--mast-ink); border-color: var(--mast-bg); }
.stat-total .count { color: var(--mast-soft); }
.stat-label { margin: 0 0 8px; font: 600 11px/1.2 var(--mono); text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); }
.stat-total .stat-label { color: var(--mast-soft); }
.stat-big { margin: 0 0 6px; font: 600 38px/1 var(--serif); color: var(--accent); }
.stat-row { display: flex; justify-content: space-between; gap: 8px; width: 100%; padding: 5px 7px; margin: 0 0 2px; border: 0; border-radius: 4px; background: none; text-align: left; font: 13px/1.3 var(--sans); color: var(--ink); cursor: pointer; }
.stat-row:hover { background: var(--rule-soft); }
.stat-row[aria-pressed="true"] { background: var(--accent); color: #fff; font-weight: 600; }
.stat-row .n { font-family: var(--mono); }
.zoom-ctl { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-bottom: 8px; }
.th-sort { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-transform: inherit; letter-spacing: inherit; cursor: pointer; }
.type-pill { display: inline-block; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--chip-line); font-size: 12px; white-space: nowrap; }
.type-pill.is-update { border-style: dashed; }
@media (max-width: 860px) { .stat-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .stat-cards { grid-template-columns: 1fr; } }

/* ---- Mergers register (BETA Merger Statistics site) ------------------------ */
.ms-sec { margin-top: 36px; }
.ms-cards { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.stat-row.is-plain { cursor: default; }
.stat-row.is-plain:hover { background: none; }
.ms-table { max-height: 78vh; overflow: auto; }
.ms-table thead th { position: sticky; top: 0; z-index: 1; }
.ms-pill { display: inline-block; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--chip-line); font-size: 12px; white-space: nowrap; }
.ms-pill.is-yes { border-color: var(--pa-corporate-commercial); color: var(--pa-corporate-commercial); }
.ms-pill.is-no { border-color: var(--pa-litigation); color: var(--pa-litigation); }
.ms-pill.is-under { border-color: var(--pa-banking-finance); color: var(--pa-banking-finance); }
.ms-pill.is-ceased { border-color: var(--pa-employment); color: var(--pa-employment); }
.ms-pill.is-susp { border-color: var(--pa-construction-infrastructure); color: var(--pa-construction-infrastructure); }

/* =============================================================================
   Sections with tables — one pattern everywhere, styled as the BETA sites
   (Client News, Firm Insights, ACCC Media Releases, Merger Statistics):
   stat cards that filter, a toolbar, then a card-framed table with a dark
   sticky header and an accent rule. Colours come from tokens; the Addisons
   house skin below sets the house palette.
   ========================================================================== */
.house-section { margin-bottom: 8px; }
.house-head { border-bottom: 3px solid var(--accent); padding-bottom: 10px; margin-bottom: 16px; align-items: baseline; }
.house-head .h2 { font-weight: 700; }
.stat-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 4px 0 16px; }
.stat-card { background: var(--panel); border: 1px solid var(--rule); border-radius: 10px; padding: 14px 16px; box-shadow: 0 1px 2px rgba(40,30,20,.05), 0 6px 20px rgba(40,30,20,.07); min-width: 0; }
.stat-more { display: block; width: 100%; margin: 6px 0 0; padding: 5px 6px; border: 0; border-top: 1px solid var(--rule); border-radius: 0 0 6px 6px; background: none; font: 600 12px/1.3 var(--sans); letter-spacing: .02em; color: var(--accent-ink, var(--accent)); text-align: left; cursor: pointer; }
.stat-more:hover { background: color-mix(in srgb, var(--accent) 10%, transparent); }
.stat-label { margin: 0 0 10px; font: 700 11px/1.2 var(--sans); text-transform: uppercase; letter-spacing: .09em; color: var(--ink-soft); }
.stat-total { background: #333; border-color: #333; color: #fff; }
.stat-total .stat-label { color: #d7b49b; }
.stat-total .count { color: #cfcac6; font-size: 12px; }
.stat-big { margin: 0 0 4px; font: 800 36px/1.05 Georgia, "Times New Roman", serif; color: var(--accent); }
.stat-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; width: 100%; padding: 5px 6px; margin: 0; border: 0; border-top: 1px dotted var(--rule); border-radius: 6px; background: none; text-align: left; font: 13.5px/1.3 var(--sans); color: var(--ink); }
.stat-card .stat-row:first-of-type { border-top: 0; }
.stat-row .k { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; color: var(--ink-soft); overflow-wrap: anywhere; }
.stat-row .v { font-weight: 700; font-size: 14.5px; font-variant-numeric: tabular-nums; color: var(--ink); }
.stat-row.selectable { cursor: pointer; }
.stat-row.selectable::before { content: ""; width: 13px; height: 13px; flex: 0 0 13px; border: 1.5px solid var(--chip-line); border-radius: 4px; background: #fff; }
.stat-row.selectable:hover { background: color-mix(in srgb, var(--accent) 12%, transparent); }
.stat-row.selectable.active { background: var(--accent); }
.stat-row.selectable.active .k, .stat-row.selectable.active .v { color: #fff; }
.stat-row.selectable.active::before { border-color: #fff; box-shadow: inset 0 0 0 2px var(--accent); }
.stat-row .logo, .stat-row .firm-logo { flex: 0 0 auto; }
.toolbar { display: flex; flex-wrap: wrap; gap: 10px 12px; align-items: center; margin: 0 0 12px; }
.toolbar .search { flex: 1 1 240px; min-width: 0; }
.toolbar .search .input { width: 100%; height: 38px; border-radius: 8px; border-color: var(--chip-line); }
.toolbar .search .input:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
.toolbar .seg { border-radius: 8px; min-height: 38px; background: var(--panel); }
.toolbar .seg button[aria-pressed="true"] { background: var(--accent); color: #fff; }
.clear-filters { border: 1px solid color-mix(in srgb, var(--accent) 45%, #fff); background: color-mix(in srgb, var(--accent) 12%, #fff); color: color-mix(in srgb, var(--accent) 70%, #000); font: 600 13px/1 var(--sans); padding: 11px 12px; border-radius: 8px; cursor: pointer; white-space: nowrap; }
.toolbar .count { margin-left: auto; font-size: 13px; }
.btn.export { background: #333; color: #fff; border-color: #333; border-radius: 8px; min-height: 38px; font-weight: 600; }
.btn.export:hover { background: #111; border-color: #111; }
.house-table { border-radius: 10px; box-shadow: 0 1px 2px rgba(40,30,20,.05), 0 6px 20px rgba(40,30,20,.07); max-height: 760px; overflow: auto; overscroll-behavior: contain; }
.house-table table.t { border-collapse: separate; border-spacing: 0; font-size: 15px; }
.house-table table.t thead th { position: sticky; top: 0; z-index: 2; background: #333; color: #fff; font: 600 13.5px/1.3 var(--sans); text-transform: none; letter-spacing: 0; padding: 11px 14px; border-bottom: 2px solid var(--accent); white-space: nowrap; }
.house-table .th-sort { color: #fff; font-weight: 600; }
.house-table table.t td { padding: 14px 14px; border-bottom: 1px solid var(--rule); vertical-align: top; }
.house-table table.t tbody tr:hover { background: color-mix(in srgb, var(--accent) 6%, var(--panel)); }
.house-table tr.is-reg { background: color-mix(in srgb, var(--accent) 5%, var(--panel)); }
.house-table .c-hide, .house-table th.c-hide { display: none; }
.house-table .c-date { white-space: nowrap; width: 1%; }
.house-table .c-pill { white-space: nowrap; width: 1%; }
.house-table .c-num { text-align: right; white-space: nowrap; }
.house-table .c-title { min-width: 320px; }
.house-table .c-client { min-width: 210px; }
.house-table .c-firm { min-width: 170px; }
.house-table .c-cat { min-width: 160px; }
.cell-date { font: 14px/1.3 var(--sans); color: #8a827d; white-space: nowrap; }
.cell-title { display: block; font-weight: 500; font-size: 15.5px; line-height: 1.4; }
.cell-title a { color: var(--link, #43597d); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.cell-title a:hover { text-decoration-thickness: 2px; }
.cell-sum { margin: 5px 0 0; font-size: 13.5px; line-height: 1.45; color: var(--ink-soft); }
.cell-also { display: block; margin-top: 4px; font-size: 12.5px; color: var(--ink-soft); font-style: italic; }
.cell-also a { color: inherit; }
.cell-src { font-size: 14px; color: #574d43; }
.cell-num { font-variant-numeric: tabular-nums; font-weight: 600; }
.cat-chip { display: inline-block; margin: 0 4px 4px 0; padding: 3px 9px; border-radius: 999px; background: #eef4fb; color: #1c4e80; border: 1px solid #d3e3f4; font-size: 12px; font-weight: 600; white-space: nowrap; }
.reg-cell { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: 14px; }
.reg-badge { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 64px; height: 26px; padding: 2px 8px; background: #fff; border: 1px solid var(--rule); border-radius: 4px; font: 800 11.5px/1 var(--sans); letter-spacing: .06em; color: var(--ink); white-space: nowrap; }
.reg-badge[data-reg="ACCC"] { color: #43597d; border-color: color-mix(in srgb, #43597d 40%, var(--rule)); }
.reg-badge[data-reg="ASIC"] { color: #799299; border-color: color-mix(in srgb, #799299 45%, var(--rule)); }
.reg-badge[data-reg="ASX"] { color: #8a5b2a; border-color: color-mix(in srgb, #8a5b2a 35%, var(--rule)); }
.reg-badge[data-reg="FCA"], .reg-badge[data-reg="FCFCOA"], .reg-badge[data-reg="HCA"], .reg-badge[data-reg="NSWSC"], .reg-badge[data-reg="NSW"] { color: #6b5540; border-color: color-mix(in srgb, #6b5540 30%, var(--rule)); }
.reg-name { min-width: 0; }
@media (max-width: 720px) { .reg-badge { min-width: 52px; font-size: 11px; } }
.sector-tag { display: inline-block; padding: 4px 10px; border-radius: 7px; background: #eaeff4; color: #43597d; border: 1px solid #cfd9e3; font-size: 13px; font-weight: 700; }
.major-tag { display: inline-block; margin-top: 5px; padding: 2px 8px; border-radius: 5px; background: #fdf1e3; color: #8a5a1a; border: 1px solid #f0dcc0; font-size: 11.5px; font-weight: 700; }
.client-tag { display: flex; align-items: center; gap: 10px; margin: 2px 0; color: color-mix(in srgb, var(--accent) 70%, #000); font-weight: 700; font-size: 14.5px; text-decoration: none; }
a.client-tag:hover span { text-decoration: underline; }
.firm-cell { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 14px; }
.cn-pill { font-size: 11px; padding: 4px 10px; }
.ms-pill { font-weight: 600; }
.ms-pill.is-yes { background: #e9f6ef; color: #1c7a4a; border-color: #c4e6d3; }
.ms-pill.is-no { background: #fdeaea; color: #b3261e; border-color: #f2bdbb; }
.ms-pill.is-under { background: #eef4fb; color: #1c4e80; border-color: #d3e3f4; }
.ms-pill.is-ceased { background: #f3eef2; color: #6b3d63; border-color: #e2d2df; }
.ms-pill.is-susp { background: #fdf1e3; color: #8a5a1a; border-color: #f0dcc0; }
.big-stories { margin: 0 0 22px; }
.big-stories h3, .table-title { margin: 0 0 10px; font: 700 21px/1.2 Georgia, "Times New Roman", serif; color: #43597d; }
.big-stories .house-table { border: 2px solid #799299; border-top: 6px solid #43597d; max-height: none; }
.graphs { margin-top: 36px; }
.charts.report { grid-template-columns: 1fr; margin-bottom: 16px; }
.chart { border-radius: 10px; box-shadow: 0 1px 2px rgba(40,30,20,.05), 0 6px 20px rgba(40,30,20,.07); }
.rchart-card h3 { font: 700 17px/1.3 var(--sans); color: #1f1f1f; }
.rchart text { font-family: var(--sans); }
.rchart .r-grid { stroke: #e3e3e3; }
.rchart .r-base { stroke: #1f1f1f; stroke-width: 1.5; }
.rchart .r-tick, .rchart .r-xlab { font-size: 13px; fill: #333; }
.rchart .r-xlab { font-weight: 600; }
.rchart .r-axis-title { font-size: 13.5px; fill: #333; }
.rchart .r-legend { font-size: 14px; fill: #333; }
.rchart .r-val { font-size: 11.5px; fill: #333; font-weight: 600; }
.rchart .r-in { font-size: 13px; font-weight: 700; fill: #fff; }
.rchart .r-whisker { stroke: #333; stroke-width: 1.6; }
.r-note { margin: 0; font-size: 13px; font-style: italic; color: #333; max-width: 60ch; }
@media (max-width: 860px) { .toolbar .count { margin-left: 0; } }
@media (max-width: 560px) {
  .stat-cards { grid-template-columns: 1fr 1fr; }
  .stat-total { grid-column: 1 / -1; }
  .toolbar .seg { width: 100%; }
  .toolbar .seg button { flex: 1; justify-content: center; padding: 0 4px; font-size: 12px; }
}

/* ---- Addisons house skin (theme.skin "house"): the palette, type and header of
   the firm's BETA sites. Light only, as those sites are. ------------------- */
body.skin-house {
  --paper: #f6f4f2; --panel: #ffffff; --ink: #2b2b2b; --ink-soft: #6b6b6b; --rule: #e6e3e0; --rule-soft: #efebe7; --chip-line: #d2cecb;
  --mast-bg: #333333; --mast-ink: #ffffff; --mast-soft: #cfcac6; --link: #43597d;
  --sans: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif; --serif: Georgia, "Times New Roman", serif;
  color-scheme: light; background: var(--paper); color: var(--ink); font-size: 15.5px;
}
.skin-house a { color: var(--link); }
.skin-house .topbar { background: linear-gradient(155deg, #ef8645 0%, #e06a2c 100%); color: #2a1a0d; }
.skin-house .brand, .skin-house .brand .firm { color: #2a1a0d; }
.skin-house .brand .eyebrow { color: #6d3410; font: 700 11.5px/1.2 var(--sans); letter-spacing: .14em; }
.skin-house .brand .firm { font: 700 30px/1.1 var(--serif); }
.skin-house .topsearch .input { background: #fff; border-color: #f0c3a2; color: var(--ink); }
.skin-house .topsearch .btn { background: #fff; border-color: #f0c3a2; color: #2a1a0d; }
.skin-house .accent-rule { height: 3px; background: #333; }
.skin-house .h1 { font-weight: 700; color: #2a1a0d; }
.skin-house .h2 { font-weight: 700; color: #333; }
.skin-house .box { box-shadow: 0 1px 2px rgba(40,30,20,.05), 0 6px 20px rgba(40,30,20,.07); }
.skin-house .box-title { font-weight: 700; }
.skin-house .foot { font-family: var(--sans); }
.skin-house { --mono: var(--sans); }
.skin-house .wrap { max-width: 1340px; padding-left: 24px; padding-right: 24px; }
.skin-house .home { max-width: 1400px; }
.stat-cards { grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); }
@media (max-width: 560px) { .skin-house .wrap { padding-left: 16px; padding-right: 16px; } }
.rchart-card { padding: 20px 24px 14px; }
.rchart-card h3 { font-size: 19px; }
@media (max-width: 720px) {
  .house-table { max-height: none; }
  .house-table table.t, .house-table table.t tbody, .house-table table.t tr, .house-table table.t td { display: block; width: 100%; box-sizing: border-box; }
  .house-table table.t thead { display: none; }
  .house-table table.t tr { padding: 12px 14px; border-bottom: 1px solid var(--rule); }
  .house-table table.t td { border: 0; padding: 3px 0; min-width: 0; width: auto; }
  .house-table .c-title, .house-table .c-client, .house-table .c-firm, .house-table .c-cat { min-width: 0; }
  .house-table .c-num { text-align: left; }
}
@media (max-width: 720px) {
  .house-table td.c-date::before, .house-table td.c-num::before, .house-table td.c-pill::before, .house-table td.c-src::before { content: attr(data-l); font-size: 12px; font-weight: 600; color: var(--ink-soft); margin-right: 8px; }
  .big-stories td::before { content: none !important; }
}
.skin-house .box-title { -webkit-hyphens: manual; hyphens: manual; overflow-wrap: normal; }

/* ---- Practice area layout: content left, feature boxes down the right third -- */
.pa-inner { padding-top: 18px; padding-bottom: 16px; }
.pa-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 22px; align-items: start; padding-top: 20px; padding-bottom: 32px; }
.pa-main { min-width: 0; }
.pa-nav { position: sticky; top: 12px; height: calc(100vh - 24px); display: grid; grid-template-rows: repeat(var(--n), minmax(56px, 1fr)); gap: 10px; }
.nav-box { --c: var(--ink); min-height: 0; background: var(--panel); }
a.nav-box { text-decoration: none; }
a.nav-box:hover { text-decoration: none; }
.nav-box .box-main { justify-content: center; gap: 4px; padding: 10px 16px; }
.nav-box .box-title { font-size: clamp(17px, 1.45vw, 22px); }
.nav-box .box-sub { font-size: 12.5px; }
.nav-box .box-dd { margin: 0 12px 10px; padding: 5px 10px; }
.nav-box.on { background: color-mix(in srgb, var(--accent) 12%, var(--panel)); border-color: var(--accent); box-shadow: inset 5px 0 0 var(--accent), 0 6px 20px rgba(40,30,20,.08); }
.nav-box.on .box-title { color: color-mix(in srgb, var(--accent) 70%, #000); }
.nav-box .dd-menu { top: calc(100% - 8px); }
.pa-nav .nav-box:nth-last-child(-n+2) .dd-menu { top: auto; bottom: calc(100% - 8px); }
@media (max-width: 900px) {
  .pa-layout { grid-template-columns: 1fr; }
  .pa-nav { order: -1; position: static; height: auto; max-height: none; min-height: 0; grid-template-rows: none; grid-template-columns: 1fr 1fr; }
  .nav-box .box-sub { display: none; }
}
.key-week .kw-n { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--accent); color: #fff; font-weight: 700; font-size: 13px; }
.key-week .cell-title { font-size: 16px; font-weight: 600; }

/* ---- Build notes: for the builder only, never content ----------------------- */
.dev-note { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0; padding: 3px 8px; background: #fff8c5; color: #3b3000; border: 2px dashed #b08800; border-radius: 4px; font: 600 12px/1.35 ui-monospace, "SF Mono", Menlo, Consolas, monospace; }
.dev-note .dev-label { background: #1f1f1f; color: #ffd400; padding: 1px 6px; border-radius: 3px; text-transform: uppercase; letter-spacing: .06em; font-size: 10.5px; }
.dev-block { display: block; padding: 16px 18px; border-width: 3px; border-image: repeating-linear-gradient(45deg, #1f1f1f 0 10px, #ffd400 10px 20px) 8; background: #fffbe0; max-width: 80ch; font-size: 13.5px; }
.dev-block .dev-label { display: inline-block; margin-bottom: 8px; }
.dev-block p { margin: 6px 0 0; }
.dev-block a { color: #3b3000; text-decoration: underline; }
.rchart .r-grid { stroke: #e6e1dc; stroke-dasharray: 4 4; }
.rchart .r-base { stroke: #43597d; stroke-width: 2; }
.rchart .r-whisker { stroke: #ef8645; stroke-width: 2.2; }
.rchart .r-xlab { fill: #43597d; }
.rchart-card { border-top: 4px solid #43597d; }
.stat-row .k { overflow-wrap: normal; word-break: normal; -webkit-hyphens: none; hyphens: none; }
.pa-main .stat-cards { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.pa-main .stat-card { padding: 12px 13px; }
.pa-main .stat-row { font-size: 13px; }
.nav-box .box-main { overflow: hidden; }
.nav-box .box-sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.box-sub .dev-note { margin: 0; padding: 1px 5px; font-size: 10.5px; gap: 4px; } .box-sub .dev-note .dev-label { font-size: 9px; }
.key-week td::before { content: none !important; }
.sum-points { margin: 6px 0 0; padding-left: 18px; }
.sum-points li { margin: 2px 0; }
.sum-points li::marker { color: var(--accent); }

/* ---- Home boxes: the name opens the area; the arrow strip on the right opens its features */
.box.has-arrow .box-main { padding-right: 58px; }
.box-arrow { position: absolute; top: 0; right: 0; bottom: 0; width: 46px; display: flex; align-items: center; justify-content: center; border: 0; border-left: 1px solid var(--rule); border-radius: 0 10px 10px 0; background: color-mix(in srgb, var(--c, var(--ink)) 6%, var(--panel)); color: var(--ink); cursor: pointer; }
.box-arrow svg { width: 22px; height: 22px; transition: transform .15s ease; }
.box-arrow:hover { background: color-mix(in srgb, var(--c, var(--ink)) 16%, var(--panel)); }
.box.open .box-arrow svg { transform: rotate(180deg); }
.box.has-arrow .dd-menu { top: calc(100% - 6px); right: 0; left: auto; min-width: 240px; }
.home-areas .box:nth-last-child(-n+4) .dd-menu { top: auto; bottom: calc(100% - 6px); }
.home-areas .box:nth-last-child(-n+3) .dd-menu { top: auto; bottom: calc(100% - 6px); }
.home-side .box:first-child .dd-menu { top: calc(100% - 6px); bottom: auto; }
.home-side .box:nth-child(2) .dd-menu { top: calc(100% - 6px); bottom: auto; }
.soon-box { --c: #799299; }
.soon-box .box-main { justify-content: flex-start; gap: 10px; }
.tool-list { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 3px; }
.tool-list li { font: 500 13px/1.35 var(--sans); color: var(--ink-soft); padding: 2px 0 2px 12px; position: relative; }
.tool-list li::before { content: ""; position: absolute; left: 0; top: 9px; width: 5px; height: 5px; border-radius: 50%; background: color-mix(in srgb, var(--accent) 65%, transparent); }
.tool-list li.tool-more { color: var(--ink-faint, var(--ink-soft)); font-style: italic; }
.tool-list li.tool-more::before { background: var(--rule); }
@media (max-height: 820px) and (min-width: 1001px) { .tool-list li { font-size: 12px; padding-top: 1px; padding-bottom: 1px; } }
.soon-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.soon-list li { font: 600 14px/1.3 var(--sans); color: var(--ink); padding: 6px 10px; border-radius: 6px; background: color-mix(in srgb, #799299 10%, var(--panel)); border-left: 3px solid #799299; }
@media (min-width: 1001px) {
  body.is-home #app { height: 100vh; display: flex; flex-direction: column; overflow: hidden; }
  body.is-home #view { flex: 1; min-height: 0; }
  body.is-home .home { height: 100%; min-height: 0; }
}
.soon-box .box-main { overflow: hidden; gap: 8px; }
.soon-list { gap: 4px; }
.soon-list li { padding: 4px 9px; font-size: clamp(12px, 0.95vw, 14px); }
@media (max-height: 760px) and (min-width: 1001px) { .soon-list li { padding: 2px 8px; font-size: 12px; } .side-box .box-title { font-size: 19px; } }
.soon-list li.soon-head { background: none; border: 0; padding: 6px 0 0; font: 700 11px/1.2 var(--sans); text-transform: uppercase; letter-spacing: .09em; color: var(--ink-soft); }
@media (min-width: 1001px) { .home-side { grid-template-rows: minmax(0, 1fr) minmax(0, 0.5fr) minmax(0, 1.9fr); } }

/* The design copy of the site carries a marker so it is never mistaken for the
   real one. It appears only when site.json sets designCopy. */
.design-flag { align-self: center; margin-left: 12px; padding: 3px 9px; border: 1px solid currentColor; border-radius: 999px; font: 700 10.5px/1.4 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); opacity: .75; }
