/* Xyncema Counsel — restrained legal editorial: ruled sections, narrow measure, wide margins.
   Structure is carried by hairline rules and numbering rather than cards and shadows. */

[data-theme="law"] body { background: var(--bg); color: var(--text); font-family: var(--font-body); }
.lw-wrap { width: min(100% - 2.5rem, 74rem); margin-inline: auto; }
.lw-measure { max-width: 36rem; }
.lw-muted { color: var(--muted); }
.lw-h1, .lw-h2, .lw-h3, .lw-h4 { font-family: var(--font-heading); font-weight: 700; line-height: 1.18; margin: 0; }
.lw-h1 { font-size: clamp(2rem, 1.2rem + 3.1vw, 3.4rem); line-height: 1.08; letter-spacing: -0.01em; }
.lw-h2 { font-size: clamp(1.45rem, 1.1rem + 1.3vw, 2.05rem); }
.lw-h3 { font-size: clamp(1.1rem, 1rem + 0.5vw, 1.3rem); }
.lw-h4 { font-size: 1rem; }
.lw-eyebrow { font: 600 0.75rem/1.3 var(--font-body); letter-spacing: 0.14em; text-transform: uppercase; color: var(--primary-ink); margin: 0 0 1rem; }
.lw-lead { font-size: clamp(1.02rem, 0.98rem + 0.25vw, 1.18rem); line-height: 1.65; color: var(--muted); }
.lw-prose p { line-height: 1.75; margin: 0 0 1.05rem; }
.lw-prose p:last-child { margin-bottom: 0; }

