/* ========================================================= GLOBAL SECTION REVEAL
========================================================= */

.legal-reveal {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity .75s ease, transform .85s cubic-bezier(.22, 1, .36, 1);
}

.legal-reveal.legal-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .legal-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .connected-node,
  .notification-arrival,
  .notification-result,
  .signature-drawing-path {
    animation: none;
  }

}


.legal-hero {
  position: relative;
  padding: 90px 0 130px;
  background: radial-gradient(circle at 50% 38%, rgba(119, 94, 255, .08), transparent 34%), #fff;
}


/* BACKGROUND */

.legal-hero-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.legal-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(1px);
  opacity: .65;
}

.legal-orb-1 {
  width: 420px;
  height: 420px;
  left: -230px;
  top: 200px;
  background: rgba(108, 99, 255, .07);
}

.legal-orb-2 {
  width: 340px;
  height: 340px;
  right: -180px;
  top: 400px;
  background: rgba(82, 183, 255, .08);
}

.legal-grid {
  position: absolute;
  width: 100%;
  height: 500px;
  top: 0;
  left: 0;
  opacity: .18;
  background-image: linear-gradient(rgba(80, 80, 120, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(80, 80, 120, .06) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to bottom, black, transparent 90%);
}


/* ========================================================= HERO COPY
========================================================= */

.legal-hero-copy {
  position: relative;
  z-index: 3;
  max-width: 950px;
  margin: 0 auto;
}

.legal-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 13px;
  border: 1px solid rgba(95, 82, 220, .12);
  border-radius: 999px;
  background: rgba(255, 255, 255, .72);
  color: #6258c9;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 8px 30px rgba(70, 60, 150, .06);
  backdrop-filter: blur(10px);
}

.eyebrow-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #7768f4;
  box-shadow: 0 0 0 5px rgba(119, 104, 244, .10);
}

.legal-hero h1 {
  margin: 22px 0 18px;
  font-size: clamp(3.4rem, 7vw, 6.4rem);
  line-height: .95;
  letter-spacing: -.055em;
  font-weight: 700;
  color: #18181c;
}

.legal-hero h1 span {
  background: linear-gradient(120deg, #6658ef, #8c74f7 55%, #5b9df6);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.legal-hero-subtitle {
  max-width: 730px;
  margin: 0 auto;
  color: #62626d;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  line-height: 1.55;
}

.legal-hero-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 32px;
}

.legal-main-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 21px;
  border-radius: 11px;
  box-shadow: 0 12px 30px rgba(92, 79, 220, .20);
  transition: transform .25s ease, box-shadow .25s ease;
}

.legal-main-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 17px 38px rgba(92, 79, 220, .28);
}

.legal-demo-btn {
  padding: 14px 21px;
  border: 1px solid #e6e5ec;
  border-radius: 11px;
  background: rgba(255, 255, 255, .8);
  color: #44434c;
  transition: transform .25s ease, background .25s ease;
}

.legal-demo-btn:hover {
  transform: translateY(-2px);
  background: #fff;
}

.legal-trust-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 20px;
  color: #9897a1;
  font-size: 12px;
}

.legal-trust-line span {
  display: flex;
  align-items: center;
  gap: 6px;
}

.trust-separator {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #d4d3da;
}


/* ========================================================= PRODUCT STAGE
========================================================= */

.legal-product-stage {
  position: relative;
  max-width: 1180px;
  margin: 75px auto 0;
  padding: 0 20px;
}

.product-glow {
  position: absolute;
  width: 70%;
  height: 180px;
  left: 15%;
  bottom: -40px;
  background: rgba(108, 94, 255, .13);
  filter: blur(70px);
  z-index: 0;
}


/* ========================================================= APP WINDOW
========================================================= */

.legal-app-window {
  position: relative;
  z-index: 2;
  overflow: hidden;
  border: 1px solid rgba(40, 40, 60, .10);
  border-radius: 18px;
  background: #f9f9fb;

}


/* TOPBAR */

.legal-app-topbar {
  height: 57px;
  display: flex;
  align-items: center;
  padding: 0 18px;
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid #e9e8ed;
}

.app-brand-mini {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 210px;
  color: #33323b;
  font-size: 13px;
  font-weight: 600;
}

.brand-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6759ef, #8c7df4);
}

.app-search {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 280px;
  padding: 8px 12px;
  border: 1px solid #e9e8ed;
  border-radius: 8px;
  color: #aaa9b2;
  font-size: 11px;
}

.app-top-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 18px;
}

.mini-notification {
  position: relative;
  color: #777681;
}

