/* Comfortable reading scale. Keep the established h1, h2 and h3 sizes. */
:root {
  --reading-body: 18px;
  --reading-small: 16px;
  --reading-label: 12px;
  --reading-ink: #50634d;
  --reading-muted: #63745a;
  --paper: #fafaf5;
}

body { font-size: 18px; line-height: 1.75; }
.hero-description,
.legal-hero .hero-description,
.section-heading > p,
.approach .section-heading > p,
.process .section-heading > p,
.approach-grid p,
.legal-depth-copy > p,
.control-copy > p,
.process-grid p,
.faq-list p,
.cta-bottom p {
  font-size: var(--reading-body);
  line-height: 1.8;
  color: var(--reading-ink);
}
.legal-hero .hero-description { max-width: 520px; }
.section-heading { align-items: center; gap: 48px; margin-bottom: 52px; }
.section-heading > p,
.approach .section-heading > p,
.process .section-heading > p { max-width: 400px; flex-shrink: 0; }
.approach-grid { gap: 38px; }
.approach-grid article + article { padding-left: 30px; }
.approach-grid p,
.process-grid p { max-width: none; }
.legal-depth-copy > p { max-width: 560px; margin-top: 28px; }
.legal-depth-grid { gap: 64px; }
.eyebrow,
.section-heading .eyebrow,
.hero-copy .eyebrow,
.legal-depth-copy > .eyebrow,
.light-eyebrow,
.cta-top .eyebrow,
dialog .eyebrow {
  font-size: var(--reading-label);
  line-height: 1.7;
  letter-spacing: .08em;
  color: var(--reading-muted);
}
.detail-label,
.step-deliverable {
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: .04em;
  color: var(--reading-muted);
  margin-top: 24px;
}
.approach-icon > span { font-size: 12px; color: var(--reading-muted); }
.legal-hero .hero-note { font-size: 14px; color: var(--reading-muted); line-height: 1.7; }
.legal-hero .hero-note .icon { width: 17px; height: 17px; }