/* ---------- Header ---------- */
.lw-notice { background: var(--surface-2); color: var(--on-surface-2); font-size: 0.8125rem; line-height: 1.45; padding: 0.55rem 0; }
.lw-notice p { margin: 0; }
.lw-header { position: sticky; top: 0; z-index: 30; background: var(--bg); border-bottom: 1px solid var(--border); }
.lw-header__row { display: flex; align-items: center; gap: 1.25rem; min-height: 4.5rem; }
.lw-logo { display: grid; gap: 0.15rem; text-decoration: none; color: var(--text); font-family: var(--font-heading); font-weight: 700; font-size: 1.22rem; letter-spacing: 0.01em; margin-right: auto; }
.lw-logo small { font-family: var(--font-body); font-weight: 500; font-size: 0.6875rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.lw-nav { display: flex; gap: 1.6rem; }
.lw-nav a { color: var(--text); text-decoration: none; font-size: 0.9375rem; padding: 0.35rem 0; border-bottom: 1px solid transparent; }
.lw-nav a:hover { border-bottom-color: var(--primary); }
.lw-nav a[aria-current="page"] { border-bottom-color: var(--primary); color: var(--primary-ink); }
.lw-toggle { display: none; background: none; border: 1px solid var(--border); border-radius: var(--radius); width: 2.75rem; height: 2.75rem; padding: 0.6rem; color: var(--text); cursor: pointer; }
.lw-toggle svg { width: 100%; height: 100%; }
.lw-mobile { display: none; flex-direction: column; padding-bottom: 1rem; gap: 0.15rem; }
.lw-mobile a { padding: 0.75rem 0; border-top: 1px solid var(--border); color: var(--text); text-decoration: none; }
.lw-mobile[data-open] { display: flex; }
@media (max-width: 860px) { .lw-nav, .lw-header .lw-btn { display: none; } .lw-toggle { display: block; } }

/* ---------- Buttons ---------- */
.lw-btn { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.9rem; padding: 0 1.3rem; border-radius: var(--radius-btn); border: 1px solid var(--primary); background: var(--primary); color: var(--on-primary); font: 500 0.9375rem/1 var(--font-body); text-decoration: none; cursor: pointer; }
.lw-btn:hover { background: var(--primary-ink); border-color: var(--primary-ink); }
.lw-btn--line { background: transparent; color: var(--text); border-color: var(--border); }
.lw-btn--line:hover { background: transparent; border-color: var(--text); }
.lw-btn svg { width: 1.05rem; height: 1.05rem; }
.lw-link { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--primary-ink); font-weight: 500; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.lw-link svg { width: 1rem; height: 1rem; }

/* ---------- Sections ---------- */
.lw-section { padding-block: clamp(3rem, 2rem + 4vw, 5.5rem); border-top: 1px solid var(--border); }
.lw-section--plain { border-top: 0; }
.lw-head { display: grid; gap: 0.9rem; margin-bottom: 2.5rem; max-width: 40rem; }

/* ---------- Hero ---------- */
.lw-hero { position: relative; background: var(--surface-2); color: var(--on-surface-2); }
.lw-hero__media { position: relative; }
.lw-hero__media img { width: 100%; height: min(58vh, 520px); object-fit: cover; object-position: 50% 45%; display: block; }
.lw-hero__media::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(100deg, rgba(34, 31, 29, 0.92) 0%, rgba(34, 31, 29, 0.78) 42%, rgba(34, 31, 29, 0.35) 78%, rgba(34, 31, 29, 0.28) 100%); }
.lw-hero__inner { position: absolute; inset: 0; display: grid; align-content: center; z-index: 1; }
.lw-hero__kicker { font: 600 0.75rem/1.5 var(--font-body); letter-spacing: 0.13em; text-transform: uppercase; color: var(--primary-on-dark); margin: 0 0 1.1rem; }
.lw-hero h1 { max-width: 20ch; }
.lw-hero__copy { margin: 1.15rem 0 1.9rem; max-width: 46ch; line-height: 1.65; color: var(--on-surface-2); opacity: 0.92; }
.lw-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.lw-hero .lw-btn--line { color: var(--on-surface-2); border-color: rgba(244, 241, 234, 0.45); }
.lw-hero .lw-btn--line:hover { border-color: var(--on-surface-2); }
.lw-points { list-style: none; margin: 0; padding: 1.5rem 0 0; display: grid; gap: 0.9rem; border-top: 1px solid var(--border); }
.lw-points li { display: grid; grid-template-columns: auto 1fr; gap: 0.65rem; align-items: start; font-size: 0.9375rem; line-height: 1.5; }
.lw-points svg { width: 1.1rem; height: 1.1rem; color: var(--primary-ink); margin-top: 0.15rem; }
.lw-hero__strip { padding-block: 1.75rem; }
.lw-hero__strip .lw-points { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 0; padding-top: 0; }
@media (max-width: 820px) {
  .lw-hero__media img { height: min(72vh, 620px); }
  .lw-hero__strip .lw-points { grid-template-columns: 1fr; }
}

/* ---------- Practice area cards ---------- */
.lw-areas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--border); border: 1px solid var(--border); }
.lw-area { background: var(--surface); padding: 1.6rem; display: grid; gap: 0.85rem; align-content: start; }
.lw-area img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius); }
.lw-area__no { font: 600 0.75rem/1 var(--font-body); letter-spacing: 0.12em; color: var(--muted); }
.lw-area h3 a { color: inherit; text-decoration: none; }
.lw-area h3 a:hover { color: var(--primary-ink); }
.lw-area p { margin: 0; line-height: 1.6; color: var(--muted); font-size: 0.9375rem; }
.lw-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.lw-tag { font: 500 0.75rem/1 var(--font-body); letter-spacing: 0.02em; padding: 0.42rem 0.6rem; border: 1px solid var(--border); border-radius: var(--radius); color: var(--muted); }
@media (max-width: 760px) { .lw-areas { grid-template-columns: 1fr; } }