.mini-notification i {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #f26b7b;
}

.mini-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  border-radius: 50%;
  background: #e9e7ff;
  color: #6659d8;
  font-size: 9px;
  font-weight: 700;
}


/* APP BODY */

.legal-app-body {
  display: flex;
  min-height: 570px;
}


/* SIDEBAR */

.legal-sidebar {
  width: 185px;
  padding: 22px 13px;
  background: #fbfbfc;
  border-right: 1px solid #e9e8ed;
}

.sidebar-section small {
  display: block;
  margin: 0 9px 9px;
  color: #a5a4ad;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.sidebar-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 10px;
  margin-bottom: 3px;
  border-radius: 7px;
  color: #777681;
  font-size: 11px;
}

.sidebar-item-icon {
  display: flex;
}

.sidebar-item b {
  margin-left: auto;
  font-size: 9px;
  font-weight: 500;
  color: #aaa9b2;
}

.sidebar-item.active {
  background: #eeecff;
  color: #5e51d0;
  font-weight: 600;
}


/* MAIN */

.legal-app-main {
  flex: 1;
  min-width: 0;
  padding: 26px;
}

.app-content-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

.breadcrumb {
  margin-bottom: 5px;
  color: #aaa9b2;
  font-size: 9px;
}

.breadcrumb span {
  margin: 0 5px;
}

.app-content-header h3 {
  margin: 0;
  color: #28272e;
  font-size: 20px;
  letter-spacing: -.025em;
}

.matter-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 6px;
  color: #a3a2ab;
  font-size: 9px;
}

.matter-badge {
  padding: 4px 7px;
  border-radius: 5px;
  background: #eeecff;
  color: #6256ce;
  font-weight: 600;
}

.matter-action {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 11px;
  border: 1px solid #e5e4e9;
  border-radius: 7px;
  background: white;
  color: #62616b;
  font-size: 10px;
}


/* DOCUMENT */

.document-workspace {
  display: grid;
  grid-template-columns: 265px 1fr;
  gap: 15px;
  margin-top: 22px;
}

.document-info-panel {
  display: flex;
  flex-direction: column;
  min-height: 430px;
  padding: 18px;
  border: 1px solid #e6e5eb;
  border-radius: 11px;
  background: rgba(255, 255, 255, .82);
}

.document-type {
  display: flex;
  gap: 10px;
  padding-bottom: 18px;
  border-bottom: 1px solid #eeeef1;
}

.document-type-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: #f0eeff;
  color: #6659dc;
}

.document-type small,
.document-details small {
  display: block;
  margin-bottom: 4px;
  color: #aaa9b2;
  font-size: 9px;
}

.document-type strong {
  display: block;
  color: #36353d;
  font-size: 11px;
}

.document-details {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 20px 0;
}

.document-details span {
  display: block;
  color: #5e5d66;
  font-size: 10px;
  line-height: 1.4;
}

.deadline {
  display: flex !important;
  align-items: center;
  gap: 5px;
  color: #d76a78 !important;
}

.deadline i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #df7580;
}

.document-actions {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-top: auto;
}

.document-actions button {
  width: 100%;
  padding: 9px;
  border: 1px solid #e6e5eb;
  border-radius: 7px;
  background: #fff;
  color: #66646d;
  font-size: 10px;
}

.document-actions button:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.primary-document-action {
  border-color: #6b5de7 !important;
  background: #6b5de7 !important;
  color: #fff !important;
}


/* PDF */

.pdf-viewer {
  min-height: 430px;
  border: 1px solid #e3e2e8;
  border-radius: 11px;
  background: #f2f2f4;
  overflow: hidden;
}

.pdf-toolbar {
  height: 39px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 13px;
  border-bottom: 1px solid #e1e0e5;
  background: #fafafa;
  color: #8d8c94;
  font-size: 9px;
}

.pdf-toolbar b {
  color: #67666e;
}

.pdf-toolbar div {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pdf-toolbar button {
  border: 0;
  background: none;
  color: #77757e;
}

.pdf-page {
  position: relative;
  width: 65%;
  min-height: 375px;
  margin: 20px auto;
  padding: 25px 32px;
  background: white;
  box-shadow: 0 8px 25px rgba(30, 30, 40, .09);
  transform-origin: top center;
}

.pdf-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 25px;
}

.fake-logo {
  width: 28px;
  height: 28px;
  border: 2px solid #aaa;
  border-radius: 4px;
}

.pdf-header span {
  display: block;
  color: #555;
  font-size: 7px;
  font-weight: 700;
}

