/* Law-J design primitives — shared by review and future WordPress theme. */
:root {
  --lj-navy: #0B2545;
  --lj-gold: #D4AF37;
  --lj-white: #FFFFFF;
  --lj-background: #F4F6F9;
  --lj-border: #E2E8F0;
  --lj-muted: #64748B;
  --lj-light-blue: #EAF2FF;
  --lj-font: 'Heebo', 'Assistant', Arial, sans-serif;
  --lj-h1: 3.5rem;
  --lj-h2: 2.25rem;
  --lj-h3: 1.625rem;
  --lj-body: 1.125rem;
  --lj-s1: .25rem;
  --lj-s2: .5rem;
  --lj-s3: .75rem;
  --lj-s4: 1rem;
  --lj-s6: 1.5rem;
  --lj-s8: 2rem;
  --lj-s12: 3rem;
  --lj-s16: 4rem;
  --lj-radius: .75rem;
  --lj-control-radius: .5rem;
  --lj-container: 77.5rem;
  --lj-shadow: 0 4px 18px rgb(11 37 69 / 6%);
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: var(--lj-font); font-size: var(--lj-body); line-height: 1.65; color: var(--lj-navy); background: var(--lj-background); }
h1,h2,h3 { line-height: 1.2; margin-block: 0 var(--lj-s4); font-weight: 700; }
h1 { font-size: var(--lj-h1); } h2 { font-size: var(--lj-h2); } h3 { font-size: var(--lj-h3); }
p { margin-block: 0 var(--lj-s4); }
a { color: var(--lj-navy); text-underline-offset: .2em; }
:focus-visible { outline: 3px solid var(--lj-navy); outline-offset: 4px; }
img { max-inline-size: 100%; block-size: auto; }
button,input,select,textarea { font: inherit; }
.lj-container { inline-size: min(calc(100% - 3rem), var(--lj-container)); margin-inline: auto; }
.lj-section { padding-block: var(--lj-s12); }
.lj-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lj-s6); }
.lj-grid--home { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lj-grid--specialties { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: var(--lj-s3); }
.lj-card { background: var(--lj-white); border: 1px solid var(--lj-border); border-radius: var(--lj-radius); padding: var(--lj-s6); box-shadow: var(--lj-shadow); }
.lj-muted { color: var(--lj-muted); }
.lj-small { font-size: .875rem; }
.lj-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--lj-s2); min-block-size: 44px; border: 1px solid var(--lj-gold); border-radius: var(--lj-control-radius); padding: .625rem 1.5rem; background: var(--lj-gold); color: var(--lj-navy); font-size: 1rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.lj-button:hover { box-shadow: 0 2px 8px rgb(11 37 69 / 15%); }
.lj-button--secondary { background: var(--lj-white); }
.lj-button--navy { background: var(--lj-navy); color: var(--lj-white); border-color: var(--lj-navy); }
.lj-button:disabled { opacity: .55; cursor: not-allowed; }
.lj-field { display: grid; gap: var(--lj-s2); margin-block-end: var(--lj-s4); }
.lj-field label { font-weight: 700; font-size: 1rem; }
.lj-input { inline-size: 100%; min-block-size: 48px; padding: .75rem; border: 1px solid var(--lj-border); border-radius: var(--lj-control-radius); background: var(--lj-white); color: var(--lj-navy); }
.lj-input::placeholder { color: var(--lj-muted); }
.lj-note { padding: var(--lj-s4); border: 1px solid var(--lj-border); border-radius: var(--lj-control-radius); background: var(--lj-light-blue); }
.lj-demo { display: inline-block; padding: .125rem .625rem; border: 1px solid var(--lj-gold); border-radius: 999px; color: var(--lj-navy); background: var(--lj-white); font-size: .875rem; font-weight: 700; }
.lj-table-wrap { max-inline-size: 100%; overflow-x: auto; }
.lj-table { inline-size: 100%; border-collapse: collapse; background: var(--lj-white); font-size: 1rem; }
.lj-table caption { text-align: start; font-weight: 700; padding-block-end: var(--lj-s4); }
.lj-table th,.lj-table td { text-align: start; border-block-end: 1px solid var(--lj-border); padding: var(--lj-s3); }
.lj-table thead,.lj-table tbody tr:nth-child(even) { background: var(--lj-background); }
.lj-chat { display: grid; gap: var(--lj-s4); padding: var(--lj-s6); background: var(--lj-light-blue); border-radius: var(--lj-radius); }
.lj-message { max-inline-size: 85%; padding: var(--lj-s4); border: 1px solid var(--lj-border); border-radius: var(--lj-radius); background: var(--lj-white); justify-self: end; }
.lj-message--user { background: var(--lj-navy); color: var(--lj-white); justify-self: start; }
.lj-skip { position: absolute; inset-block-start: -100px; inset-inline-start: var(--lj-s4); z-index: 10; }
.lj-skip:focus { inset-block-start: var(--lj-s4); }
@media (max-width: 1023px) { .lj-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lj-grid--specialties { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 639px) {
  :root { --lj-h1: 2.125rem; --lj-h2: 1.75rem; --lj-h3: 1.5rem; }
  .lj-container { inline-size: calc(100% - 2rem); }
  .lj-grid { grid-template-columns: minmax(0, 1fr); }
  .lj-grid--specialties { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lj-section { padding-block: var(--lj-s8); }
  .lj-card { padding: var(--lj-s4); }
  .lj-message { max-inline-size: 95%; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }
