/* ---------- For Law Enforcement page specific ---------- */
  .page-hero{
    background:var(--gen-frost);
    color:var(--gen-navy);
    padding:64px 0 56px;
    border-bottom:1px solid var(--gen-navy-line);
  }
  .page-hero h1{
    font-family:var(--gen-font);
    font-weight:700;
    font-size:clamp(2.1rem,3.8vw,3.2rem);
    line-height:1.08;
    max-width:20ch;
    color:var(--gen-navy);
  }
  .page-hero .subhead{
    margin-top:14px;
    font-size:14px;
    font-style:italic;
    color:var(--gen-teal-text);
  }
  .page-hero p.lede{
    margin-top:22px;
    max-width:66ch;
    color:var(--gen-text-dim);
    font-size:16px;
    line-height:1.7;
  }
  .free-note{
    display:inline-block;
    margin-top:16px;
    font-size:13.5px;
    font-weight:700;
    color:var(--gen-teal-text);
  }

  .usecase-row{ margin-top:22px; }
  .usecase-line{
    font-size:15px;
    color:var(--gen-navy);
    line-height:1.6;
    max-width:64ch;
  }
  .usecase-line strong{ font-weight:700; }

  /* Visual table for tooling / services categories */
  /* Stacked blocks on a phone — a three-column table cannot fit. The header
     row is meaningless once cells stack, so it is hidden until the real
     table layout comes back at 700px. */
  .info-table,
  .info-table tbody,
  .info-table tr,
  .info-table th,
  .info-table td{ display:block; }
  .info-table{
    width:100%;
    border-collapse:collapse;
    margin-top:20px;
  }
  .info-table thead{ display:none; }
  .info-table tr{
    padding:16px 0;
    border-bottom:1px solid var(--gen-navy-line);
  }
  .info-table th{
    text-align:left;
    font-size:12.5px;
    font-style:italic;
    color:var(--gen-teal-text);
    font-weight:400;
  }
  .info-table td{
    padding:4px 0;
    vertical-align:top;
    font-size:14.5px;
    color:var(--gen-text-dim);
    line-height:1.6;
  }
  .info-table td.cat{
    font-weight:700;
    color:var(--gen-navy);
  }
  .info-table td.tools{
    color:var(--gen-navy);
    font-weight:600;
  }
  @media (min-width:700px){
    .info-table{ display:table; }
    .info-table thead{ display:table-header-group; }
    .info-table tbody{ display:table-row-group; }
    .info-table tr{ display:table-row; padding:0; border-bottom:none; }
    .info-table th{
      display:table-cell;
      padding:10px 20px 10px 0;
      border-bottom:2px solid var(--gen-navy-line);
    }
    .info-table td{
      display:table-cell;
      padding:18px 20px 18px 0;
      border-bottom:1px solid var(--gen-navy-line);
    }
    .info-table td.cat{ width:220px; }
  }

  /* Workflow diagram — light band, no heavy fill */
  .workflow-band{
    background:var(--gen-frost-2);
    border-top:1px solid var(--gen-navy-line);
    border-bottom:1px solid var(--gen-navy-line);
    padding:56px 0;
  }
  /* A vertical list of steps on a phone; the horizontal timeline with its
     connecting rule only appears once there is room for it. */
  .workflow-row{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:22px;
    margin-top:32px;
  }
  .workflow-step{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:14px;
    flex:1;
    position:relative;
  }
  .workflow-node{
    width:14px; height:14px;
    border-radius:50%;
    background:var(--gen-gold);
    border:3px solid var(--gen-frost-2);
    outline:1.5px solid var(--gen-navy);
    flex-shrink:0;
    z-index:2;
  }
  .workflow-connector{ display:none; }
  .workflow-label{
    font-size:12px;
    font-weight:700;
    color:var(--gen-navy);
    line-height:1.4;
  }
  @media (min-width:700px){
    .workflow-row{ flex-direction:row; justify-content:space-between; gap:6px; }
    .workflow-step{ flex-direction:column; align-items:center; text-align:center; gap:0; }
    .workflow-node{ margin-bottom:14px; }
    .workflow-connector{
      display:block;
      position:absolute;
      top:6px;
      left:50%;
      width:100%;
      height:1px;
      background: var(--gen-navy-line);
      z-index:1;
    }
    .workflow-step:last-child .workflow-connector{ display:none; }
    .workflow-label{ max-width:12ch; }
  }

  .services-copy p{
    color:var(--gen-text-dim);
    font-size:15.5px;
    line-height:1.7;
    max-width:70ch;
    margin-top:14px;
    margin-bottom:14px;
  }

  .travel-callout{
    background:var(--gen-white);
    border:1px solid var(--gen-navy-line);
    border-radius:3px;
    padding:34px 36px;
    margin-top:28px;
  }
  .travel-callout p{
    color:var(--gen-text-dim);
    font-size:15px;
    line-height:1.7;
    max-width:64ch;
    margin-bottom:20px;
  }