.pdf-header small {
  display: block;
  margin-top: 3px;
  color: #aaa;
  font-size: 6px;
}

.pdf-title-line {
  width: 70%;
  height: 5px;
  margin-bottom: 15px;
  background: #ddd;
  border-radius: 4px;
}

.pdf-line {
  width: 80%;
  height: 3px;
  margin-bottom: 8px;
  background: #e6e6e6;
  border-radius: 4px;
}

.pdf-line.wide {
  width: 95%;
}

.pdf-line.medium {
  width: 62%;
}

.pdf-space {
  height: 25px;
}


/* SIGNATURE */

.pdf-signature {
  position: absolute;
  bottom: 32px;
  right: 28px;
  width: 170px;
}

.pdf-signature small {
  display: block;
  color: #999;
  font-size: 6px;
}

.signature-svg {
  width: 100%;
  height: 50px;
  overflow: visible;
}

.signature-path {
  fill: none;
  stroke: #28272e;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 700;
  stroke-dashoffset: 700;
  animation: drawSignature 2.4s cubic-bezier(.65, 0, .35, 1) .7s forwards;
}

.pdf-signature span {
  display: block;
  color: #aaa;
  font-size: 6px;
}

@keyframes drawSignature {
  to {
    stroke-dashoffset: 0;
  }

}


/* ========================================================= FLOATING ELEMENTS
========================================================= */

.legal-floating-notification,
.legal-floating-matter {
  position: absolute;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 14px;
  border: 1px solid rgba(70, 65, 100, .10);
  border-radius: 11px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 18px 45px rgba(36, 30, 80, .12);
  backdrop-filter: blur(14px);
}

.legal-floating-notification {
  left: -22px;
  top: 105px;
  animation: floatNotification 5s ease-in-out infinite;
}

.floating-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border-radius: 8px;
  background: #f0eeff;
  color: #6558d7;
}

.legal-floating-notification small,
.legal-floating-matter small {
  display: block;
  margin-bottom: 2px;
  color: #9b9aa3;
  font-size: 8px;
}

.legal-floating-notification strong,
.legal-floating-matter strong {
  display: block;
  color: #37363e;
  font-size: 10px;
}

.legal-floating-notification span:not(.notification-status) {
  display: block;
  margin-top: 2px;
  color: #aaa9b1;
  font-size: 8px;
}

.notification-status {
  width: 7px;
  height: 7px;
  margin-left: 5px;
  border-radius: 50%;
  background: #67c99b;
  box-shadow: 0 0 0 4px rgba(103, 201, 155, .10);
}

.legal-floating-matter {
  right: -20px;
  bottom: 170px;
  animation: floatMatter 5s ease-in-out 1s infinite;
}

.floating-matter-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: #eaf8f1;
  color: #45ad7c;
  font-size: 13px;
  font-weight: 700;
}

.floating-check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 8px;
  border-radius: 50%;
  background: #eaf8f1;
  color: #45ad7c;
  font-size: 9px;
}

@keyframes floatNotification {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-9px);
  }

}

@keyframes floatMatter {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(8px);
  }

}


/* ========================================================= RESPONSIVE
========================================================= */

@media (max-width: 991px) {
  .legal-hero {
    padding-top: 70px;
  }

  .legal-sidebar {
    display: none;
  }

  .document-workspace {
    grid-template-columns: 220px 1fr;
  }

  .legal-floating-notification {
    left: -5px;
  }

  .legal-floating-matter {
    right: -5px;
  }

}

@media (max-width: 767px) {
  .legal-hero {
    padding: 55px 0 70px;
  }

  .legal-hero h1 {
    font-size: 3.5rem;
  }

  .legal-hero-subtitle {
    font-size: 1.05rem;
  }

  .legal-hero-actions {
    flex-direction: column;
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
  }

  .legal-trust-line {
    flex-direction: column;
    gap: 8px;
  }

  .trust-separator {
    display: none;
  }

  .legal-product-stage {
    padding: 0;
    margin-top: 50px;
  }

  .legal-app-window {
    border-radius: 12px;
  }

  .app-search {
    display: none;
  }

  .app-brand-mini {
    width: auto;
  }

  .legal-app-main {
    padding: 15px;
  }

  .document-workspace {
    grid-template-columns: 1fr;
  }

  .document-info-panel {
    min-height: auto;
  }

  .document-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .pdf-page {
    width: 82%;
  }

  .legal-floating-notification,
  .legal-floating-matter {
    display: none;
  }

}

