/* "How it works" workflow section + plan matrix. Shared by index.html and
   how-it-works.html. Prefix wf-. Uses the tokens defined in each page's :root. */
.wf{--wf-red:#C0392B;--wf-red-soft:#FBEAE7;--wf-tile:#EDEFEE;--wf-on-green:#7EDBAB;--wf-on-amber:#F0B37E;--wf-on-red:#FF9C92;--wf-label:#B7C6D8;}
.wf-head{display:grid;gap:12px;max-width:720px;margin-bottom:36px;}
.wf-head h2{font-size:clamp(28px,4vw,38px);line-height:1.1;}
.wf-sub{font-size:17px;color:var(--slate);max-width:62ch;margin:0;}

/* "Example data" badge: always visible, never a tooltip. Light variant sits on
   the strip's specimen tiles; the band variant (inside .wf-band) on navy. */
.wf-example{display:inline-block;flex:none;font:600 10px/1 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:#8A4B10;background:var(--amber-soft);border:1px solid #E5C9A4;border-radius:999px;padding:4px 8px;}
.wf-specimen>.wf-example{justify-self:start;}
.wf-band .wf-example{color:#E6EDF5;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);}
.wf-capwrap{display:grid;gap:8px;justify-items:start;}

/* three-step strip */
.wf-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.wf-step{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:grid;gap:14px;align-content:start;}
.wf-step:not(:last-child)::after{content:"";position:absolute;top:50%;right:-17px;width:14px;height:14px;border-top:3px solid var(--green);border-right:3px solid var(--green);transform:translateY(-50%) rotate(45deg);}
.wf-tag{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--green);}
.wf-step h3{font-size:21px;line-height:1.15;}
.wf-step p{margin:0;color:var(--slate);font-size:15px;}
.wf-specimen{background:var(--wf-tile);border-radius:10px;padding:12px;display:grid;gap:8px;min-width:0;}
.wf-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border-radius:8px;padding:9px 11px;min-width:0;}
.wf-row .who{display:grid;min-width:0;}
.wf-row b{font-size:13px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wf-row .d{font-size:12px;color:var(--slate);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wf-pill{flex:none;font-size:11px;font-weight:600;line-height:1;padding:5px 9px;border-radius:999px;}
.wf-pill.ok{background:var(--green-soft);color:var(--green);}
.wf-pill.soon{background:var(--amber-soft);color:var(--amber);}
.wf-pill.bad{background:var(--wf-red-soft);color:var(--wf-red);}
.wf-mail{background:var(--card);border-radius:8px;padding:11px;display:grid;gap:5px;font-size:12px;color:var(--slate);}
.wf-mail b{font-size:13px;line-height:1.3;color:var(--ink);}
.wf-mail .btn-fake{justify-self:start;margin-top:3px;background:var(--navy);color:#fff;font-size:11px;font-weight:600;line-height:1;padding:7px 10px;border-radius:7px;}
.wf-scoreline{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:8px;padding:10px 12px;}
.wf-ring-s{--p:94;width:44px;height:44px;border-radius:50%;flex:none;display:grid;place-items:center;position:relative;background:conic-gradient(var(--green) 0 calc(var(--p)*1%),var(--line) 0);}
.wf-ring-s::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--card);}
.wf-ring-s i{position:relative;font:700 14px/1 'Space Grotesk',sans-serif;font-style:normal;color:var(--navy);}
.wf-scoreline b{font:600 14px/1.2 'Space Grotesk',sans-serif;display:block;color:var(--navy);}
.wf-scoreline span{font-size:12px;color:var(--slate);}

/* walkthrough on a navy band */
.wf-band{position:relative;overflow:hidden;background:var(--navy);color:#fff;border-radius:20px;padding:clamp(20px,4vw,36px);margin-top:36px;}
.wf-band::before{content:"";position:absolute;left:0;top:0;width:520px;height:260px;background:radial-gradient(60% 100% at 10% 0,rgba(30,143,85,.28),transparent 70%);pointer-events:none;}
.wf-band>*{position:relative;}
.wf-band-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;}
.wf-band-head h3{color:#fff;font-size:clamp(22px,3vw,28px);line-height:1.15;max-width:26ch;}
.wf-band-head p{color:var(--wf-label);font-size:14px;margin:6px 0 0;max-width:52ch;}
.wf-seg{display:inline-flex;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:3px;gap:3px;background:rgba(255,255,255,.06);}
.wf-seg button{background:none;border:0;border-radius:7px;padding:8px 14px;font:500 13px/1 'Inter',sans-serif;color:var(--wf-label);cursor:pointer;}
.wf-seg button[aria-pressed="true"]{background:#fff;color:var(--navy);font-weight:600;}
.wf-picker{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:22px;}
.wf-picker .pl{font:600 11px/1 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--wf-label);margin-right:4px;}
.wf-picker button{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:8px 14px;font:500 13px/1 'Inter',sans-serif;color:#E6EDF5;cursor:pointer;}
.wf-picker button[aria-pressed="true"]{background:#fff;color:var(--navy);border-color:#fff;font-weight:600;}
.wf-picker button em{font-style:normal;font:600 10px/1 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;opacity:.75;margin-left:4px;}
.wf-walk{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:28px;align-items:start;}
.wf-stages{display:grid;gap:8px;margin:0;padding:0;list-style:none;}
.wf-stages button{width:100%;text-align:left;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:12px;color:#fff;font:inherit;cursor:pointer;}
.wf-stages button:hover{border-color:rgba(255,255,255,.45);}
.wf-stages .n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:600 12px/1 'IBM Plex Mono',monospace;border:1px solid rgba(255,255,255,.2);color:var(--wf-label);}
.wf-stages b{display:block;font:600 14px/1.25 'Space Grotesk',sans-serif;}
.wf-stages small{display:block;color:var(--wf-label);font-size:12px;line-height:1.4;margin-top:2px;}
.wf-stages [aria-current="step"]{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.5);}
.wf-stages [aria-current="step"] .n{background:var(--wf-on-green);border-color:var(--wf-on-green);color:var(--navy);}
.wf-stage-view{display:grid;gap:14px;min-width:0;}
.wf-caption{font:500 15px/1.5 'Inter',sans-serif;color:#E6EDF5;max-width:60ch;min-height:4.5em;margin:0;}
.wf-frost{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.2);}
.wf-lbl{font:600 11px/1 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--wf-label);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.wf-drv{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.wf-av{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center;font:600 14px/1 'Space Grotesk',sans-serif;}
.wf-drv .who{flex:1 1 160px;min-width:0;}
.wf-drv b{display:block;font-size:15px;line-height:1.25;}
.wf-drv .doc{color:var(--wf-label);font-size:13px;}
.wf-opill{font:600 12px/1 'Inter',sans-serif;padding:7px 12px;border-radius:999px;border:1px solid;}
.wf-opill.ok{color:var(--wf-on-green);border-color:rgba(126,219,171,.5);background:rgba(126,219,171,.12);}
.wf-opill.soon{color:var(--wf-on-amber);border-color:rgba(240,179,126,.5);background:rgba(240,179,126,.12);}
.wf-opill.bad{color:var(--wf-on-red);border-color:rgba(255,156,146,.5);background:rgba(255,156,146,.14);}
.wf-two{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:14px;}
.wf-email{background:#fff;border-radius:10px;padding:14px;display:grid;gap:6px;font-size:13px;color:var(--slate);}
.wf-email b{font-size:14px;line-height:1.3;color:var(--ink);}
.wf-email .btn-fake{justify-self:start;margin-top:4px;background:var(--navy);color:#fff;font-size:12px;font-weight:600;line-height:1;padding:9px 12px;border-radius:8px;}
.wf-email.off{background:transparent;border:1.5px dashed rgba(255,255,255,.2);color:var(--wf-label);place-content:center;text-align:center;min-height:132px;}
.wf-scorecard{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.wf-ring{--p:94;width:60px;height:60px;border-radius:50%;flex:none;display:grid;place-items:center;position:relative;background:conic-gradient(var(--wf-on-green) 0 calc(var(--p)*1%),rgba(255,255,255,.1) 0);}
.wf-ring::before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--navy);}
.wf-ring i{position:relative;font:700 18px/1 'Space Grotesk',sans-serif;font-style:normal;color:#fff;}
.wf-scorecard .b{font:600 16px/1.3 'Space Grotesk',sans-serif;}
.wf-scorecard .s{font-size:12px;color:var(--wf-label);}
.wf-chip{margin-top:12px;display:inline-block;border:1px solid rgba(255,156,146,.6);background:rgba(255,156,146,.18);border-radius:999px;padding:5px 11px;font:600 12px/1 'Inter',sans-serif;}
.wf-chip[hidden]{display:none;}
.wf-nav{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.wf-nav .ctl{display:flex;gap:8px;}
.wf-nav button{background:#fff;color:var(--navy);border:0;border-radius:9px;padding:10px 16px;font:600 13px/1 'Inter',sans-serif;cursor:pointer;}
.wf-nav button.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.2);}
.wf-nav button:disabled{opacity:.4;cursor:default;}
.wf-nav small{color:var(--wf-label);font:500 11px/1.4 'IBM Plex Mono',monospace;}
.wf-band a:focus-visible,.wf-band button:focus-visible{outline:2px solid #fff;outline-offset:3px;}
.wf-foot{margin:16px 0 0;font:500 12px/1.5 'IBM Plex Mono',monospace;color:var(--slate);max-width:90ch;}

/* nine areas strip (inside the band) */
.wf-areas{margin-top:22px;border-top:1px solid rgba(255,255,255,.2);padding-top:18px;}
.wf-areas .al{font:600 11px/1.4 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--wf-label);margin-bottom:12px;display:block;}
.wf-achips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;}
.wf-achip{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:7px 12px;font:500 12px/1.2 'Inter',sans-serif;color:#C9D6E4;display:inline-flex;gap:8px;align-items:center;}
.wf-achip em{font-style:normal;font:600 10px/1 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--wf-label);}
.wf-achip.on{background:rgba(126,219,171,.16);border-color:var(--wf-on-green);color:#fff;font-weight:600;}
.wf-achip.on em{color:var(--wf-on-green);}
.wf-areas .note{margin:14px 0 0;font-size:13px;color:var(--wf-label);max-width:70ch;}
.wf-areas .note a{color:#fff;text-decoration:underline;text-underline-offset:3px;font-weight:600;}

/* plan matrix */
.wf-matrix-wrap{position:relative;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);margin-top:28px;}
.wf-matrix-wrap:focus-visible{outline:2px solid var(--green);outline-offset:3px;}
.wf-matrix{width:100%;min-width:860px;border-collapse:collapse;font-size:14px;color:var(--ink);}
.wf-matrix th,.wf-matrix td{padding:14px 16px;border-bottom:1px solid #E6EAE7;text-align:left;vertical-align:top;font-weight:400;}
.wf-matrix thead th{background:#F7F9F7;font-weight:700;color:var(--navy);vertical-align:bottom;}
.wf-matrix thead th small{display:block;font-weight:500;font-size:12px;color:var(--slate);margin-top:2px;}
.wf-matrix tbody th[scope="row"]{width:26%;font-weight:600;color:var(--navy);}
.wf-matrix tbody th small{display:block;font-weight:400;font-size:12.5px;color:var(--slate);margin-top:3px;line-height:1.4;}
.wf-matrix td{width:18.5%;}
.wf-matrix td.in{background:var(--green-soft);}
.wf-matrix td.in.first{box-shadow:inset 3px 0 0 var(--green);}
.wf-matrix td .y{display:block;font-weight:700;color:var(--green);}
.wf-matrix td .t{display:block;font-size:12.5px;color:var(--ink);margin-top:3px;line-height:1.4;}
.wf-matrix td.out{color:#98A2B3;}
.wf-matrix tfoot th,.wf-matrix tfoot td{background:#F7F9F7;border-bottom:0;font-weight:700;color:var(--navy);}
.wf-matrix tfoot td{font:700 20px/1.1 'Space Grotesk',sans-serif;}
.wf-matrix tfoot td small{display:block;font:500 12px/1.3 'Inter',sans-serif;color:var(--slate);margin-top:3px;}
.wf-matrix-note{margin:16px 0 0;color:var(--slate);font-size:14.5px;max-width:78ch;}
.wf-matrix-note a{color:var(--navy);font-weight:600;text-decoration:underline;}
.wf-more{display:inline-block;margin-top:22px;font-weight:600;color:var(--navy);text-decoration:underline;text-underline-offset:3px;}
.wf-cta{margin-top:56px;background:var(--navy);color:#fff;border-radius:18px;padding:36px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.wf-cta h3{font-size:26px;color:#fff;}
.wf-cta p{color:#AFC0D1;font-size:15px;margin:8px 0 0;max-width:52ch;}
.wf-cta .btn{background:#fff;color:var(--navy);}

@media (max-width:900px){
  .wf-steps{grid-template-columns:1fr;}
  .wf-step:not(:last-child)::after{top:auto;bottom:-17px;right:auto;left:50%;transform:translateX(-50%) rotate(135deg);}
  .wf-walk{grid-template-columns:1fr;}
  .wf-stages{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:600px){
  .wf-two{grid-template-columns:1fr;}
  .wf-stages{grid-template-columns:1fr;}
  .wf-seg{width:100%;}.wf-seg button{flex:1;}
  .wf-cta{padding:28px 22px;}
}
@media (prefers-reduced-motion:no-preference){ .wf-ring{transition:background .4s;} }

/* The homepage's own CSS smooth-scrolls anchor jumps with no reduced-motion
   override (the legal pages and /how-it-works have one); this file loads on
   both pages, so cover it here. */
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }

/* "On every plan" strip on the homepage: the Audit Readiness Score links to the plan matrix. */
.pr-every a{text-decoration:underline;text-underline-offset:3px;font-weight:600;}
