/* Shared consultation composition; article surfaces are deliberately not loaded. */
.consultation-breadcrumb-slot { padding-top: 40px; }
.consultation-breadcrumb-slot + .hp-hero { padding-top: 0; }
.consultation-landing section, .consultation-landing article { scroll-margin-top: 120px; }
.consultation-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-block: 28px 16px; }
.consultation-chat-launcher { height: auto; min-height: 0; }
.consultation-chat-intro { padding: var(--component-padding); }
.consultation-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.consultation-topics-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.consultation-rich > :first-child { margin-top: 0; }
.consultation-rich > :last-child { margin-bottom: 0; }
.consultation-rich p + p, .consultation-rich p + ul, .consultation-rich ul + p { margin-top: 16px; }
.consultation-rich ul { padding-left: 20px; }
.consultation-rich li + li { margin-top: 8px; }
.consultation-rich blockquote { margin: 20px 0; }
.consultation-topic-links { margin-bottom: 20px; }
.consultation-topic-footer { margin-top: auto; }
.consultation-landing .hp-boundary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.consultation-landing .hp-boundary-card { min-width: 0; overflow-wrap: anywhere; }
.consultation-landing .consultation-single-column { grid-template-columns: minmax(0,1fr); }
.consultation-centered { text-align: center; margin-top: 32px; }
.consultation-widget-status[hidden] { display: none !important; }
.consultation-widget-status:not([hidden]) { position: fixed; z-index: 1000000001; bottom: 24px; left: 24px; width: min(420px,calc(100vw - 48px)); max-height: calc(100dvh - 48px); height: auto; margin: 0; overflow: auto; }
@media(max-width:767px) { .consultation-topics-grid, .consultation-landing .hp-boundary-grid { grid-template-columns: minmax(0,1fr); } .consultation-actions { align-items: flex-start; flex-direction: column; } }

@media(min-width:1024px) {
  .consultation-topics-grid > article:last-child:nth-child(odd) { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); column-gap: var(--component-padding); align-items: start; }
  .consultation-topics-grid > article:last-child:nth-child(odd) > .hp-category-card-header { grid-column: 1 / -1; }
  .consultation-topics-grid > article:last-child:nth-child(odd) > .consultation-rich { grid-column: 1; }
  .consultation-topics-grid > article:last-child:nth-child(odd) > aside { grid-column: 2; grid-row: 2; margin-top: 0; }
  .consultation-topics-grid > article:last-child:nth-child(odd) > .consultation-topic-footer { grid-column: 1 / -1; margin-top: 24px; }
}

/* Shared consultation variants and help-route components. */
.tg-chat-container--extended { height: 560px; min-width: 0; }
.tg-chat-container--extended .tg-chat-history { min-height: 0; }
[data-chat-speaker] { display: block; font-weight: 700; margin-bottom: 4px; }
.consultation-hero-court-note { font-size: var(--reading-caption-size); line-height: var(--reading-caption-leading); }
.consultation-preparation-select { width: 100%; font: inherit; cursor: pointer; }
.hp-prep-left-col { min-width: 0; }
@media (max-width: 767px) {
  .tg-chat-container--extended { height: 540px; }
}