/* ---------- How we work ---------- */
.lw-how { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 22rem); gap: clamp(2rem, 4vw, 4rem); align-items: start; }
.lw-how img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); }
.lw-steps { list-style: none; margin: 0; padding: 0; counter-reset: s; }
.lw-steps li { counter-increment: s; display: grid; grid-template-columns: 2.6rem 1fr; gap: 1.1rem; padding: 1.4rem 0; border-top: 1px solid var(--border); }
.lw-steps li:last-child { border-bottom: 1px solid var(--border); }
.lw-steps li::before { content: counter(s, decimal-leading-zero); font-family: var(--font-heading); font-size: 0.95rem; color: var(--primary-ink); padding-top: 0.15rem; }
.lw-steps h3 { margin: 0 0 0.35rem; }
.lw-steps p { margin: 0; color: var(--muted); line-height: 1.65; font-size: 0.9375rem; }
@media (max-width: 900px) { .lw-how { grid-template-columns: 1fr; } .lw-how__media { order: -1; max-width: 22rem; } }

/* ---------- Boundaries ---------- */
.lw-bound { background: var(--surface); border: 1px solid var(--border); padding: clamp(1.4rem, 3vw, 2.2rem); margin-top: 2.5rem; }
.lw-bound ul { list-style: none; margin: 1.1rem 0 0; padding: 0; display: grid; gap: 0.85rem; }
.lw-bound li { display: grid; grid-template-columns: auto 1fr; gap: 0.7rem; line-height: 1.6; font-size: 0.9375rem; }
.lw-bound li::before { content: "—"; color: var(--primary-ink); }

/* ---------- Fees ---------- */
.lw-fees { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--border); border-block: 1px solid var(--border); }
.lw-fee { background: var(--bg); padding: 1.6rem 1.4rem; display: grid; gap: 0.6rem; align-content: start; }
.lw-fee h3 { font-family: var(--font-heading); font-size: 1.1rem; margin: 0; }
.lw-fee p { margin: 0; color: var(--muted); font-size: 0.9375rem; line-height: 1.65; }
.lw-fee__tag { font: 600 0.75rem/1 var(--font-heading); letter-spacing: 0.06em; color: var(--primary-ink); }
.lw-note { border-left: 2px solid var(--primary); padding: 0.2rem 0 0.2rem 1.1rem; margin-top: 2rem; max-width: 42rem; line-height: 1.7; }
@media (max-width: 780px) { .lw-fees { grid-template-columns: 1fr; } }

/* ---------- Collection ---------- */
.lw-pagehead { padding-block: clamp(2.5rem, 2rem + 3vw, 4rem); border-bottom: 1px solid var(--border); }
.lw-filter { display: grid; gap: 0.9rem; margin: 2rem 0 0; }
.lw-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.lw-chip { min-height: 2.6rem; padding: 0 0.95rem; border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius); font: 500 0.875rem/1 var(--font-body); color: var(--text); cursor: pointer; }
.lw-chip[aria-pressed="true"] { background: var(--surface-2); border-color: var(--surface-2); color: var(--on-surface-2); }
.lw-chip:hover { border-color: var(--text); }
.lw-rows { display: grid; }
.lw-row { display: grid; grid-template-columns: minmax(0, 16rem) minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2.5rem); padding: 2rem 0; border-top: 1px solid var(--border); align-items: start; }
.lw-row:last-child { border-bottom: 1px solid var(--border); }
.lw-row img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); }
.lw-row__body { display: grid; gap: 0.8rem; }
.lw-row h2 { margin: 0; }
.lw-row h2 a { color: inherit; text-decoration: none; }
.lw-row h2 a:hover { color: var(--primary-ink); }
.lw-row ul { margin: 0; padding-left: 1.1rem; color: var(--muted); font-size: 0.9375rem; line-height: 1.7; columns: 2; column-gap: 2rem; }
.lw-empty { padding: 3rem 0; border-top: 1px solid var(--border); }
@media (max-width: 760px) { .lw-row { grid-template-columns: 1fr; } .lw-row ul { columns: 1; } }