@media (prefers-reduced-motion: reduce) {

  .legal-floating-notification,
  .legal-floating-matter,
  .signature-path {
    animation: none;
  }

  .legal-app-window {
    transform: none;
  }

}

/* ========================================================= 04 · CONNECTED WORKSPACE
========================================================= */

.legal-connected-section {
  padding: 140px 0;
  background: #fff;
}

.section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.section-eyebrow span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.section-eyebrow-purple {
  color: #6759dc;
}

.section-eyebrow-purple span {
  background: #7667ef;
}

.legal-section-title {
  margin: 18px 0;
  font-size: clamp(2.6rem, 4vw, 4.4rem);
  line-height: 1;
  letter-spacing: -.045em;
  color: #202027;
}

.legal-section-title span {
  color: #7164d9;
}

.legal-section-description {
  max-width: 510px;
  color: #717078;
  font-size: 1.15rem;
  line-height: 1.65;
}




/* WORKSPACE */

.connected-workspace {
  position: relative;
  min-height: 540px;
  border-radius: 28px;
  background: radial-gradient(circle at 50% 50%, rgba(119, 105, 235, .11), transparent 45%), #faf9ff;
  border: 1px solid #eeeef5;
  overflow: hidden;
}


/* MATTER */

.connected-matter {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 300px;
  padding: 22px;
  transform: translate(-50%, -50%);
  border-radius: 17px;
  background: rgba(255, 255, 255, .96);
  border: 1px solid #e6e3f6;
  box-shadow: 0 25px 60px rgba(80, 68, 160, .13);
  z-index: 3;
}

.matter-glow {
  position: absolute;
  inset: -20px;
  border-radius: 25px;
  background: rgba(119, 105, 235, .08);
  filter: blur(25px);
  z-index: -1;
}

.connected-matter-top {
  display: flex;
  align-items: center;
  gap: 10px;
}

.matter-folder-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #efecff;
  color: #6759dc;
}

.connected-matter-top small {
  display: block;
  color: #aaa8b3;
  font-size: 8px;
  letter-spacing: .08em;
}

.connected-matter-top strong {
  display: block;
  margin-top: 3px;
  color: #35343c;
  font-size: 12px;
}

.matter-active {
  margin-left: auto;
  padding: 5px 7px;
  border-radius: 6px;
  background: #eaf8f1;
  color: #45a878;
  font-size: 8px;
  font-weight: 700;
}

.matter-client {
  margin-top: 18px;
  color: #777680;
  font-size: 10px;
}

.matter-client span {
  margin: 0 4px;
  color: #cccbd2;
}

.matter-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 18px;
}

.matter-stats div {
  padding: 10px;
  border-radius: 8px;
  background: #f8f8fa;
}

.matter-stats strong {
  display: block;
  color: #37363e;
  font-size: 16px;
}

.matter-stats span {
  color: #aaa9b1;
  font-size: 7px;
}


/* NODES */

.connected-node {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 9px;
  width: 175px;
  padding: 11px;
  border: 1px solid #e7e6ed;
  border-radius: 11px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 13px 30px rgba(45, 40, 80, .08);
  z-index: 4;
  animation: nodeFloat 5s ease-in-out infinite;
}

.connected-node small {
  display: block;
  color: #aaa9b1;
  font-size: 8px;
}

.connected-node strong {
  display: block;
  margin-top: 2px;
  color: #46444e;
  font-size: 10px;
}

.node-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: 8px;
}

.node-icon.purple {
  color: #6759dc;
  background: #efecff;
}

.node-icon.blue {
  color: #438fd1;
  background: #eaf6ff;
}

.node-icon.orange {
  color: #d7904d;
  background: #fff2e6;
}

.node-document {
  top: 70px;
  left: 55px;
}

.node-notification {
  top: 70px;
  right: 55px;
  animation-delay: .8s;
}

.node-calendar {
  bottom: 55px;
  right: 55px;
  animation-delay: 1.5s;
}


/* LINES */

.connected-lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.connection-line {
  fill: none;
  stroke: #d7d2f5;
  stroke-width: 1.5;
  stroke-dasharray: 6 8;
  animation: connectionMove 3s linear infinite;
}

@keyframes connectionMove {
  to {
    stroke-dashoffset: -28;
  }
}

@keyframes nodeFloat {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-7px);
  }
}

/* ========================================================= 05 · MATTERS
========================================================= */