.consultation-demo-metrics-label { display: block; margin-bottom: 8px; }
.demo-chat-message { animation: demo-message-appear var(--motion-standard) var(--motion-ease); }
@keyframes demo-message-appear { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

.consultation-preparation-list { list-style: none; padding: 0; margin: 0; }

/* Help routes: layout and hierarchy, using the site's existing visual tokens. */
.consultation-state-help { padding: var(--space-lg); background: var(--surface); border: 1px solid var(--border); border-radius: var(--component-radius); }
.consultation-state-heading { display: flex; align-items: center; gap: var(--space-sm); }
.consultation-state-heading > div:nth-child(2) { flex: 1; min-width: 0; }
.consultation-state-heading h3 { margin: 0; }
.consultation-state-heading .hp-category-icon-wrapper { flex-shrink: 0; margin: 0; }
.consultation-help-law { flex-shrink: 0; text-decoration: none; }
.consultation-state-help > .hp-channel-desc { margin-block: var(--space-md); }
.consultation-help-criteria { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-sm); list-style: none; padding: 0; margin: 0; }
.consultation-help-criteria > li { padding: var(--component-padding); border-radius: var(--component-radius); background: var(--surface-subtle); min-width: 0; }
.consultation-help-criteria svg { width: 28px; height: 28px; color: var(--accent); margin-bottom: var(--space-sm); }
.consultation-help-criteria h4 { color: var(--heading-text); font-family: var(--font-heading); font-size: var(--reading-size); line-height: var(--reading-h3-leading); margin: 0 0 var(--space-xs); }
.consultation-help-criteria p { margin: 0; }
.consultation-help-next { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-sm) var(--space-md); border-top: 1px solid var(--border); margin-top: var(--space-md); padding-top: var(--space-md); }
.consultation-help-next p { flex: 1 1 300px; margin: 0; font-size: var(--reading-caption-size); color: var(--muted); }
.consultation-help-next a { flex: 0 1 auto; }
.consultation-emergency { display: flex; align-items: center; gap: var(--space-md); padding: var(--component-padding) var(--space-lg); margin-top: var(--space-md); border: 1px solid var(--status-warning-border); border-radius: var(--component-radius); background: var(--status-warning-bg); }
.consultation-emergency-icon { color: var(--status-warning); flex-shrink: 0; }
.consultation-emergency > div:first-of-type { flex: 1; min-width: 0; }
.consultation-emergency h3 { margin: 0 0 var(--space-xs); }
.consultation-emergency p { margin: 0; }
.consultation-emergency-action { display: flex; align-items: flex-end; flex-direction: column; gap: var(--space-xs); flex-shrink: 0; }
.consultation-emergency-action > a:first-child { display: inline-flex; align-items: center; gap: var(--space-xs); color: var(--heading-text); font-family: var(--font-heading); font-size: var(--reading-h2-size); font-weight: 700; text-decoration: none; }
.consultation-emergency-source { font-size: var(--reading-meta-size); color: var(--accent); text-decoration: none; border-bottom: 1px dashed currentColor; }
@media (max-width: 767px) {
  .consultation-state-help { padding: var(--component-padding); }
  .consultation-state-heading { flex-wrap: wrap; }
  .consultation-help-law { margin-left: 0; }
  .consultation-help-criteria { grid-template-columns: minmax(0, 1fr); }
  .consultation-help-criteria > li { display: grid; grid-template-columns: 28px minmax(0, 1fr); column-gap: var(--space-sm); }
  .consultation-help-criteria svg { grid-row: 1 / 3; margin: 0; }
  .consultation-help-criteria p { grid-column: 2; }
  .consultation-emergency { flex-wrap: wrap; padding: var(--component-padding); gap: var(--space-sm); }
  .consultation-emergency-action { width: 100%; align-items: flex-start; padding-top: var(--space-sm); border-top: 1px solid var(--status-warning-border); }
}

.hp-consult-card--example .hp-consult-author-row { flex-wrap: wrap; gap: var(--space-xs); }
.hp-consult-card--example .hp-consult-actions { justify-content: flex-end; }