/* Larger, clearer navigation and comfortable interaction targets. */
.desktop-nav a { font-size: 14px; color: #4d614b; }
.desktop-nav { gap: 25px; }
.nav-actions { gap: 20px; }
.nav-actions .text-button { font-size: 13px; }
.nav-cta { font-size: 14px; padding: 13px 18px; min-height: 46px; }
.button,
.legal-hero .hero-actions > .button,
.cta-bottom .button,
#pilot-form .button,
.brief-actions .button { font-size: 15px; padding: 16px 22px; min-height: 52px; }
.legal-hero .hero-actions { gap: 18px; }
.hero-secondary,
.legal-hero .hero-secondary { font-size: 14px; min-height: 44px; line-height: 1.6; }
.inline-link,
.legal-depth-copy > .inline-link,
.legal-depth-copy .inline-link,
.playground-foot .inline-link,
.brief-actions .inline-link {
  font-size: 16px;
  line-height: 1.6;
  gap: 14px;
  padding: 8px 0;
  min-height: 44px;
}
.principles-strip { flex-wrap: wrap; gap: 22px 35px; padding-block: 25px; }
.principles-strip > span { font-size: 14px; gap: 9px; color: #4e6547; }
.principles-strip .icon { width: 18px; height: 18px; }
.principles-strip .strip-caption { font-size: 11px; letter-spacing: .04em; }

/* Supporting explanations and the document comparison stay easy to read. */
.training-note { padding: 26px; gap: 20px; align-items: flex-start; }
.training-note p { font-size: 16px; line-height: 1.85; color: var(--reading-ink); }
.training-note strong { color: #365b32; }
.training-note > a { font-size: 14px; line-height: 1.7; max-width: 175px; min-height: 44px; }
.training-mark { padding-top: 4px; }
.matter-map-header { font-size: 11px; line-height: 1.7; flex-wrap: wrap; padding: 20px 24px; color: #536d46; }
.matter-badge { font-size: 10px; line-height: 1.7; padding: 4px 7px; color: #456039; }
.matter-document-list { padding: 6px 24px; }
.matter-document-list > div { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 4px 12px; padding: 20px 0; }
.matter-document-list > div > span { font-size: 12px; color: var(--reading-muted); padding-top: 3px; }
.matter-document-list strong { font-size: 16px; line-height: 1.6; }
.matter-document-list small { grid-column: 2; margin-left: 0; font-size: 13px; line-height: 1.7; color: #5e7550; }
.matter-question { padding: 24px; gap: 14px; }
.matter-question span { font-size: 11px; line-height: 1.7; color: #5c734e; }
.matter-question strong { font-size: 18px; line-height: 1.55; margin-top: 10px; }
.matter-question p { font-size: 16px; line-height: 1.8; color: var(--reading-ink); margin-top: 14px; }
.matter-map-footer { font-size: 10px; line-height: 1.7; padding: 18px 24px; color: var(--reading-muted); gap: 16px; }

/* The demo is a reading surface, with full-sized questions and findings. */
.legal-workspace-caption { flex-wrap: wrap; gap: 8px 10px; }
.legal-workspace-caption > strong { font-size: 16px; line-height: 1.6; }
.legal-workspace-caption > span { font-size: 11px; line-height: 1.7; color: #5d744e; margin-left: 0; }
.demo-disclaimer { font-size: 11px; line-height: 1.7; color: #5d724e; }
.sector-bar { flex-wrap: wrap; gap: 16px 24px; margin-bottom: 24px; }
.demo-workspace { grid-template-columns: 250px minmax(0, 1fr); }
.demo-sidebar { padding: 28px 18px; }
.workspace-label { font-size: 15px; line-height: 1.6; margin-bottom: 26px; }
.sidebar-caption { font-size: 11px; line-height: 1.8; letter-spacing: .02em; color: #61774f; }
.workflow-option { font-size: 14px; line-height: 1.65; gap: 10px; padding: 14px 10px; min-height: 56px; }
.workflow-options { gap: 8px; }
.workflow-option .icon { width: 18px; height: 18px; }
.sidebar-footer { font-size: 12px; line-height: 1.8; color: #5e754e; }
.demo-content-heading { padding: 30px; }
.demo-content-heading .eyebrow { font-size: 12px; line-height: 1.7; letter-spacing: .04em; color: #5f784f; }
.demo-example-label { font-size: 10px; line-height: 1.8; max-width: 150px; color: #637b51; }
.demo-input,
.demo-output { padding: 28px; }
.input-label,
.output-heading .input-label { font-size: 11px; line-height: 1.8; letter-spacing: .04em; color: #6b7c5d; gap: 8px; }
.input-label > span { color: #4e6740; }
.source-file { padding: 16px 12px; gap: 10px; min-height: 82px; }
.source-file strong { font-size: 14px; line-height: 1.7; }
.source-file small { font-size: 12px; line-height: 1.7; color: #607651; margin-top: 5px; }
.source-file > .icon { width: 15px; height: 15px; }
.sample-prompt { font-size: 16px; line-height: 1.85; color: var(--reading-ink); margin: 18px 0 28px; }
.instruction-label { margin-top: 28px; }
.run-button { font-size: 14px; line-height: 1.6; min-height: 50px; padding: 14px; }
.simulation-note { font-size: 12px; line-height: 1.8; color: #637952; margin-top: 16px; }
#output-state { font-size: 10px; line-height: 1.8; color: #5f784f; }
.output-heading { flex-wrap: wrap; gap: 10px 12px; margin-bottom: 26px; }
.result-summary { font-size: 16px; line-height: 1.65; flex-wrap: wrap; gap: 10px; margin-bottom: 25px; }
.result-summary span { font-size: 10px; line-height: 1.6; color: #516c3c; padding: 4px 6px; }
.result-item { padding-left: 16px; margin-bottom: 28px; }
.result-topline { flex-wrap: wrap; gap: 8px; align-items: flex-start; margin-bottom: 9px; }
.result-topline h4 { font-size: 16px; line-height: 1.5; }
.severity { font-size: 10px; line-height: 1.7; padding: 3px 5px; color: #765a24; }
.severity.low { color: #4e6636; }
.result-item p { font-size: 16px; line-height: 1.8; color: var(--reading-ink); }
.citation { font-size: 12px; line-height: 1.6; padding: 9px 10px; min-height: 42px; margin-top: 12px; color: #486637; }
.demo-bottom { font-size: 12px; line-height: 1.8; padding: 20px 28px; flex-wrap: wrap; color: #5f7550; }
.demo-bottom > span:first-child { color: #486939; }
.playground-foot { align-items: flex-start; margin-top: 28px; }
.playground-foot p { font-size: 16px; line-height: 1.8; color: var(--reading-ink); }
.playground-foot strong { color: #405f33; }
.processing { font-size: 16px; line-height: 1.8; }

/* Privacy, the local architecture, FAQs and the brief planner. */
.control-copy > p { color: #d1dfc7; }
.control-copy .light-eyebrow { color: #c4d7b6; }
.control-points { gap: 28px; margin-top: 34px; }
.control-points strong { font-size: 17px; line-height: 1.6; }
.control-points small { font-size: 16px; line-height: 1.8; color: #c1d2b5; max-width: none; margin-top: 7px; }
.control-copy > .control-footnote { font-size: 13px; line-height: 1.85; color: #b2c8a4; margin-top: 28px; max-width: none; }
.architecture { padding: 28px; }
.architecture-heading { font-size: 11px; line-height: 1.8; letter-spacing: .02em; color: #c5d9b5; }
.arch-team { font-size: 16px; line-height: 1.7; gap: 15px; }
.arch-line { height: 38px; }
.arch-tools { flex-wrap: wrap; gap: 8px; }
.arch-tools span { font-size: 13px; line-height: 1.6; padding: 13px 10px; color: #d4e4c7; }
.arch-core { padding: 23px 18px; gap: 12px; }
.arch-core > div { font-size: 18px; line-height: 1.6; }
.arch-core small { font-size: 12px; line-height: 1.7; color: #466634; }
.arch-knowledge { font-size: 14px; line-height: 1.7; color: #d0e1c2; padding: 17px 12px; }
.architecture-note { font-size: 12px; line-height: 1.8; color: #bad2a9; }
.process-grid { gap: 40px; }
.faq-list summary { font-size: 17px; line-height: 1.7; padding: 25px 0; }
.faq-list p { padding-bottom: 26px; max-width: 650px; }
.faq-section { grid-template-columns: 1fr 1.85fr; gap: 60px; }
.cta-section { padding: 42px 44px; }
.cta-bottom { align-items: flex-start; flex-wrap: wrap; }
.cta-top .eyebrow { max-width: 80%; }
.dialog-inner { padding: 42px; }
dialog .dialog-intro,
#pilot-success > p,
.source-excerpt p,
.privacy-dialog p { font-size: 16px; line-height: 1.85; color: var(--reading-ink); }
#pilot-form label { font-size: 15px; line-height: 1.7; margin-bottom: 22px; }
input,
textarea,
select { font-size: 16px; line-height: 1.7; padding: 13px; margin-top: 8px; }
input::placeholder,
textarea::placeholder { color: #697b5e; }
.form-note { font-size: 12px!important; line-height: 1.8; color: #5b714c!important; flex-wrap: wrap; }
.brief-preview,
.brief-preview p { font-size: 16px; line-height: 1.8; }
.brief-preview { padding: 22px; }
.source-excerpt h3 { line-height: 1.8; color: #4a6839; }
.footer-top p { font-size: 14px; line-height: 1.8; color: #5d7251; }
.footer-bottom,
.footer-bottom button,
.back-top { font-size: 12px; line-height: 1.8; color: #607351; }
.footer-bottom button { padding: 10px 0; }
.presenter-bar { padding: 10px 15px; gap: 22px; }
.presenter-brand { font-size: 14px; }
#present-label { font-size: 12px; line-height: 1.7; min-width: 200px; }
.presenter-bar button { min-width: 35px; min-height: 40px; }
.presenter-bar #present-exit { font-size: 12px; }
.presenter-bar #present-exit span { font-size: 10px; }

/* The illustrative hardware scene also has legible labels and more room. */
.hero-visual.legal-scene { height: 730px; }
.legal-scene .visual-topline { align-items: flex-start; gap: 18px; padding: 24px; }
.legal-scene .tiny-label { font-size: 10px; line-height: 1.7; letter-spacing: .04em; max-width: 72%; }
.online-indicator { font-size: 10px; line-height: 1.7; }
.legal-scene-title { top: 83px; left: 25px; font-size: 18px; line-height: 1.6; }
.legal-scene-title > div { font-size: 18px; }
.legal-document { top: 176px; left: 24px; width: 40%; padding: 14px 12px; gap: 9px; }
.doc-second { top: 275px; left: 34px; }
.legal-document > span { font-size: 12px; line-height: 1.6; }
.legal-document small { font-size: 11px; line-height: 1.6; color: #5a714a; }
.legal-document .doc-page { display: none; }
.legal-finding { top: 174px; right: 22px; left: auto; width: 46%; padding: 16px; }
.finding-status { font-size: 9px; line-height: 1.8; letter-spacing: .02em; color: #536e41; }
.legal-finding > strong { font-size: 14px; line-height: 1.6; }
.legal-finding > span:not(.finding-status) { font-size: 12px; line-height: 1.7; color: #586e4c; }
.legal-finding > div { flex-wrap: wrap; gap: 6px; }
.legal-finding > div > span { font-size: 11px; line-height: 1.7; color: #4e683c; }
.legal-model-pill { top: 400px; max-width: calc(100% - 40px); }
.legal-model-pill > span { font-size: 10px; line-height: 1.7; white-space: normal; text-align: center; }
.spark-photo { top: 428px; height: 230px; }
.lawyer-review { bottom: 115px; left: 24px; font-size: 12px; line-height: 1.7; color: #c2d4b4; padding: 6px 8px; background: #1b382fe8; border-radius: 4px; }
.scene-bottom { bottom: 61px; left: 24px; right: 22px; }
.scene-bottom > a { font-size: 11px; line-height: 1.7; }
.hero-motion { font-size: 11px; line-height: 1.7; min-height: 40px; padding: 7px 9px; color: #d2e1c4; }
.legal-concept-label { left: 24px; bottom: 12px; right: 22px; font-size: 11px; line-height: 1.6; letter-spacing: 0; color: #b4cba5; }

@media (max-width: 1100px) {
  .demo-body { grid-template-columns: 1fr; }
  .demo-input { border-right: 0; border-bottom: 1px solid var(--line); }
  .control-grid { grid-template-columns: 1fr; gap: 45px; }
  .control-copy > p { max-width: 680px; }
  .architecture { width: 100%; max-width: 650px; margin-inline: auto; }
  .training-note { flex-wrap: wrap; }
  .training-note > a { margin-left: 40px; max-width: none; }
}

@media (max-width: 1000px) {
  .site-header { height: 84px; }
  .desktop-nav,
  .nav-actions .text-button { display: none; }
  .menu-toggle { display: flex; flex-direction: column; gap: 6px; padding: 10px 0 10px 8px; }
  .menu-toggle > span { display: block; width: 22px; height: 1px; background: var(--ink); }
  .mobile-nav { display: flex; position: absolute; top: 84px; left: 0; right: 0; flex-direction: column; gap: 4px; padding: 18px 28px; background: var(--paper); border-bottom: 1px solid var(--line); }
  .mobile-nav > a,
  .mobile-nav > button { display: block; text-align: left; font-size: 16px; line-height: 1.7; padding: 12px 0; }
  .hero.legal-hero { grid-template-columns: 1fr; gap: 36px; }
  .legal-hero .hero-actions { flex-direction: row; align-items: center; flex-wrap: wrap; }
  .legal-hero .hero-description { max-width: 650px; }
  .hero-visual.legal-scene { width: 100%; max-width: 680px; margin-inline: auto; }
  .section-heading { flex-direction: column; align-items: flex-start; gap: 24px; }
  .section-heading > p,
  .approach .section-heading > p,
  .process .section-heading > p { max-width: 680px; }
  .legal-depth-grid { grid-template-columns: 1fr; gap: 38px; }
  .legal-depth-copy > p { max-width: 680px; }
  .matter-map { width: 100%; max-width: 650px; }
  .demo-workspace { grid-template-columns: 1fr; }
  .workflow-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .workflow-option:last-child { grid-column: 1 / -1; }
  .sidebar-footer { display: none; }
  .workspace-label { margin-bottom: 18px; }
  .faq-section { grid-template-columns: 1fr; gap: 30px; }
  .playground-foot { flex-direction: column; align-items: flex-start; gap: 18px; }
  .playground-foot p { max-width: 100%; }
  .principles-strip .strip-caption { display: none; }
}

@media (max-width: 760px) {
  :root { --reading-body: 17px; }
  .container { width: calc(100% - 40px); }
  .section { padding-block: 66px; }
  .section-heading { margin-bottom: 36px; }
  .eyebrow,
  .section-heading .eyebrow,
  .hero-copy .eyebrow,
  .legal-depth-copy > .eyebrow,
  .light-eyebrow,
  .cta-top .eyebrow,
  dialog .eyebrow { font-size: 11px; letter-spacing: .05em; }
  .nav-cta { font-size: 13px; padding: 11px 14px; gap: 14px; }
  .nav-actions { gap: 15px; }
  .legal-hero .hero-actions { align-items: flex-start; gap: 12px 18px; }
  .legal-hero .hero-actions > .button { font-size: 14px; padding: 15px 18px; }
  .legal-hero .hero-secondary { font-size: 14px; }
  .legal-hero .hero-note { font-size: 13px; }
  .principles-strip { gap: 14px 24px; padding-block: 22px; }
  .principles-strip > span { font-size: 13px; }
  .principles-strip .icon { width: 16px; height: 16px; }
  .approach-grid { gap: 32px; }
  .approach-grid article { padding-left: 43px!important; padding-bottom: 30px; }
  .approach-icon > span { font-size: 11px; }
  .detail-label,
  .step-deliverable { font-size: 11px; }
  .training-note { padding: 22px; gap: 14px; }
  .training-note p { font-size: 16px; flex-basis: calc(100% - 43px); }
  .training-note > a { font-size: 14px; margin-left: 37px; }
  .legal-depth-section { padding-block: 58px; }
  .legal-depth-copy > p { margin-top: 26px; }
  .legal-depth-copy .inline-link,
  .playground-foot .inline-link { font-size: 15px; }
  .matter-map-header { padding: 18px 20px; }
  .matter-document-list { padding-inline: 20px; }
  .matter-question { padding: 22px 20px; }
  .matter-map-footer { padding: 16px 20px; }
  .workflow-options { grid-template-columns: 1fr; }
  .workflow-option:last-child { grid-column: auto; }
  .workflow-option { font-size: 15px; min-height: 54px; }
  .demo-content-heading { flex-direction: column; align-items: flex-start; gap: 16px; padding: 26px 22px; }
  .demo-example-label { max-width: none; font-size: 10px; text-align: left; }
  .demo-content-heading .eyebrow { font-size: 11px; }
  .demo-input,
  .demo-output { padding: 26px 22px; }
  .source-file { padding: 16px 12px; gap: 10px; }
  .source-file strong { font-size: 14px; }
  .source-file small { font-size: 12px; }
  .demo-bottom { padding: 20px 22px; font-size: 12px; }
  .demo-disclaimer { font-size: 11px; }
  .legal-workspace-caption > strong { font-size: 15px; }
  .legal-workspace-caption > span { font-size: 11px; padding-left: 0; }
  .architecture { padding: 24px 20px; }
  .architecture-heading { font-size: 10px; }
  .arch-core { padding: 19px 13px; gap: 10px; }
  .arch-core > div { font-size: 16px; }
  .arch-core small { font-size: 11px; }
  .arch-tools span { font-size: 12px; padding: 12px 8px; min-width: 100px; }
  .arch-knowledge { font-size: 13px; }
  .architecture-note { font-size: 11px; }
  .faq-list summary { font-size: 16px; }
  .cta-section { padding: 32px 25px; }
  .cta-top .eyebrow { max-width: 80%; }
  .cta-bottom { gap: 24px; }
  .cta-bottom .button { font-size: 14px; gap: 20px; white-space: normal; text-align: left; }
  .footer-top p { font-size: 14px; }
  .footer-bottom,
  .footer-bottom button,
  .back-top { font-size: 11px; }
  .footer-bottom { align-items: flex-start; }
  .dialog-inner { padding: 36px 25px; }
  #pilot-form .button { font-size: 14px; padding-inline: 14px; gap: 12px; }
  .brief-actions { flex-wrap: wrap; gap: 14px 22px; }
  .form-note { font-size: 12px!important; }
  .presenter-bar { gap: 8px; width: calc(100% - 24px); justify-content: space-between; padding: 5px 8px; }
  #present-label { font-size: 10px; min-width: 0; max-width: 145px; white-space: normal; }
  .presenter-bar > div { gap: 4px; }
  .presenter-bar #present-exit { font-size: 10px; padding-left: 9px; }
  .presenter-bar #present-exit span { display: none; }
}

@media (max-width: 650px) {
  .hero-visual.legal-scene { height: 850px; }
  .legal-scene .visual-topline { padding: 22px; }
  .legal-scene .tiny-label { font-size: 9px; max-width: 70%; }
  .legal-scene-title { top: 87px; left: 23px; }
  .legal-scene-title > div { font-size: 18px; }
  .legal-document { top: 168px; left: 23px; width: calc(100% - 78px); max-width: 280px; padding: 14px; }
  .doc-second { top: 255px; left: 36px; }
  .legal-document > span { font-size: 13px; }
  .legal-document small { font-size: 11px; }
  .legal-finding { top: 351px; left: 23px; right: 23px; width: auto; padding: 16px; transform: none; }
  .finding-status { font-size: 10px; }
  .legal-finding > strong { font-size: 15px; }
  .legal-finding > span:not(.finding-status) { font-size: 13px; }
  .legal-finding > div > span { font-size: 11px; }
  .legal-model-pill { top: 560px; }
  .legal-model-pill > span { font-size: 10px; }
  .spark-photo { top: 591px; height: 185px; }
  .lawyer-review { left: 23px; bottom: 120px; font-size: 12px; padding: 6px 8px; background: #1b382fe8; border-radius: 4px; }
  .scene-bottom { bottom: 61px; left: 23px; right: 23px; }
  .scene-bottom > a { font-size: 11px; }
  .hero-motion { font-size: 11px; min-height: 42px; }
  .legal-concept-label { font-size: 11px; line-height: 1.6; left: 23px; right: 23px; bottom: 10px; }
}

@media (max-width: 420px) {
  .nav-cta { display: none; }
}

@media (max-width: 380px) {
  .nav-cta { font-size: 12px; padding-inline: 12px; }
  .nav-actions { gap: 10px; }
  .hero-visual.legal-scene { height: 900px; }
  .legal-document { width: calc(100% - 64px); left: 20px; }
  .doc-second { left: 29px; }
  .legal-finding { top: 350px; left: 20px; right: 20px; }
  .legal-finding > strong { font-size: 14px; }
  .legal-finding > span:not(.finding-status) { font-size: 12px; }
  .legal-model-pill { top: 600px; }
  .spark-photo { top: 626px; }
  .scene-bottom { left: 20px; right: 20px; }
  .scene-bottom > a { font-size: 10px; }
  .hero-motion { font-size: 10px; padding-inline: 6px; }
  .legal-concept-label { font-size: 11px; left: 20px; right: 20px; }
  .matter-map-header { padding-inline: 17px; }
  .matter-document-list { padding-inline: 17px; }
  .matter-question { padding-inline: 17px; }
  .matter-question strong { font-size: 17px; }
  .training-note { padding: 18px; }
}