.matters-section {
  padding: 150px 0;
  background: linear-gradient(135deg, #f7f8ff 0%, #eef5ff 100%);
}

.section-eyebrow-blue {
  color: #438bd0;
}

.section-eyebrow-blue span {
  background: #559ee0;
}

.matters-section .legal-section-title span {
  color: #4d8fc9;
}

.legal-text-link {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin-top: 22px;
  color: #4e8dca;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.legal-text-link span {
  transition: transform .2s ease;
}

.legal-text-link:hover span {
  transform: translateX(4px);
}


/* PREVIEW */

.matter-preview {
  border: 1px solid rgba(75, 105, 150, .13);
  border-radius: 20px;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 30px 70px rgba(46, 79, 125, .12);
  overflow: hidden;
}

.matter-preview-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 24px;
  border-bottom: 1px solid #edf0f5;
}

.matter-preview-header small {
  color: #a3a9b4;
  font-size: 8px;
  letter-spacing: .08em;
}

.matter-preview-header h3 {
  margin: 4px 0;
  color: #30343c;
  font-size: 17px;
  letter-spacing: -.025em;
}

.preview-meta {
  display: flex;
  gap: 7px;
  color: #9da3ae;
  font-size: 9px;
}

.matter-status {
  padding: 6px 9px;
  border-radius: 7px;
  background: #eaf8f1;
  color: #43a575;
  font-size: 9px;
  font-weight: 600;
}

.matter-preview-content {
  display: flex;
  min-height: 390px;
}

.preview-sidebar {
  width: 150px;
  padding: 20px 12px;
  background: #fafbfc;
  border-right: 1px solid #edf0f4;
}

.preview-nav {
  display: flex;
  justify-content: space-between;
  padding: 10px;
  border-radius: 7px;
  color: #858a94;
  font-size: 10px;
  margin-bottom: 3px;
}

.preview-nav b {
  color: #b0b4bc;
  font-size: 8px;
}

.preview-nav.active {
  background: #edf4ff;
  color: #4288c8;
  font-weight: 600;
}

.preview-main {
  flex: 1;
  padding: 22px;
}

.preview-overview {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 10px;
}

.overview-card {
  min-height: 90px;
  padding: 14px;
  border-radius: 10px;
  background: #f8f9fb;
}

.overview-card.large {
  background: #f0f6ff;
}

.overview-card small {
  display: block;
  color: #9da3ae;
  font-size: 7px;
  letter-spacing: .05em;
}

.overview-card strong {
  display: block;
  margin-top: 9px;
  color: #40444c;
  font-size: 11px;
}

.overview-card:not(.large) strong {
  font-size: 21px;
}

.overview-date,
.overview-card span {
  display: block;
  margin-top: 5px;
  color: #8e949e;
  font-size: 8px;
}

.matter-activity {
  margin-top: 24px;
}

.activity-title {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  color: #52565f;
  font-size: 10px;
  font-weight: 600;
}

.activity-title span {
  color: #7d9fc3;
  font-weight: 500;
}

.activity-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid #f0f1f4;
}

.activity-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.activity-dot.purple {
  background: #7b6de8;
}

.activity-dot.blue {
  background: #55a2dd;
}

.activity-dot.green {
  background: #55b983;
}

.activity-item strong {
  display: block;
  color: #565962;
  font-size: 9px;
}

.activity-item small {
  display: block;
  margin-top: 2px;
  color: #a4a8b0;
  font-size: 8px;
}

.activity-item time {
  margin-left: auto;
  color: #b0b3ba;
  font-size: 8px;
}

/* ========================================================= 06 · NOTIFICATIONS
========================================================= */

.notifications-section {
  padding: 145px 0;
  background: #f2f8ff;
}

.notification-scene {
  position: relative;
  min-height: 500px;
  padding: 60px 35px;
  border-radius: 28px;
  background: radial-gradient(circle at 30% 30%, rgba(83, 160, 224, .16), transparent 35%), #eaf5ff;
  overflow-x: hidden;
}

.notification-arrival,
.notification-result,
.notification-processing {
  position: absolute;
  border: 1px solid rgba(69, 126, 175, .13);
  background: rgba(255, 255, 255, .93);
  box-shadow: 0 22px 50px rgba(43, 105, 155, .11);
  backdrop-filter: blur(12px);
}

.notification-arrival {
  top: 70px;
  left: 40px;
  right: 40px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 16px;
  border-radius: 13px;
  animation: notificationFloat 5s ease-in-out infinite;
}

.arrival-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #e5f3ff;
  color: #428dce;
}

.notification-arrival small,
.notification-result small {
  display: block;
  color: #9da8b4;
  font-size: 8px;
}

