/* DogHub v2: standalone navigation and scoped editorial interface. */
.doghub {
  --dh-ink: #172b2c;
  --dh-muted: #536260;
  --dh-paper: #f8f7f3;
  --dh-soft: #eeeee6;
  --dh-line: #d3dacb;
  --dh-green: #28544a;
  --dh-lime: #d5ed9c;
  color: var(--dh-ink);
  background: var(--dh-paper);
  font: 16px/1.7 Arial, Helvetica, sans-serif;
  min-height: 100vh;
  margin: 0;
}
.doghub *, .doghub *::before, .doghub *::after { box-sizing: border-box; }
.doghub [hidden] { display: none !important; }
.doghub a { color: inherit; text-underline-offset: 4px; }
.doghub h1, .doghub h2, .doghub h3 { font-family: Arial, Helvetica, sans-serif; font-weight: 500; letter-spacing: -.045em; line-height: 1.12; color: var(--dh-ink); margin: 0 0 22px; }
.doghub h1 { font-size: clamp(43px, 5.3vw, 74px); max-width: 1050px; }
.doghub h2 { font-size: clamp(28px, 3.3vw, 43px); }
.doghub h3 { font-size: 25px; }
.doghub em { font-family: Georgia, serif; font-weight: 400; color: var(--dh-green); }
.doghub p { margin: 0 0 22px; }
.doghub button, .doghub input, .doghub textarea { font: inherit; }
.doghub a:focus-visible, .doghub button:focus-visible, .doghub input:focus-visible, .doghub textarea:focus-visible, .doghub summary:focus-visible { outline: 3px solid #638441; outline-offset: 4px; }
.dh-wrap { max-width: 1248px; margin-inline: auto; padding-inline: 40px; }
.dh-main { margin: 0; padding: 0; max-width: none; }
.dh-section { padding-block: 80px; scroll-margin-top: 115px; }
.dh-soft { background: var(--dh-soft); }
.dh-kicker { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.dh-lead { max-width: 690px; font-size: 18px; color: var(--dh-muted); line-height: 1.8; }
.dh-small { font-size: 12px; color: var(--dh-muted); line-height: 1.7; }
.dh-header { position: sticky; top: 0; z-index: 50; background: #f8f7f3f5; border-bottom: 1px solid var(--dh-line); backdrop-filter: blur(12px); }
.admin-bar .dh-header { top: 32px; }
.dh-header .dh-wrap { min-height: 94px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.dh-brand { display: flex; align-items: center; gap: 15px; text-decoration: none; }
.dh-brand > span { font-size: 40px; font-weight: 600; letter-spacing: -.13em; }
.dh-brand > strong { font-size: 16px; font-weight: 600; line-height: 1.4; letter-spacing: -.02em; }
.dh-brand small { display: block; font-size: 8px; font-weight: 400; letter-spacing: .12em; }
.dh-header nav { display: flex; flex-wrap: wrap; gap: 25px; }
.dh-header nav a { font-size: 12px; text-decoration: none; padding-block: 12px; }
.dh-header nav a:hover { text-decoration: underline; }
.dh-skip { position: fixed; left: 20px; top: -200px; z-index: 100000; background: var(--dh-ink); color: white !important; padding: 14px; }
.dh-skip:focus { top: 20px; }
.dh-button, .dh-secondary { display: inline-flex; align-items: center; gap: 25px; justify-content: center; min-height: 50px; padding: 13px 20px; border: 1px solid var(--dh-ink); border-radius: 5px; background: var(--dh-ink); color: #fff !important; font-size: 13px !important; font-weight: 600; text-decoration: none; cursor: pointer; line-height: 1.6; }
.dh-secondary { background: transparent; color: var(--dh-ink) !important; }
.dh-button:hover { background: var(--dh-green); }
.dh-secondary:hover { background: #e4ebdc; }
.doghub button:disabled { opacity: .65; cursor: wait; }
.dh-link { display: inline-flex; gap: 25px; font-size: 13px; font-weight: 600; text-decoration: none; padding-block: 10px; border-bottom: 1px solid currentColor; }
.dh-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-block: 25px; }
.dh-split { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; align-items: start; }
.dh-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 35px; }
.dh-card { border: 1px solid var(--dh-line); padding: 30px; border-radius: 9px; background: #fff; min-width: 0; }
.dh-card h2 { font-size: 29px; }
.dh-card > p { font-size: 14px; color: var(--dh-muted); }
.dh-grid > .dh-card { display: flex; flex-direction: column; }
.dh-card .dh-link { margin-top: auto; }
.dh-hero { padding-block: 80px; }
.dh-hero h1 { font-size: clamp(45px, 5.6vw, 79px); }
.dh-art { height: 460px; border-radius: 130px 130px 9px 9px; background: #b8c7a8; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; text-align: center; overflow: hidden; }
.dh-art > span { font-size: 22px; line-height: 1.05; font-weight: 600; letter-spacing: -.05em; }
.dh-art svg { height: 265px; max-width: 100%; margin-block: 20px; transform: rotate(-5deg); }
.dh-art small { font-size: 8px; letter-spacing: .17em; }
.dh-community-fallback { background: #e2e9d9; }
.dh-community-fallback iframe { border: 0; max-width: 100%; display: block; margin-top: 25px; }
.dh-footer { background: #172b2c; color: #e5edde; padding-block: 32px; }
.dh-footer .dh-wrap { display: flex; gap: 25px; flex-wrap: wrap; align-items: center; justify-content: space-between; font-size: 11px; }
.dh-footer span { color: #b7c8b7; font-size: 10px; }
.dh-note { background: #e7eddc; border-left: 3px solid #7c965f; padding: 20px; border-radius: 0 5px 5px 0; margin-block: 25px; font-size: 13px; }
.dh-note p { font-size: 13px; margin-top: 12px; }
.dh-note p:last-child { margin-bottom: 0; }
.dh-prose { color: #43534d; overflow-wrap: anywhere; }
.dh-prose h2 { font-size: 32px; margin-top: 35px; }
.dh-prose h3 { margin-top: 28px; }
.dh-prose img { max-width: 100%; height: auto; }
.dh-prose ul, .dh-prose ol { padding-left: 23px; }
.dh-prose a { text-decoration: underline; }
.dh-faqs { max-width: 1050px; }
.dh-faq-tools { margin-block: 35px; }
.dh-faq-tools label { display: block; font-size: 13px; font-weight: 600; }
.dh-faq-tools input { display: block; width: 100%; margin-block: 8px 20px; min-height: 50px; padding: 12px 15px; border: 1px solid #b8c3b0; border-radius: 5px; background: white; color: var(--dh-ink); }
.dh-filters { display: flex; flex-wrap: wrap; gap: 10px; }
.dh-filters button { min-height: 44px; padding: 10px 17px; border: 1px solid #b6c3ae; border-radius: 25px; background: transparent; color: var(--dh-ink); font-size: 12px; cursor: pointer; }
.dh-filters button[aria-pressed=true] { background: var(--dh-ink); color: white; }
.dh-faq-tools [role=status] { font-size: 11px; margin-top: 18px; }
.dh-accordion { border-top: 1px solid var(--dh-line); }
.dh-accordion details { padding-block: 25px; border-bottom: 1px solid var(--dh-line); scroll-margin-top: 130px; }
.dh-accordion summary { cursor: pointer; font-size: 20px; font-weight: 500; padding-right: 10px; }
.dh-accordion .dh-prose { font-size: 15px; padding-top: 22px; }
.dh-campaign-layout { margin-top: 45px; }
.dh-lookup label { display: block; font-size: 13px; font-weight: 600; margin: 18px 0 8px; }
.dh-lookup input, .dh-lookup textarea { display: block; width: 100%; padding: 12px 13px; border: 1px solid #b9c4b2; border-radius: 5px; min-height: 47px; background: #fcfcf8; color: var(--dh-ink); font-size: 14px; }
.dh-lookup input[readonly] { color: var(--dh-muted); }
.dh-lookup textarea { resize: vertical; line-height: 1.65; }
.dh-input-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.dh-input-row .dh-button { white-space: nowrap; }
.dh-lookup .dh-small { margin: 12px 0 20px; font-size: 11px; }
.dh-lookup h2 { font-size: 27px; }
.dh-status { padding: 15px; border: 1px solid #b4c4a7; background: #edf3e5; font-size: 13px; margin-block: 20px !important; border-radius: 5px; }
.dh-status.dh-error { color: #823b25; background: #fff0e9; border-color: #d8ab96; }
.dh-mp { display: grid; grid-template-columns: 80px 1fr; gap: 20px; padding-top: 25px; border-top: 1px solid var(--dh-line); margin-top: 25px; }
.dh-mp img { width: 80px; height: 80px; object-fit: cover; border-radius: 8px; }
.dh-mp h3 { font-size: 24px; margin-bottom: 10px; }
.dh-mp p { font-size: 12px; margin-bottom: 5px; }
.dh-mp a { font-size: 11px; }
.dh-lookup .dh-actions { gap: 12px; }
.dh-lookup .dh-button, .dh-lookup .dh-secondary { font-size: 12px !important; }
@media (max-width: 1000px) {
  .dh-split { gap: 35px; }
  .dh-header .dh-wrap { gap: 20px; }
  .dh-header nav { gap: 17px; }
  .dh-header nav a { font-size: 11px; }
  .dh-input-row { grid-template-columns: 1fr; }
  .dh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .dh-header .dh-wrap { flex-wrap: wrap; padding-block: 15px; gap: 15px; }
  .dh-header nav { width: 100%; gap: 12px 20px; }
  .dh-header nav a { padding-block: 6px; }
  .dh-brand > span { font-size: 32px; }
  .dh-brand > strong { font-size: 14px; }
  .dh-section { padding-block: 60px; }
  .dh-split { grid-template-columns: 1fr; }
  .dh-art { height: 380px; }
  .dh-art svg { height: 220px; }
  .dh-campaign-layout { gap: 35px; }
  .dh-lookup { max-width: 650px; }
  .dh-input-row { grid-template-columns: 1fr auto; }
}
@media (max-width: 560px) {
  .dh-wrap { padding-inline: 22px; }
  .dh-header nav { justify-content: space-between; gap: 5px; }
  .dh-header nav a { font-size: 10px; }
  .dh-header .dh-wrap { min-height: 80px; }
  .dh-hero { padding-block: 45px; }
  .dh-hero h1 { font-size: 47px; }
  .dh-lead { font-size: 16px; }
  .dh-grid { grid-template-columns: 1fr; }
  .dh-section { padding-block: 48px; }
  .dh-card { padding: 25px; }
  .dh-art { height: 340px; }
  .dh-lookup { padding: 22px; }
  .dh-lookup .dh-actions { flex-direction: column; align-items: stretch; }
  .dh-input-row { grid-template-columns: 1fr; }
  .dh-mp { grid-template-columns: 65px 1fr; gap: 15px; }
  .dh-mp img { width: 65px; height: 65px; }
  .dh-accordion summary { font-size: 18px; }
}
@media (max-width: 782px) { .admin-bar .dh-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .dh-header { top: 0; } }
@media (prefers-reduced-motion: reduce) { .doghub * { scroll-behavior: auto; transition: none; } }
@media (forced-colors: active) { .dh-button, .dh-card, .dh-filters button { border: 1px solid ButtonText; } .dh-filters button[aria-pressed=true] { outline: 2px solid Highlight; } }
.dh-group-size { font-size: 15px; }.dh-group-size strong { font-size: 45px; font-weight: 500; letter-spacing: -.06em; margin-right: 9px; }
.dh-secondary-community { display: flex; justify-content: space-between; align-items: center; gap: 35px; background: #e4e9dc; }.dh-secondary-community .dh-button { flex-shrink: 0; }@media (max-width: 760px) { .dh-secondary-community { flex-direction: column; align-items: flex-start; } }


/* Parliamentary records reuse DogHub's typography, colours and cards. */
.doghub .dh-vote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0}
.doghub .dh-vote-grid summary{cursor:pointer;font-weight:700}
.doghub .dh-vote-names{max-height:28rem;overflow:auto;padding-left:1.3rem}
.doghub .dh-vote-names li{margin:.45rem 0}
.doghub [data-voting-rows] .dh-card{margin-top:1rem}
.doghub [data-voting-form] input,.doghub [data-history-search]{padding:.8rem;border:1px solid currentColor;border-radius:4px;max-width:100%;font:inherit;box-sizing:border-box}
.doghub [data-history-search]{display:block;margin-top:.5rem;width:28rem}
@media(max-width:680px){.doghub .dh-vote-grid{grid-template-columns:1fr}}

.doghub .dh-table-scroll{overflow-x:auto;margin:1.5rem 0}.doghub .dh-party-table{border-collapse:collapse;width:100%;font-size:.95rem}.doghub .dh-party-table caption{text-align:left;font-weight:700;margin-bottom:.65rem}.doghub .dh-party-table th,.doghub .dh-party-table td{text-align:left;padding:.65rem;border-bottom:1px solid #a7b5ac}.doghub .dh-party-table tfoot{font-weight:700}

/* Case directory: readable cards and six results per page. */
.doghub .dh-law-reader { padding:28px 0 64px; background:var(--dh-paper); }
.doghub .dh-law-notice { padding:18px 22px; border:1px solid var(--dh-line); border-radius:10px; background:#fff; font-size:13px; line-height:1.6; }
.doghub .dh-law-notice h2 { font:700 15px/1.4 Arial,sans-serif; margin:0 0 8px; }
.doghub .dh-law-notice ol { padding-left:18px; margin:0; }
.doghub .dh-law-notice li + li { margin-top:6px; }
.doghub .dh-law-intro { padding:48px 0 32px; max-width:850px; }
.doghub .dh-law-intro h1 { font-size:clamp(34px,5vw,60px); line-height:1.08; margin:12px 0 20px; }
.doghub .dh-law-intro > p:not(.dh-kicker) { font-size:19px; max-width:600px; }
.doghub .dh-law-edition { color:var(--dh-muted); font-size:13px; }
.doghub .dh-law-search { display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:16px; padding:22px; border-radius:12px; background:var(--dh-green); color:#fff; }
.doghub .dh-law-search label { display:block; font-size:14px; font-weight:bold; margin-bottom:8px; }
.doghub .dh-law-search > div { min-width:0; }
.doghub .dh-law-search input,.doghub .dh-law-search select { width:100%; min-width:0; min-height:48px; padding:12px; font:16px/1.4 Arial,sans-serif; border:1px solid #d3dacb; border-radius:6px; color:var(--dh-ink); background:#fff; }
.doghub .dh-law-search .dh-actions { margin:0; gap:12px; align-items:center; }
.doghub .dh-law-search .dh-button { background:var(--dh-lime); color:var(--dh-ink); min-height:48px; white-space:nowrap; border:0; }
.doghub .dh-law-search .dh-actions > a { color:#fff; padding:12px 0; }
.doghub .dh-law-topics { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 36px; }
.doghub .dh-law-topics a { padding:11px 15px; border:1px solid var(--dh-line); border-radius:24px; text-decoration:none; color:var(--dh-ink); font-size:14px; line-height:1.5; }
.doghub .dh-law-topics a[aria-current] { background:var(--dh-ink); color:#fff; border-color:var(--dh-ink); }
.doghub .dh-law-results { scroll-margin-top:140px; }
.doghub .dh-law-results-head { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.doghub .dh-law-results-head h2 { font-size:28px; margin:0; }
.doghub .dh-law-results-head p { font-size:14px; color:var(--dh-muted); margin:0; }
.doghub .dh-law-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:start; }
.doghub .dh-law-card { min-width:0; padding:26px; border:1px solid var(--dh-line); border-radius:14px; background:#fff; box-shadow:0 3px 12px #172b2c05; scroll-margin-top:140px; }
.doghub .dh-law-card-top { display:flex; justify-content:space-between; align-items:baseline; gap:12px; color:var(--dh-muted); font-size:12px; }
.doghub .dh-law-topic { font-weight:bold; }
.doghub .dh-law-card h3 { font-size:23px; line-height:1.3; margin:16px 0 8px; overflow-wrap:anywhere; }
.doghub .dh-law-citation { color:var(--dh-muted); font-size:13px; margin:0 0 22px; overflow-wrap:anywhere; }
.doghub .dh-law-result { border-left:3px solid #6b7774; background:#f3f5f3; padding:14px 16px; border-radius:0 6px 6px 0; margin-bottom:10px; }
.doghub .dh-law-result--won { border-color:#287249; background:#edf6ee; }
.doghub .dh-law-result--lost { border-color:#9a5044; background:#fbf2ef; }
.doghub .dh-law-result--mixed { border-color:#94711c; background:#faf5e8; }
.doghub .dh-law-result p { margin:8px 0 0; font-size:15px; line-height:1.65; }
.doghub .dh-law-result .dh-law-verdict { margin:0; font-weight:bold; font-size:14px; }
.doghub .dh-law-story > summary { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:16px 0; min-height:48px; font-weight:bold; color:var(--dh-green); cursor:pointer; list-style:none; }
.doghub .dh-law-story > summary::-webkit-details-marker { display:none; }
.doghub .dh-law-story > summary span { font-size:24px; line-height:1; }
.doghub .dh-law-story[open] > summary span { transform:rotate(45deg); }
.doghub .dh-law-story-body h4 { font:700 16px/1.4 Arial,sans-serif; margin:20px 0 8px; }
.doghub .dh-law-story-body p,.doghub .dh-law-story-body li { font-size:15px; line-height:1.75; }
.doghub .dh-law-story-body p { margin:0 0 14px; }
.doghub .dh-law-caution { border-top:1px solid var(--dh-line); padding-top:16px; color:var(--dh-muted); }
.doghub .dh-law-legal,.doghub .dh-law-source-note { border-top:1px solid var(--dh-line); }
.doghub .dh-law-legal summary,.doghub .dh-law-source-note summary { padding:14px 0; min-height:48px; cursor:pointer; font-size:14px; font-weight:bold; }
.doghub .dh-law-legal ul { padding-left:20px; }
.doghub .dh-law-legal a { overflow-wrap:anywhere; }
.doghub .dh-law-card-footer { border-top:1px solid var(--dh-line); padding-top:12px; }
.doghub .dh-law-card-footer a { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:14px; font-weight:bold; }
.doghub .dh-law-pagination { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:16px; margin:32px 0; font-size:14px; }
.doghub .dh-law-pagination a { padding:12px 18px; background:#fff; border:1px solid var(--dh-line); border-radius:7px; text-decoration:none; min-height:48px; }
.doghub .dh-law-coverage { margin-top:40px; border-top:1px solid var(--dh-line); padding-top:18px; color:var(--dh-muted); font-size:14px; }
.doghub .dh-law-coverage summary { padding:12px 0; cursor:pointer; font-weight:bold; }
.doghub .dh-law-coverage h3 { font-size:18px; }
.doghub .dh-law-reader :is(a,summary,input,select,button):focus-visible { outline:3px solid #7f9f43; outline-offset:4px; }
@media(max-width:760px) {
 .doghub .dh-law-reader .dh-wrap { padding-left:18px; padding-right:18px; }
 .doghub .dh-law-search { grid-template-columns:1fr; padding:18px; gap:14px; }
 .doghub .dh-law-search .dh-button { flex:1; }
 .doghub .dh-law-search .dh-actions { display:flex; }
 .doghub .dh-law-cards { grid-template-columns:1fr; gap:16px; }
 .doghub .dh-law-card { padding:20px; }
 .doghub .dh-law-card h3 { font-size:21px; }
 .doghub .dh-law-topics { display:none; }
 .doghub .dh-law-results { margin-top:28px; }
 .doghub .dh-law-intro { padding:30px 0 24px; }
 .doghub .dh-law-intro > p:not(.dh-kicker) { font-size:17px; }
 .doghub .dh-law-notice { padding:14px; font-size:12px; }
 .doghub .dh-law-results-head h2 { font-size:24px; }
}
@media print {
 .doghub .dh-law-search,.doghub .dh-law-topics,.doghub .dh-law-pagination { display:none; }
 .doghub .dh-law-cards { display:block; }
 .doghub .dh-law-card { break-inside:avoid; margin-bottom:20px; box-shadow:none; }
}