.consultation-help-law { transition: color var(--motion-standard) var(--motion-ease), background-color var(--motion-standard) var(--motion-ease), box-shadow var(--motion-standard) var(--motion-ease); }
.consultation-help-law:is(:hover, :focus-visible) { color: var(--brand-accent); background: color-mix(in srgb, var(--brand-accent) 7%, var(--surface)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-accent) 12%, transparent); }
.consultation-help-next .hp-card-action-link { transition: color var(--motion-standard) var(--motion-ease); }
.consultation-help-next .hp-card-action-link svg { transition: transform var(--motion-standard) var(--motion-ease); }
.consultation-help-next .hp-card-action-link:is(:hover, :focus-visible) { color: var(--brand-accent); }
.consultation-help-next .hp-card-action-link:is(:hover, :focus-visible) svg { transform: translateX(4px); }
.consultation-help-section a:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; border-radius: 3px; }
.consultation-help-criteria > li { transition: background-color var(--motion-standard) var(--motion-ease), box-shadow var(--motion-standard) var(--motion-ease); }
.consultation-help-criteria > li:hover { background: var(--choice-card-hover-bg); box-shadow: inset 0 0 0 1px var(--choice-card-border); }
.consultation-help-criteria > li svg { transition: color var(--motion-standard) var(--motion-ease), transform var(--motion-standard) var(--motion-ease); }
.consultation-help-criteria > li:hover svg { color: var(--brand-accent); transform: translateY(-2px); }
.consultation-state-help.is-in-view .consultation-help-criteria svg { animation: consultation-help-icon-in 420ms var(--motion-ease) backwards; }
.consultation-state-help.is-in-view .consultation-help-criteria > li:nth-child(2) svg { animation-delay: 80ms; }
.consultation-state-help.is-in-view .consultation-help-criteria > li:nth-child(3) svg { animation-delay: 160ms; }
.consultation-emergency-action > a:first-child { transition: color var(--motion-standard) var(--motion-ease); }
.consultation-emergency-action > a:first-child svg { transition: transform var(--motion-standard) var(--motion-ease); }
.consultation-emergency-action > a:first-child:is(:hover, :focus-visible) { color: var(--brand-accent); }
.consultation-emergency-action > a:first-child:is(:hover, :focus-visible) svg { transform: rotate(-8deg); }
.consultation-emergency-source { transition: color var(--motion-standard) var(--motion-ease), border-color var(--motion-standard) var(--motion-ease); }
.consultation-emergency-source:hover { color: var(--brand-accent); border-bottom-color: transparent; }
@keyframes consultation-help-icon-in { from { transform: translateY(3px) scale(.92); } to { transform: translateY(0) scale(1); } }
.consultation-help-points { display: grid; gap: var(--space-xs); margin: var(--space-sm) 0; padding-left: 20px; }
.consultation-help-points li { padding: 0; }
.consultation-help-detail { font-size: var(--reading-caption-size); line-height: var(--reading-caption-leading); color: var(--muted); margin-top: var(--space-sm) !important; }
.consultation-help-criteria .hp-card-inner-link { font-size: var(--reading-caption-size); }
.consultation-help-documents { margin-top: var(--space-md); padding-top: var(--space-md); border-top: 1px solid var(--border); }
.consultation-help-documents h4 { display: flex; align-items: center; gap: var(--space-xs); margin: 0 0 var(--space-sm); font-family: var(--font-heading); font-size: var(--reading-h3-size); color: var(--heading-text); }
.consultation-help-documents h4 svg { flex-shrink: 0; color: var(--accent); }
.consultation-help-documents > ul { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--space-md); margin: 0; padding: 0; list-style: none; }
.consultation-help-documents > p { margin: var(--space-sm) 0 0; font-size: var(--reading-caption-size); color: var(--muted); }
@media (max-width: 767px) { .consultation-help-criteria > li > :is(ul, ol, a, .consultation-help-detail) { grid-column: 2; } .consultation-help-documents > ul { grid-template-columns: minmax(0,1fr); gap: var(--space-sm); } }


/* Shared visibility/motion contract for SSR components and runtime state. */
[data-demo-chat] [hidden], [data-topic-panels] [hidden] { display: none !important; }
[data-chat-panel] { display: flex; flex-direction: column; flex: 0 0 auto; gap: inherit; }
[data-chat-panel] > .tg-bubble-row:last-child { margin-bottom: 0; }
.consultation-scenario-chat { height: var(--demo-chat-height, 520px); }
@media (prefers-reduced-motion: reduce) {
  [data-demo-chat] .tg-chat-history { scroll-behavior: auto; }
  .demo-chat-message, .consultation-state-help.is-in-view .consultation-help-criteria svg { animation: none; }
  [data-demo-chat] .tg-typing-dot, .consultation-help-section *, .consultation-help-section *::before, .consultation-help-section *::after { animation: none; transition: none; }
  .consultation-help-criteria > li:hover svg, .consultation-help-next .hp-card-action-link:is(:hover,:focus-visible) svg, .consultation-emergency-action > a:first-child:is(:hover,:focus-visible) svg { transform: none; }
}

[data-family-demo-label][hidden] { display: none !important; }
.consultation-external-icon { margin-left: 6px; vertical-align: middle; transform: rotate(-45deg); }
.consultation-help-law { display: inline-flex; align-items: center; }
.consultation-status { padding: var(--component-padding); color: var(--text); background: var(--surface-subtle); border: 1px solid var(--border); border-radius: var(--component-radius); }
.is-chat-typing { color: var(--status-success); }
.hp-prep-complete-badge > span { display: inline-flex; align-items: center; gap: var(--space-xs); }

/* Rich text uses the same link tokens as the article renderer, without its layout. */
.consultation-rich a { color: var(--link-color); text-decoration: underline; text-decoration-color: var(--link-underline); text-underline-offset: 4px; text-decoration-thickness: 1.5px; font-weight: inherit; transition: color var(--motion-fast) var(--motion-ease), text-decoration-color var(--motion-fast) var(--motion-ease); }
.consultation-rich a:hover { color: var(--accent-hover); text-decoration-color: var(--accent-hover); }