.notification-arrival strong,
.notification-result strong {
  display: block;
  margin-top: 3px;
  color: #414850;
  font-size: 11px;
}

.notification-arrival span {
  display: block;
  margin-top: 3px;
  color: #a5adb6;
  font-size: 8px;
}

.arrival-pulse {
  width: 8px;
  height: 8px;
  margin-left: auto;
  border-radius: 50%;
  background: #4eafdb;
  box-shadow: 0 0 0 7px rgba(78, 175, 219, .12);
}

.notification-processing {
  left: 90px;
  right: 90px;
  top: 200px;
  padding: 15px;
  border-radius: 12px;
}

.processing-line {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 0;
  color: #686f78;
  font-size: 10px;
}

.processing-line+.processing-line {
  border-top: 1px solid #edf0f3;
}

.processing-check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #e7f8ef;
  color: #42a574;
  font-size: 8px;
}

.notification-result {
  left: 110px;
  right: 60px;
  bottom: 65px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 15px;
  border-radius: 12px;
  animation: resultFloat 5s ease-in-out 1s infinite;
}

.result-check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border-radius: 9px;
  background: #e7f8ef;
  color: #45a977;
  font-size: 13px;
  font-weight: 700;
}

.notification-mini-list {
  margin-top: 35px;
}

.notification-mini-list>div {
  display: grid;
  grid-template-columns: 30px 1fr;
  margin-bottom: 18px;
}

.mini-number {
  color: #70a8d1;
  font-size: 10px;
  font-weight: 700;
}

.notification-mini-list strong {
  display: block;
  color: #464b53;
  font-size: 12px;
}

.notification-mini-list p {
  margin: 3px 0 0;
  color: #8b939c;
  font-size: 10px;
  line-height: 1.5;
}

@keyframes notificationFloat {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-8px);
  }
}

@keyframes resultFloat {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(7px);
  }
}

/* =========================================================        07 · SIGNATURE      ========================================================= */

.signature-section {
  padding: 155px 0;
  background: linear-gradient(135deg, #f2fbf7, #f7fcfa);
}

.section-eyebrow-green {
  color: #42a775;
}

.section-eyebrow-green span {
  background: #55b983;
}

.signature-section .legal-section-title span {
  color: #4aa879;
}

.signature-benefits {
  margin-top: 30px;
}

.signature-benefits div {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 12px;
  color: #69716c;
  font-size: 11px;
}

.signature-benefits span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #e2f6eb;
  color: #43a574;
  font-size: 9px;
}


/* WORKSPACE */

.signature-workspace {
  overflow: hidden;
  border: 1px solid #dfece5;
  border-radius: 19px;
  background: #f8fbf9;
  box-shadow: 0 30px 70px rgba(50, 110, 78, .10);
}

.signature-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 18px;
  background: rgba(255, 255, 255, .9);
  border-bottom: 1px solid #e6eee9;
}

.signature-file {
  display: flex;
  align-items: center;
  gap: 10px;
}

.file-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 7px;
  background: #edf8f2;
  color: #49a777;
  font-size: 8px;
  font-weight: 700;
}

.signature-file strong {
  display: block;
  color: #4c534f;
  font-size: 10px;
}

.signature-file small {
  display: block;
  margin-top: 2px;
  color: #a0a9a4;
  font-size: 8px;
}

.signature-toolbar-status {
  padding: 5px 8px;
  border-radius: 6px;
  background: #fff3dd;
  color: #ba8a49;
  font-size: 8px;
}

.signature-document {
  padding: 30px;
}

.signature-paper {
  position: relative;
  max-width: 500px;
  min-height: 400px;
  margin: auto;
  padding: 35px 45px;
  background: white;
  box-shadow: 0 15px 35px rgba(35, 50, 40, .08);
}

.paper-heading {
  margin-bottom: 20px;
  color: #545a56;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .03em;
}

.paper-line {
  width: 80%;
  height: 3px;
  margin-bottom: 8px;
  background: #e6eae7;
  border-radius: 4px;
}

.paper-line.long {
  width: 95%;
}

.paper-line.medium {
  width: 55%;
}

.paper-space {
  height: 30px;
}

.signature-area {
  position: absolute;
  right: 35px;
  bottom: 30px;
  width: 190px;
}

.signature-area small {
  color: #a0a5a1;
  font-size: 7px;
}

.signature-drawing {
  display: block;
  width: 100%;
  height: 60px;
  overflow: visible;
}