/* ---------- Detail ---------- */
.lw-dhead { padding-block: clamp(2.25rem, 2rem + 2.5vw, 3.5rem); }
.lw-crumb { font-size: 0.875rem; color: var(--muted); margin: 0 0 1.1rem; }
.lw-crumb a { color: var(--muted); }
.lw-dhero { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--radius); margin-top: 2rem; }
.lw-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 20rem); gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
.lw-aside { display: grid; gap: 1.5rem; position: sticky; top: 6.5rem; }
.lw-panel { border: 1px solid var(--border); background: var(--surface); padding: 1.3rem; display: grid; gap: 0.75rem; }
.lw-panel h3 { font-family: var(--font-heading); font-size: 1rem; margin: 0; }
.lw-panel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; font-size: 0.9rem; line-height: 1.55; color: var(--muted); }
.lw-panel li { display: grid; grid-template-columns: auto 1fr; gap: 0.55rem; }
.lw-panel li::before { content: "·"; color: var(--primary-ink); font-weight: 700; }
.lw-list { list-style: none; margin: 0; padding: 0; display: grid; }
.lw-list li { padding: 0.85rem 0; border-top: 1px solid var(--border); display: grid; grid-template-columns: auto 1fr; gap: 0.7rem; line-height: 1.6; }
.lw-list li:last-child { border-bottom: 1px solid var(--border); }
.lw-list svg { width: 1.05rem; height: 1.05rem; color: var(--primary-ink); margin-top: 0.25rem; }
.lw-when { display: grid; gap: 0; margin-top: 1rem; }
.lw-when li { font-size: 0.9375rem; }
.lw-thumbs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin-top: 1.25rem; }
.lw-thumb { padding: 0; border: 1px solid var(--border); background: none; cursor: pointer; border-radius: var(--radius); overflow: hidden; }
.lw-thumb img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.lw-thumb:hover { border-color: var(--text); }
@media (max-width: 940px) { .lw-cols { grid-template-columns: 1fr; } .lw-aside { position: static; } }
@media (max-width: 560px) { .lw-thumbs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- FAQ ---------- */
.lw-faq details { border-top: 1px solid var(--border); }
.lw-faq details:last-of-type { border-bottom: 1px solid var(--border); }
.lw-faq summary { cursor: pointer; padding: 1.1rem 0; font-family: var(--font-heading); font-size: 1rem; line-height: 1.45; list-style: none; display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: start; }
.lw-faq summary::-webkit-details-marker { display: none; }
.lw-faq summary::after { content: "+"; color: var(--primary-ink); font-family: var(--font-body); font-size: 1.25rem; line-height: 1; }
.lw-faq details[open] summary::after { content: "–"; }
.lw-faq p { margin: 0 0 1.2rem; color: var(--muted); line-height: 1.7; max-width: 46rem; }

/* ---------- Enquiry wizard ---------- */
.lw-enq { background: var(--surface-2); color: var(--on-surface-2); }
.lw-enq .lw-h2, .lw-enq .lw-h3 { color: var(--on-surface-2); }
.lw-enq__grid { display: grid; grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
.lw-enq__intro p { color: var(--on-surface-2); opacity: 0.85; line-height: 1.7; }
.lw-enq__next { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 0.8rem; font-size: 0.9rem; line-height: 1.55; opacity: 0.85; }
.lw-enq__next li { display: grid; grid-template-columns: auto 1fr; gap: 0.6rem; }
.lw-enq__next li::before { content: "→"; color: var(--primary-on-dark); }
.lw-card { background: var(--bg); color: var(--text); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 2rem); }
.lw-progress { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; padding-bottom: 1.2rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--border); font-size: 0.8125rem; color: var(--muted); }
.lw-progress b { font: 600 0.8125rem/1 var(--font-body); color: var(--text); }
.lw-progress span[data-on] { color: var(--primary-ink); font-weight: 600; }
.lw-step fieldset { border: 0; margin: 0; padding: 0; }
.lw-step legend { font-family: var(--font-heading); font-size: 1.15rem; font-weight: 700; padding: 0; margin-bottom: 0.4rem; }
.lw-step__hint { color: var(--muted); font-size: 0.9375rem; line-height: 1.6; margin: 0 0 1.2rem; max-width: 42rem; }
.lw-opts { display: grid; gap: 0.6rem; }
.lw-opts--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lw-opts label { display: grid; gap: 0.2rem; border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius); padding: 0.9rem 1rem; cursor: pointer; }
.lw-opts label:hover { border-color: var(--text); }
.lw-opts input { position: absolute; opacity: 0; width: 0; height: 0; }
.lw-opts label b { font-weight: 600; font-size: 0.9375rem; }
.lw-opts label span { color: var(--muted); font-size: 0.875rem; line-height: 1.5; }
.lw-opts label:has(input:checked) { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
.lw-opts label:has(input:focus-visible) { outline: 2px solid var(--focus); outline-offset: 2px; }
.lw-guard { border: 1px solid var(--border); border-left: 2px solid var(--primary); background: var(--surface); padding: 0.9rem 1.1rem; margin: 1.2rem 0; font-size: 0.875rem; line-height: 1.6; color: var(--muted); }
.lw-fields { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lw-fields > .lw-full { grid-column: 1 / -1; }
.lw-actions { display: flex; flex-wrap: wrap; gap: 0.7rem; justify-content: space-between; margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--border); }
.lw-review { list-style: none; margin: 0; padding: 0; display: grid; }
.lw-review li { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) auto; gap: 1rem; align-items: baseline; padding: 0.8rem 0; border-top: 1px solid var(--border); }
.lw-review li:last-child { border-bottom: 1px solid var(--border); }
.lw-review dt, .lw-review .lw-k { font: 600 0.75rem/1.4 var(--font-body); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.lw-review .lw-v { font-size: 0.9375rem; line-height: 1.5; }
.lw-review button { background: none; border: 0; color: var(--primary-ink); font: 500 0.875rem/1 var(--font-body); cursor: pointer; text-decoration: underline; padding: 0.3rem; }
.lw-ok { display: grid; grid-template-columns: auto 1fr; gap: 0.6rem; align-items: start; font-family: var(--font-heading); font-size: 1.05rem; line-height: 1.4; margin: 0 0 1.1rem; }
.lw-ok svg { width: 1.25rem; height: 1.25rem; color: var(--primary-ink); margin-top: 0.1rem; }
@media (max-width: 920px) { .lw-enq__grid { grid-template-columns: 1fr; } }
@media (max-width: 620px) {
  .lw-opts--2, .lw-fields { grid-template-columns: 1fr; }
  .lw-review li { grid-template-columns: 1fr; gap: 0.25rem; }
  .lw-review button { justify-self: start; padding-left: 0; }
  .lw-actions { flex-direction: column-reverse; }
  .lw-actions .lw-btn { justify-content: center; }
}

/* ---------- Contact band ---------- */
.lw-band { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 4vw, 3.5rem); align-items: center; }
.lw-band img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius); }
@media (max-width: 800px) { .lw-band { grid-template-columns: 1fr; } }

