/* ============================================================
   WHO WE SERVE (proposal 6 Oct 2026, Tracy Markum's note: the site read as law-enforcement only)
   - Home: .serve tile grid, every market in one view, each tile opens its Solutions section
   - Solutions: .sol-index jump list under the hero + .sol-group headers for the two groups
   Shapes by job: tiles and jump links are rectangles (links), never pills (pills are status only).
   ============================================================ */

/* ---- Home: who we serve ---- */
.serve{padding-top:clamp(40px,7vh,90px);}
.serve-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:48px;
  margin-inline:min(0px, calc(86px - 6vw));}   /* a .band narrows on wide windows (767 px at 3440): the tiles keep ~1007 px, the copy stays aligned */
.serve-tile{position:relative;display:block;aspect-ratio:4/3;border-radius:14px;overflow:hidden;
  border:1px solid var(--line);background:var(--bg2);color:var(--ink);text-decoration:none;
  transition:border-color .3s ease,transform .3s ease;}
.serve-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.serve-tile::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(2,4,6,0) 22%,rgba(2,4,6,.55) 55%,rgba(2,4,6,.94) 100%);}
.serve-tile .st{position:absolute;left:14px;right:14px;bottom:12px;z-index:1;text-shadow:0 1px 10px rgba(0,0,0,.65);}
.serve-tile .st-k{display:block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:9.5px;
  letter-spacing:.2em;color:var(--teal);font-weight:600;text-transform:uppercase;margin-bottom:4px;}
.serve-tile .st-n{display:block;font-family:"Space Grotesk","Inter",sans-serif;font-weight:600;
  font-size:1.02rem;line-height:1.2;text-wrap:balance;}
.serve-tile:hover,.serve-tile:focus-visible{border-color:rgba(52,198,212,.55);transform:translateY(-3px);}
.serve-tile:hover img,.serve-tile:focus-visible img{transform:scale(1.04);}
.serve-tile:focus-visible{outline:2px solid var(--teal);outline-offset:3px;}
@media (max-width:880px){.serve-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:36px;margin-inline:0;}
  .serve-tile{aspect-ratio:3/2;border-radius:12px;}.serve-tile .st{left:11px;right:11px;bottom:9px;}
  .serve-tile .st-n{font-size:.95rem;}}

/* ---- Solutions: jump list under the hero ---- */
.sol-index{max-width:1180px;margin:0 auto;padding:clamp(56px,9vh,100px) 6vw 0;
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(24px,4vw,56px);}
@media (min-width:881px){.sol-index > div:first-child .si-list{flex-wrap:nowrap;}}
.si-k{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.32em;color:var(--teal);
  font-weight:600;margin-bottom:14px;}
.si-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;}
.si-list a{display:block;padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg2);
  color:var(--ink);text-decoration:none;font-size:.95rem;white-space:nowrap;transition:border-color .25s ease,color .25s ease;}
.si-list a:hover,.si-list a:focus-visible{border-color:rgba(52,198,212,.55);color:var(--teal);}
@media (max-width:880px){.sol-index{grid-template-columns:1fr;gap:26px;}.si-list a{font-size:.9rem;padding:8px 12px;}}

/* ---- Solutions: group headers ---- */
.sol-group{max-width:1180px;margin:0 auto;padding:clamp(80px,12vh,150px) 6vw 0;}
.sol-group .sg-inner{border-top:1px solid var(--line);padding-top:clamp(28px,4vh,44px);}
.sg-k{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;letter-spacing:.38em;color:var(--teal);font-weight:600;}
.sg-title{font-family:"Space Grotesk","Inter",sans-serif;font-weight:700;font-size:clamp(2rem,4.4vw,3.4rem);
  line-height:1.08;letter-spacing:-.02em;margin-top:16px;max-width:20ch;}
.sg-sub{color:var(--muted);font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.6;margin-top:16px;max-width:60ch;}
.sol-group + .cat-band{padding-top:clamp(44px,7vh,80px);}

/* ---- Solutions: the cannabis section's compliance-consultation note (round 2) ---- */
.sol-copy .lead + .sol-out{margin-top:18px;}