.signature-drawing-path {
  fill: none;
  stroke: #29312c;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 800;
  stroke-dashoffset: 800;
  animation: signatureDraw 2.5s cubic-bezier(.65, 0, .35, 1) .6s forwards;
}

.signature-name {
  color: #666d68;
  font-size: 8px;
}

.signature-name span {
  margin-left: 5px;
  color: #a2a8a4;
  font-size: 6px;
}

.signed-result {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 22px 22px;
  padding: 13px;
  border-radius: 9px;
  background: #ecf9f2;
  border: 1px solid #d8eee1;
}

.signed-result-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  border-radius: 50%;
  background: #4bae7c;
  color: #fff;
  font-size: 11px;
}

.signed-result small {
  display: block;
  color: #76a18b;
  font-size: 7px;
}

.signed-result strong {
  display: block;
  margin-top: 2px;
  color: #49725c;
  font-size: 9px;
}

.signed-result>span {
  margin-left: auto;
  color: #4baa79;
  font-size: 8px;
  font-weight: 700;
}

@keyframes signatureDraw {
  to {
    stroke-dashoffset: 0;
  }
}


/* ========================================================= 08 · DEADLINES
========================================================= */

.deadlines-section {
  padding: 150px 0;
  background: linear-gradient(135deg, #fff9f2, #fffdf9);
}

.section-eyebrow-orange {
  color: #c78a4c;
}

.section-eyebrow-orange span {
  background: #dc9b59;
}

.deadlines-section .legal-section-title span {
  color: #c58b50;
}

.deadline-highlight {
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 460px;
  margin-top: 30px;
  padding: 15px;
  border: 1px solid #f2dfca;
  border-radius: 11px;
  background: #fffaf4;
}

.deadline-highlight-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #fff0df;
  color: #c88949;
  font-size: 14px;
  font-weight: 700;
}

.deadline-highlight small {
  display: block;
  color: #bca184;
  font-size: 7px;
}

.deadline-highlight strong {
  display: block;
  margin-top: 3px;
  color: #695b4d;
  font-size: 10px;
}

.deadline-highlight span {
  display: block;
  margin-top: 3px;
  color: #a99683;
  font-size: 8px;
}


/* ========================================================= 09 · ACTIVITY
========================================================= */

.activity-section {
  padding: 145px 0;
  background: radial-gradient(circle at 80% 30%, rgba(93, 101, 180, .18), transparent 35%), #20222b;
}

.section-eyebrow-light {
  color: #aab0d9;
}

.section-eyebrow-light span {
  background: #8f9be0;
}

.activity-section .legal-section-title {
  color: #fff;
}

.activity-section .legal-section-title span {
  color: #a7a0ff;
}

.activity-section .legal-section-description {
  color: #aeb0ba;
}


/* TIMELINE */

.activity-timeline {
  position: relative;
  padding-left: 45px;
}

.timeline-line {
  position: absolute;
  left: 15px;
  top: 18px;
  bottom: 45px;
  width: 1px;
  background: linear-gradient(to bottom, rgba(125, 136, 205, .65), rgba(125, 136, 205, .08));
}

.timeline-item {
  position: relative;
  display: flex;
  margin-bottom: 25px;
}

.timeline-marker {
  position: absolute;
  left: -45px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 31px;
  height: 31px;
  border-radius: 9px;
  border: 1px solid rgba(255, 255, 255, .08);
  font-size: 13px;
  font-weight: 700;
  background-color: #b4a0cb;
  color: #4a2f76;
}

.timeline-marker.green {
  background: #203a32;
  color: #61c598;
}

.timeline-marker.blue {
  background: #203344;
  color: #61a8d8;
}

.timeline-marker.orange {
  background: #3c3127;
  color: #d89c61;
}

.timeline-marker.purple {
  background: #302b46;
  color: #a69bf1;
}

.timeline-content {
  width: 100%;
  padding: 15px 17px;
  border: 1px solid rgba(255, 255, 255, .07);
  border-radius: 10px;
  background: rgba(255, 255, 255, .035);
}

.timeline-content>span {
  display: block;
  color: #777b88;
  font-size: 12px;
  letter-spacing: .08em;
}

.timeline-content strong {
  display: block;
  margin-top: 5px;
  color: #e7e8ec;
}

.timeline-content p {
  margin: 3px 0 0;
  color: #858994;
}

.timeline-complete {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 3px;
  color: #61b98d;
  font-size: 9px;
  font-weight: 600;
}

.timeline-complete span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: #213c33;
}

/* ========================================================= 10 · FINAL CTA
========================================================= */