/* ---------- Footer ---------- */
.lw-footer { background: var(--surface-2); color: var(--on-surface-2); padding-block: clamp(2.5rem, 2rem + 3vw, 4rem) 2rem; }
.lw-footer__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 2rem; }
.lw-footer .lw-logo { color: var(--on-surface-2); }
.lw-footer .lw-logo small { color: var(--primary-on-dark); }
.lw-footer p { color: var(--on-surface-2); opacity: 0.8; line-height: 1.7; font-size: 0.9rem; margin: 0.8rem 0 0; }
.lw-footer h3 { font: 600 0.75rem/1 var(--font-body); letter-spacing: 0.12em; text-transform: uppercase; color: var(--primary-on-dark); margin: 0 0 1rem; }
.lw-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.lw-footer a { color: var(--on-surface-2); text-decoration: none; font-size: 0.9rem; }
.lw-footer a:hover { text-decoration: underline; }
.lw-footer__note { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(244, 241, 234, 0.18); font-size: 0.8125rem; line-height: 1.65; opacity: 0.72; }
.lw-footer .xy-attribution { opacity: 0.72; }
.lw-footer .xy-attribution a { text-decoration: underline; }
@media (max-width: 820px) { .lw-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .lw-footer__grid { grid-template-columns: 1fr; } }