.legal-final-cta {
  position: relative;
  overflow: hidden;
  padding: 155px 0 110px;
  background: linear-gradient(120deg, #f3f0ff 0%, #edf6ff 52%, #f4fbf8 100%);
}

.final-cta-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.final-orb-1 {
  width: 420px;
  height: 420px;
  left: -220px;
  top: 20px;
  background: rgba(123, 105, 235, .10);
  filter: blur(10px);
}

.final-orb-2 {
  width: 380px;
  height: 380px;
  right: -190px;
  bottom: -100px;
  background: rgba(78, 166, 210, .10);
  filter: blur(15px);
}

.final-cta-content {
  position: relative;
  max-width: 850px;
  margin: auto;
  z-index: 2;
}

.final-eyebrow {
  color: #6e65b9;
}

.final-eyebrow span {
  background: #7c70df;
}

.final-cta-content h2 {
  margin: 20px 0;
  color: #24232b;
  font-size: clamp(3rem, 6vw, 5.6rem);
  line-height: .98;
  letter-spacing: -.055em;
}

.final-cta-content h2 span {
  background: linear-gradient(120deg, #6758e7, #579ad7);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.final-cta-content>p {
  max-width: 650px;
  margin: 0 auto;
  color: #73747d;
  font-size: 1.15rem;
  line-height: 1.6;
}

.final-cta-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 32px;
}

.final-primary-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 14px 22px;
  border-radius: 11px;
  box-shadow: 0 15px 35px rgba(91, 77, 210, .20);
}

.final-demo-btn {
  padding: 14px 22px;
  border: 1px solid rgba(80, 80, 100, .13);
  border-radius: 11px;
  background: rgba(255, 255, 255, .7);
  color: #5e5d65;
}

.final-cta-trust {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 20px;
  color: #92939a;
  font-size: 9px;
}

.final-flow {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 850px;
  margin: 90px auto 0;
  padding: 25px 35px;
  border: 1px solid rgba(70, 65, 110, .08);
  border-radius: 18px;
  background: rgba(255, 255, 255, .55);
  backdrop-filter: blur(12px);
  box-shadow: 0 20px 50px rgba(60, 55, 110, .06);
}

.final-flow-item {
  min-width: 115px;
  text-align: center;
}

.final-flow-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: auto;
  border-radius: 10px;
  font-size: 8px;
  font-weight: 700;
}

.final-flow-icon.purple {
  background: #eeebff;
  color: #6b5bd8;
}

.final-flow-icon.blue {
  background: #e8f5ff;
  color: #428fcf;
}

.final-flow-icon.orange {
  background: #fff0df;
  color: #c78b4e;
}

.final-flow-icon.green {
  background: #e7f8ef;
  color: #43a575;
}

.final-flow-item strong {
  display: block;
  margin-top: 8px;
  color: #4c4b54;
  font-size: 10px;
}

.final-flow-item small {
  display: block;
  margin-top: 2px;
  color: #9a9aa1;
  font-size: 8px;
}

.final-flow-line {
  width: 55px;
  height: 1px;
  margin: 0 8px;
  background: linear-gradient(90deg, #ddd9ef, #d4ddec);
}


/* MOBILE */

@media (max-width: 767px) {

  .legal-connected-section,
  .matters-section,
  .notifications-section,
  .signature-section,
  .deadlines-section,
  .activity-section {
    padding: 90px 0;
  }

  .connected-workspace {
    min-height: 430px;
  }

  .connected-matter {
    width: 240px;
  }

  .connected-node {
    width: 135px;
  }

  .node-document {
    left: 15px;
    top: 35px;
  }

  .node-notification {
    right: 15px;
    top: 35px;
  }

  .node-calendar {
    right: 15px;
    bottom: 30px;
  }

  .matter-preview-content {
    min-height: 320px;
  }

  .preview-sidebar {
    display: none;
  }

  .preview-overview {
    grid-template-columns: 1fr 1fr;
  }

  .overview-card.large {
    grid-column: 1 / -1;
  }

  .notification-scene {
    min-height: 420px;
  }

  .notification-arrival {
    left: 20px;
    right: 20px;
  }

  .notification-processing {
    left: 35px;
    right: 35px;
  }

  .notification-result {
    left: 45px;
    right: 20px;
  }

  .signature-document {
    padding: 18px;
  }

  .signature-paper {
    min-height: 340px;
    padding: 25px;
  }

  .signature-area {
    right: 20px;
  }

  .final-cta-actions {
    flex-direction: column;
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
  }

  .final-flow {
    overflow-x: auto;
    justify-content: flex-start;
  }

}