/*
Theme Name: IgniteIt Cybersecurity
Theme URI: https://igniteitcybersecurity.com
Author: IgniteIt
Description: Trade publication theme for IgniteIt Cybersecurity — business intelligence for the cybersecurity economy. Part of the IgniteIt network (cloned from the IgniteIt Wellness theme v1.2.2, Oct 2026).
Version: 1.3.2
Requires at least: 6.4
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: casenotes
*/

/* ============================================================
TOKENS
Brand: Ignite orange #FD7E0D and ink #1B1B1B, from the logo.
Oct 2026: type and layout now match igniteit.com (Raleway headlines, Inter UI,
JetBrains Mono labels, white paper) so every IgniteIt vertical reads as one network.
Every beat owns a colour. The colours carry meaning (what kind of
story this is), so they are used for labels, rules and markers,
never as decoration on body text.
============================================================ */
:root{
--ink:#16181D; --slate:#454B55; --mute:#6E7682;
--rule:#E7E5E2; --rule-2:#CFCAC2;
--paper:#FFFFFF; --card:#FFFFFF; --card-2:#F6F5F3;
--ember:#1F6FEB; --ember-ink:#1554C0; --ember-wash:#E8F0FE;
--flare:#D6336C; --flare-wash:#FDE8EF;
--up:#12805C; --down:#C2312A;

/* beat colours: [solid, text-safe, wash] */
--b-capital:#16A34A;  --b-capital-ink:#15803D;  --b-capital-wash:#E7F6EC;
--b-regulation:#D6336C; --b-regulation-ink:#B0234F; --b-regulation-wash:#FDE8EF;
--b-economics:#7C3AED; --b-economics-ink:#6227CF; --b-economics-wash:#F1EAFE;
--b-supply:#0E9F8E;  --b-supply-ink:#087A6D;  --b-supply-wash:#E3F6F3;
--b-demand:#FD7E0D;  --b-demand-ink:#B44D00;  --b-demand-wash:#FFF0E2;
--b-press:#6B7280;   --b-press-ink:#4B5260;   --b-press-wash:#EEF0F3;

--spectrum:linear-gradient(90deg,#FD7E0D 0%,#D6336C 30%,#7C3AED 58%,#2F6FEB 80%,#0E9F8E 100%);
--glow:linear-gradient(135deg,#1F6FEB 0%,#1554C0 100%);

--font-display:'Raleway',system-ui,-apple-system,'Segoe UI',sans-serif;
--font-read:'Newsreader',Georgia,'Times New Roman',serif;
--font-ui:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  /* network accent: Cybersecurity #1F6FEB (igniteit.com red #ef4036, Wellness orange #FD7E0D) */
  --accent:#1F6FEB; --accent-strong:#1554C0;
--maxw:1240px;
--gutter:24px;
--radius:10px;
color-scheme:light;
}
/* Light is the brand default and does not follow the OS. Dark is opt-in via
the Theme toggle. */
:root[data-theme="dark"]{
--ink:#F2F3F5; --slate:#B3B9C2; --mute:#8A929D;
--rule:#2A2E35; --rule-2:#3A3F48;
--paper:#0F1114; --card:#171A1F; --card-2:#1F232A;
--ember:#FF8A24; --ember-ink:#FFA552; --ember-wash:#33200D;
--flare-wash:#3A1624;
--up:#3FCF95; --down:#FF6B61;
--b-capital-ink:#7FA8FF;  --b-capital-wash:#16233F;
--b-regulation-ink:#FF7FA6; --b-regulation-wash:#3A1624;
--b-economics-ink:#B795FF; --b-economics-wash:#26193F;
--b-supply-ink:#4FD6C3;  --b-supply-wash:#0F2E2A;
--b-demand-ink:#FFA552;  --b-demand-wash:#33200D;
--b-press-ink:#B3B9C2;   --b-press-wash:#23272E;
color-scheme:dark;
}

/* ============================================================
BASE
============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
font:400 15px/1.55 var(--font-ui);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,h4{margin:0;text-wrap:balance;font-family:var(--font-display);font-weight:700;letter-spacing:-.01em}
p{margin:0 0 1em}
.num,table{font-variant-numeric:tabular-nums}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--ember);outline-offset:2px}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:var(--gutter);top:8px;z-index:100;background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:6px}
::selection{background:var(--ember);color:#fff}

/* shared type roles */
.eyebrow{font:800 10px/1 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ember-ink)}
.deck{font:400 clamp(15px,2vw,17.5px)/1.5 var(--font-read);color:var(--slate)}

/* Beat label: a coloured pill. The class beat-{slug} sets the colour. */
.beat-label{--c:var(--ember);--ci:var(--ember-ink);--cw:var(--ember-wash);
display:inline-flex;align-items:center;gap:6px;font:800 10px/1 var(--font-ui);letter-spacing:.13em;
text-transform:uppercase;color:var(--ci);background:var(--cw);padding:5px 9px 5px 8px;border-radius:999px;
text-decoration:none;white-space:nowrap}
.beat-label::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c);flex:none}
a.beat-label:hover{background:var(--c);color:#fff}
a.beat-label:hover::before{background:#fff}
.beat-capital{--c:var(--b-capital);--ci:var(--b-capital-ink);--cw:var(--b-capital-wash)}
.beat-regulation{--c:var(--b-regulation);--ci:var(--b-regulation-ink);--cw:var(--b-regulation-wash)}
.beat-market{--c:var(--b-economics);--ci:var(--b-economics-ink);--cw:var(--b-economics-wash)}
.beat-threats{--c:var(--b-supply);--ci:var(--b-supply-ink);--cw:var(--b-supply-wash)}
.beat-talent{--c:var(--b-demand);--ci:var(--b-demand-ink);--cw:var(--b-demand-wash)}
.beat-press-release{--c:var(--b-press);--ci:var(--b-press-ink);--cw:var(--b-press-wash)}

/* ============================================================
   NETWORK SHELL — matches igniteit.com (Oct 2026)
   network strip → sticky logo/menu bar → promo banner → tape → topics
   ============================================================ */
.ii-net{background:#141416;color:#C9C8CE;font:500 12px/1 var(--font-ui);letter-spacing:.02em}
.ii-net__in{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);height:32px;display:flex;align-items:center;
  gap:22px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.ii-net__in::-webkit-scrollbar{display:none}
.ii-net__lbl{font:600 10.5px/1 var(--font-mono);letter-spacing:.12em;color:#8E8D94;text-transform:uppercase}
.ii-net a{display:inline-flex;align-items:center;gap:7px;height:32px;border-bottom:2px solid transparent;
  color:#E8E7EA;text-decoration:none}
.ii-net a:hover,.ii-net a.is-here{color:#fff;border-bottom-color:var(--accent)}
.ii-net i{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.ii-net__sp{margin-left:auto;color:#8E8D94}

.masthead{background:#fff;position:sticky;top:0;z-index:50;border-bottom:1px solid #ECEBEA;
  box-shadow:0 1px 10px rgba(20,20,22,.04)}
.admin-bar .masthead{top:32px}
@media (max-width:782px){.admin-bar .masthead{top:0}}
.masthead__in{display:flex;align-items:center;gap:20px;height:80px}
.brand{display:flex;align-items:center;flex:none;text-decoration:none}
.brand .logo{display:block;width:240px;height:auto}
.primary-nav{margin-left:20px;flex:1;min-width:0}
.pnav{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:20px}
.pnav > li{position:relative}
.pnav > li > a,.pnav .sub-toggle{display:inline-flex;align-items:center;gap:5px;font:400 14px/1 var(--font-ui);
  letter-spacing:.02em;text-transform:uppercase;color:#141416;text-decoration:none;white-space:nowrap;
  background:none;border:0;padding:8px 0;cursor:pointer}
.pnav > li > a:hover,.pnav .sub-toggle:hover,.pnav > li.is-current > a,.pnav > li.is-current > .sub-toggle{color:var(--accent-strong)}
.pnav .sub{list-style:none;margin:0;padding:8px;position:absolute;top:100%;left:-12px;min-width:210px;background:#fff;
  border:1px solid #ECEBEA;border-radius:10px;box-shadow:0 18px 40px -18px rgba(20,20,22,.35);
  opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s,visibility .15s}
.pnav .has-sub:hover .sub,.pnav .has-sub:focus-within .sub,.pnav .has-sub.is-open .sub{opacity:1;visibility:visible;transform:none}
.pnav .sub a{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:6px;font:500 14px/1.2 var(--font-ui);
  color:#141416;text-decoration:none}
.pnav .sub a:hover{background:#F6F5F3}
.pnav .sub a.dot::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c,var(--ember))}
.pnav .sub .beat-capital{--c:var(--b-capital)} .pnav .sub .beat-regulation{--c:var(--b-regulation)}
.pnav .sub .beat-market{--c:var(--b-economics)} .pnav .sub .beat-threats{--c:var(--b-supply)}
.pnav .sub .beat-talent{--c:var(--b-demand)}
.pnav .sub .sub-sep{margin-top:6px;padding-top:6px;border-top:1px solid #F0EFED}
.pnav .sub .sub-sep a.dot::before{background:var(--b-press,#6B7280)}

.masthead__tools{display:flex;align-items:center;gap:12px;flex:none;margin-left:auto}
.nl-btn{display:inline-flex;align-items:center;height:44px;padding:0 22px;border-radius:999px;background:var(--accent-strong);
  color:#fff;font:500 15px/1 var(--font-ui);text-decoration:none;white-space:nowrap;transition:filter .15s}
.nl-btn:hover{filter:brightness(1.08);color:#fff}
.hsearch{position:relative}
.search-form{position:relative;display:flex;align-items:center}
.search-form .search-ico{position:absolute;left:14px;color:#52525B;pointer-events:none}
.hsearch .search-field{font:400 15px/1 var(--font-ui);color:#141416;background:#F4F4F5;border:1px solid #E4E4E7;
  border-radius:999px;height:44px;padding:0 14px 0 38px;width:166px;transition:width .2s,border-color .15s,background .15s}
.hsearch .search-field::placeholder{color:#52525B}
.hsearch .search-field:focus,.hsearch.is-open .search-field{outline:none;border-color:var(--accent);background:#fff;width:230px}
.hsearch-panel{position:absolute;right:0;top:calc(100% + 8px);width:340px;background:#fff;border:1px solid #ECEBEA;
  border-radius:12px;box-shadow:0 24px 48px -20px rgba(20,20,22,.35);padding:14px;z-index:60}
.hs-lbl{font:600 10.5px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#6B6B72;margin:4px 2px 10px}
.hs-chips{display:flex;flex-wrap:wrap;gap:7px}
.hs-chip{--c:var(--ember);display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;border:1px solid #E4E4E7;
  font:500 13px/1 var(--font-ui);color:#141416;text-decoration:none;background:#fff}
.hs-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c)}
.hs-chip:hover,.hs-chip:focus{border-color:var(--c);background:#FAFAF9;outline:none}
.hs-chip.beat-capital{--c:var(--b-capital)} .hs-chip.beat-regulation{--c:var(--b-regulation)}
.hs-chip.beat-market{--c:var(--b-economics)} .hs-chip.beat-threats{--c:var(--b-supply)}
.hs-chip.beat-talent{--c:var(--b-demand)} .hs-chip.pt{--c:#9A9AA2}
.hs-go{display:flex;justify-content:space-between;width:100%;text-align:left;background:#F6F5F3;border:0;border-radius:8px;
  padding:11px 12px;margin-bottom:12px;font:500 14px/1.2 var(--font-ui);color:#141416;cursor:pointer}
.hs-go:hover,.hs-go:focus{background:var(--ember-wash);outline:none}
.nav-toggle{display:none;background:none;border:0;color:#141416;padding:8px;cursor:pointer}

/* promo banner — same slot as the Miami 2027 banner on igniteit.com */
.promo-bar{position:relative;overflow:hidden;border-bottom:4px solid #fff;
  background:linear-gradient(90deg,#FBEBDC 0%,#FAD3AE 38%,#F9A35C 64%,#F2762E 84%,#E0583A 100%)}
.promo-bar::before{content:"";position:absolute;left:24px;top:12px;width:58px;height:40px;opacity:.45;
  background-image:radial-gradient(#B44D00 1.2px,transparent 1.3px);background-size:8px 8px}
.promo-bar::after{content:"";position:absolute;right:12%;top:-34px;width:96px;height:96px;border-radius:50%;
  background:radial-gradient(circle at 40% 40%,#FFE3A3,#FFC14D 70%);box-shadow:0 0 40px rgba(255,193,77,.6)}
.promo-bar__in{position:relative;z-index:1;display:flex;align-items:center;gap:18px;min-height:66px;padding-block:9px}
.promo-bar__btn{order:-1;flex:none;display:inline-flex;align-items:center;gap:6px;background:#2A1A1F;color:#fff;
  padding:13px 24px;border-radius:999px;font:700 11.5px/1 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;
  text-decoration:none;margin-right:6px;box-shadow:0 6px 16px -8px rgba(42,26,31,.7)}
.promo-bar__btn:hover{background:#141416;color:#fff}
.promo-bar__kicker{font:600 10px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#3B2A22}
.promo-bar__title{font:800 19px/1 var(--font-display);color:#141416;white-space:nowrap}
.promo-bar__detail{font:500 13px/1.35 var(--font-ui);color:#2A1E18;min-width:0}

/* market tape — third-party widget, so we only control the frame around it */
.tape{background:#000;min-height:46px;overflow:hidden}
.tape .tradingview-widget-container{max-width:none}
.tape .tradingview-widget-copyright{font:400 10px/1 var(--font-ui);padding:0 var(--gutter) 4px;color:#8E8D94}
.tape .tradingview-widget-copyright a{color:#8E8D94;text-decoration:none}

/* topic row (practice types) — Industry Dive-style secondary nav */
.segrail{background:#fff;border-bottom:1px solid #ECEBEA}
.segrail .wrap{display:flex;justify-content:center;gap:4px 22px;overflow-x:auto;padding-block:11px;scrollbar-width:none}
.segrail .wrap::-webkit-scrollbar{display:none}
.seg{--c:var(--ember);display:inline-flex;align-items:center;gap:7px;font:500 13px/1 var(--font-ui);white-space:nowrap;
  padding:6px 0;border-bottom:2px solid transparent;color:#3F3F46;text-decoration:none;transition:color .15s,border-color .15s}
.seg::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c)}
.seg:hover{color:#141416;border-bottom-color:var(--c)}
.seg.is-active{color:#141416;font-weight:600;border-bottom-color:var(--accent)}
.segrail .seg:nth-child(7n+2){--c:var(--b-regulation)}
.segrail .seg:nth-child(7n+3){--c:var(--b-capital)}
.segrail .seg:nth-child(7n+4){--c:var(--b-supply)}
.segrail .seg:nth-child(7n+5){--c:var(--b-economics)}
.segrail .seg:nth-child(7n+6){--c:var(--b-demand)}
.segrail .seg:nth-child(7n+7){--c:var(--b-capital)}

/* ============================================================
   HOMEPAGE — igniteit.com model
   ============================================================ */
.wrap.home{padding-top:28px} /* .wrap.home: WordPress also puts .home on <body> */
.home-band{margin:0 0 24px;background:#F4F4F2;text-align:center;padding:6px 16px;
  font:700 clamp(24px,3.3vw,44px)/1.15 var(--font-display);letter-spacing:-.01em;color:#141416}
.home-band span{color:var(--accent-strong)}

.sec-title,.home-main .module-head,.home-full .module-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  font:500 28.8px/1.35 var(--font-display);letter-spacing:-.005em;text-transform:none;color:#141416;
  border:0;border-left:3px solid var(--accent);padding:0 0 0 12px;margin:0 0 22px}
.home-main .module-head > span:first-child::before,.home-full .module-head > span:first-child::before{display:none}
.home-main .module-head .meta,.home-full .module-head .meta,.home-full .module-head a{font:600 11px/1 var(--font-mono);
  letter-spacing:.1em;text-transform:uppercase;color:#6B6B72}

.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 306px;gap:0 40px;padding-bottom:6px;align-items:start}
.home-main{min-width:0}
.top-stories{margin-bottom:22px}
.top-split{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:32px;align-items:start}

.lead-card{min-width:0}
.lead-media-wrap{position:relative}
.lead-media-wrap .beat-label{position:absolute;left:14px;top:14px}
.lead-media{display:block;border-radius:10px;overflow:hidden;aspect-ratio:1200/630;background:#141416}
.lead-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s}
.lead-media:hover img{transform:scale(1.02)}
.lead-media.is-fallback{--c:var(--ember);position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:22px 24px;
  background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--c) 70%,transparent),transparent 60%),
    radial-gradient(80% 80% at 0% 100%,rgba(31,111,235,.35),transparent 60%),linear-gradient(135deg,#141416,#1A2030);text-decoration:none}
.lead-media.is-fallback::before{content:"";position:absolute;right:22px;bottom:22px;width:96px;height:64px;opacity:.35;
  background-image:radial-gradient(#fff 1.2px,transparent 1.3px);background-size:9px 9px}
.lead-media.beat-capital{--c:var(--b-capital)} .lead-media.beat-regulation{--c:var(--b-regulation)}
.lead-media.beat-market{--c:var(--b-economics)} .lead-media.beat-threats{--c:var(--b-supply)}
.lead-media.beat-talent{--c:var(--b-demand)}
.lead-media__mark{position:relative;font:800 clamp(30px,4vw,46px)/1 var(--font-display);color:#fff;letter-spacing:-.02em}
.lead-media__brand{position:relative;margin-top:10px;font:600 10.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.mono-date{display:block;font:400 12px/1.4 var(--font-mono);letter-spacing:.02em;color:#6B6B72}
.lead-card .mono-date{margin-top:16px}
.lead-title{font:700 clamp(23px,2.6vw,30px)/1.2 var(--font-display);letter-spacing:-.012em;margin:6px 0 10px;color:#141416}
.lead-title a{text-decoration:none}
.lead-title a:hover{color:var(--accent-strong)}
.lead-card .deck{font:400 15.5px/1.55 var(--font-ui);color:#52525B;margin:0}
.byline{font:600 11px/1.4 var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:#6B6B72;margin:14px 0 0}
.byline b{color:#141416}

.latest{min-width:0}
.mono-label{font:600 10.5px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#52525B;
  padding-bottom:8px;border-bottom:1px solid #E7E5E2;margin-bottom:10px}
.latest ul{list-style:none;margin:0;padding:0}
.latest li{background:#F6F5F3;border-radius:4px;padding:8px 10px 10px;margin-bottom:9px}
.latest li a{display:block;margin-top:3px;font:500 15px/1.35 var(--font-ui);color:#141416;text-decoration:none}
.latest li a:hover{color:var(--accent-strong)}

/* river */
.module{margin-bottom:34px}
.module-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  font:700 11px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#141416;
  padding-bottom:9px;margin-bottom:15px;border-bottom:2px solid #141416;position:relative}
.module-head > span:first-child{display:inline-flex;align-items:center;gap:8px}
.module-head > span:first-child::before{content:"";width:9px;height:9px;border-radius:2px;background:var(--accent)}
.module-head .meta{color:#6B6B72;letter-spacing:.08em;font-weight:600}
.river{list-style:none;margin:0;padding:0}
.river > li{display:flex;gap:16px;padding:14px 10px;margin-inline:-10px;border-bottom:1px solid #EFEDEA;border-radius:6px;transition:background .15s}
.river > li:hover{background:#FAF9F7}
.river > li:last-child{border-bottom:none}
.river .river-beat{width:112px;flex:none;padding-top:2px}
.river .river-body{min-width:0}
.river .river-title{font:700 17px/1.32 var(--font-display);margin:0;color:#141416}
.river .river-title a{text-decoration:none}
.river .river-title a:hover{color:var(--accent-strong)}
.river .river-meta{font:400 13px/1.5 var(--font-ui);color:#6B6B72;margin:5px 0 0}
.river .river-meta b{color:#3F3F46;font-weight:600}
@media (max-width:520px){
  .river > li{flex-direction:column;gap:8px}
  .river .river-beat{width:auto}
}

/* beat columns — Regulation · Capital · Demand, like the three columns on igniteit.com */
.beat-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:0 0 26px}
.beat-col{--c:var(--accent);min-width:0}
.beat-col.beat-capital{--c:var(--b-capital)} .beat-col.beat-regulation{--c:var(--b-regulation)}
.beat-col.beat-market{--c:var(--b-economics)} .beat-col.beat-threats{--c:var(--b-supply)} .beat-col.beat-talent{--c:var(--b-demand)}
.beat-col .sec-title{border-left-color:var(--c);margin-bottom:16px}
.see-all{font:600 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#52525B;text-decoration:none;white-space:nowrap}
.see-all:hover{color:var(--c)}
.beat-col ul{list-style:none;margin:0;padding:0}
.beat-col li{background:#F6F5F3;border-radius:4px;padding:9px 12px 11px;margin-bottom:9px;border-left:3px solid transparent;transition:border-color .15s}
.beat-col li:hover{border-left-color:var(--c)}
.beat-col li a{display:block;margin-top:3px;font:500 15px/1.38 var(--font-ui);color:#141416;text-decoration:none}
.beat-col li a:hover{color:var(--accent-strong)}
.rail > .module:first-of-type{margin-top:0}

/* utility bar — the old rail list, laid out across the page */
.utility-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 26px;margin:0 0 28px;padding:14px 20px;
  background:#F6F5F3;border-radius:8px;font:500 14px/1.2 var(--font-ui)}
.utility-bar__lbl{font:600 10.5px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#52525B;
  padding-right:22px;border-right:1px solid #DDDAD5}
.utility-bar a{font-weight:600;color:#141416;text-decoration:none}
.utility-bar a::after{content:" →";color:var(--accent)}
.utility-bar a:hover{color:var(--accent-strong)}
.utility-bar .soon{display:inline-flex;align-items:center;gap:8px;color:#6B6B72}
.utility-bar .soon i{font:600 9.5px/1 var(--font-mono);font-style:normal;letter-spacing:.1em;text-transform:uppercase;
  color:var(--b-economics-ink);background:var(--b-economics-wash);border-radius:999px;padding:4px 8px}

/* full-width bands under the grid */
.home-full .igw-ann-row{grid-template-columns:repeat(3,minmax(0,1fr))}
.home-full{margin-top:8px}
.franchise-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.fcard{--c:var(--b-capital);--cw:var(--b-capital-wash);--ci:var(--b-capital-ink);position:relative;background:#F6F5F3;
  border-radius:8px;padding:20px 20px 18px;min-width:0;overflow:hidden;border-top:4px solid var(--c)}
.fcard .eyebrow{color:var(--ci);background:var(--cw);padding:5px 8px;border-radius:4px;display:inline-block}
.fcard:nth-child(3n+2){--c:var(--b-economics);--cw:var(--b-economics-wash);--ci:var(--b-economics-ink)}
.fcard:nth-child(3n+3){--c:var(--b-supply);--cw:var(--b-supply-wash);--ci:var(--b-supply-ink)}
.fcard .mono-date{margin-top:12px}
.fcard h4{font:700 17px/1.3 var(--font-display);margin:4px 0 8px;color:#141416}
.fcard h4 a{text-decoration:none}
.fcard h4 a:hover{color:var(--ci)}
.fcard p{margin:0;color:#52525B;font-size:13.5px;line-height:1.5}

.wide-promo{position:relative;overflow:hidden;display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:6px 0 40px;
  padding:22px 30px;border-radius:6px;text-decoration:none;color:#141416;
  background:linear-gradient(90deg,#16181D 0%,#2A2230 34%,#1554C0 72%,#1F6FEB 100%)}
.wide-promo::after{content:"";position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.22),transparent 65%)}
.wide-promo > *{position:relative;z-index:1}
.wide-promo__kicker{flex-basis:100%;font:600 10px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#C9C8CE;margin-bottom:-12px}
.wide-promo__title{font:800 clamp(19px,2.2vw,26px)/1.15 var(--font-display);color:#fff}
.wide-promo__detail{font:500 14px/1.45 var(--font-ui);color:#F1EFEA;flex:1;min-width:220px}
.wide-promo__btn{flex:none;background:#fff;color:#141416;padding:12px 22px;border-radius:999px;font:700 11.5px/1 var(--font-ui);
  letter-spacing:.06em;text-transform:uppercase}
.wide-promo:hover .wide-promo__btn{background:#141416;color:#fff}

/* ============================================================
   DATA RAIL
   ============================================================ */
.rail{min-width:0;padding-left:0}
.rail .module-head{border-bottom-width:2px}

.ad-slot{position:relative;display:block;overflow:hidden;border-radius:10px;padding:26px 22px 22px;margin-bottom:28px;
  text-decoration:none;color:#16243F;min-height:250px;
  background:radial-gradient(90% 70% at 110% 100%,rgba(31,111,235,.55),transparent 60%),
    radial-gradient(60% 50% at 100% 0%,rgba(214,51,108,.25),transparent 60%),#FBEFE2}
.ad-slot__kicker{display:block;font:600 10px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#7A4B2A;margin-bottom:14px}
.ad-slot__title{display:block;font:800 27px/1.12 var(--font-display);letter-spacing:-.01em;text-transform:uppercase}
.ad-slot__title em{font-style:normal;background:#fff;color:var(--accent-strong);padding:0 8px;border-radius:999px;box-decoration-break:clone}
.ad-slot__body{display:block;font:500 14.5px/1.45 var(--font-ui);margin-top:14px;max-width:24ch}
.ad-slot__cta{display:inline-block;margin-top:16px;font:700 13.5px/1 var(--font-ui);color:var(--accent-strong);
  border-bottom:2px solid currentColor;padding-bottom:3px}
.ad-slot:hover .ad-slot__cta{color:#141416}

.board{border-radius:var(--radius);background:var(--card);overflow:hidden;border:1px solid #ECEBEA}
.board-row{display:flex;justify-content:space-between;gap:10px;padding:9px 14px;border-bottom:1px solid var(--rule);font-size:13px}
.board-row:last-child{border-bottom:none}
.board-row.is-head{background:#141416;color:#fff;font:600 9.5px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border-bottom:none}
.board-row.is-head span:last-child{color:var(--ember)}
.board-row .ticker{font-weight:700;letter-spacing:.02em}
.board-row .name{color:var(--slate);font-size:12.5px;min-width:0}
.board-row .up,.board-row .down{font-weight:700;font-size:12px;padding:2px 7px;border-radius:4px}
.board-row .up{color:var(--up);background:color-mix(in srgb,var(--up) 12%,transparent)}
.board-row .down{color:var(--down);background:color-mix(in srgb,var(--down) 12%,transparent)}
.board-note{font:600 9.5px/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);padding:8px 14px;background:var(--card-2)}

.benchmark{position:relative;border-radius:var(--radius);background:var(--glow);color:#fff;padding:20px 20px 18px;overflow:hidden}
.benchmark::after{content:"";position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.12)}
.benchmark .beat-label{--ci:#fff;--cw:rgba(255,255,255,.18);--c:#fff}
.benchmark .figure{font:800 clamp(40px,6vw,52px)/1 var(--font-display);letter-spacing:-.02em;margin:12px 0 6px}
.benchmark p{margin:0;color:rgba(255,255,255,.95);font-size:12.5px;line-height:1.5;position:relative}
.benchmark .more{display:inline-block;margin-top:13px;text-decoration:none;position:relative;font:700 10.5px/1 var(--font-ui);
  letter-spacing:.1em;text-transform:uppercase;color:#fff;border-bottom:2px solid rgba(255,255,255,.6);padding-bottom:3px}
.benchmark .more:hover{border-bottom-color:#fff}

/* the trials module gets the supply colour */
#trials-heading{border-bottom-color:var(--b-supply)}
#trials-heading > span:first-child::before{background:var(--b-supply)}

.railbox{border:1.5px dashed var(--rule-2);border-radius:var(--radius);padding:15px;background:var(--card)}
.railbox b{display:block;font:700 13.5px/1.3 var(--font-ui);margin-bottom:5px}
.railbox p{margin:0;font-size:12.5px;color:var(--mute);line-height:1.5}

.utility{list-style:none;margin:0;padding:0;font-size:14px}
.utility li{display:flex;justify-content:space-between;gap:10px;padding-block:10px;border-bottom:1px solid var(--rule);color:var(--mute)}
.utility li:last-child{border-bottom:none}
.utility a{font-weight:600;color:var(--ink);text-decoration:none}
.utility a::after{content:" →";color:var(--accent)}
.utility a:hover{color:var(--accent-strong)}
/* roadmap items: shown, but deliberately not links until the tool exists */
.utility li.soon{color:var(--mute);font-weight:500}
.utility li.soon span{font:600 9.5px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--b-economics-ink);
  background:var(--b-economics-wash);border-radius:999px;padding:4px 8px;align-self:center;white-space:nowrap}

/* signup — dark card, same as the igniteit.com newsletter card */
.signup{position:relative;background:#141416;color:#fff;border-radius:var(--radius);padding:24px 22px 22px;overflow:hidden}
.signup::before{content:"";position:absolute;inset:auto -60px -90px auto;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(31,111,235,.55),rgba(214,51,108,0) 70%)}
.signup::after{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--glow)}
.signup > *{position:relative}
.signup h3{font:800 23px/1.15 var(--font-display);margin-bottom:8px;color:#fff}
.signup p{font-size:13.5px;color:#C9C8CE;margin-bottom:14px;line-height:1.5}
.signup form{display:flex;gap:8px;flex-wrap:wrap}
.signup input[type=email]{flex:1;min-width:0;border:1px solid #3A3F48;background:#1F232A;color:#F2F3F5;border-radius:999px;padding:12px 15px;font:400 13px/1 var(--font-ui)}
.signup button{background:var(--accent-strong);color:#fff;border:0;border-radius:999px;padding:12px 18px;font:700 11px/1 var(--font-ui);
  letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.signup button:hover{filter:brightness(1.08)}
.signup .cn-notice.is-pending{background:rgba(255,255,255,.06);border-color:#3A3F48;color:#E2E5E9}
.signup .cn-notice a{color:#FFA552}

/* ============================================================
ARTICLE
============================================================ */
.article{padding-block:34px 56px}
.article-head{max-width:70ch;margin-inline:auto}
.article-title{font:800 clamp(28px,4.6vw,44px)/1.1 var(--font-display);letter-spacing:-.018em;margin:14px 0 14px}
.article-meta{display:flex;gap:16px;flex-wrap:wrap;align-items:center;
font:700 11px/1.4 var(--font-ui);letter-spacing:.07em;text-transform:uppercase;color:var(--mute);
padding-block:14px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:20px}
.article-meta span:first-child{color:var(--ink)}
.article-meta span + span::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;
background:var(--ember);margin-right:16px;vertical-align:middle;position:relative;top:-1px}
.article-body{max-width:68ch;margin:30px auto 0;font:400 18px/1.72 var(--font-read)}
.article-body p{margin:0 0 1.15em}
.article-body > p:first-of-type::first-letter{float:left;font:800 3.4em/.82 var(--font-display);
color:var(--ember);margin:.06em .1em 0 0}
.article-body h2{font:800 1.35em/1.25 var(--font-display);margin:1.8em 0 .55em;padding-left:14px;
border-left:5px solid var(--ember)}
.article-body h3{font:700 1.12em/1.3 var(--font-display);margin:1.5em 0 .4em}
.article-body a{color:var(--ember-ink);text-decoration-thickness:2px;text-underline-offset:3px}
.article-body strong{color:var(--ink)}
.article-body mark{background:linear-gradient(transparent 38%,#FFE08A 38%);color:inherit;padding:0 .1em}
:root[data-theme="dark"] .article-body mark{background:linear-gradient(transparent 38%,rgba(255,196,64,.35) 38%)}
.article-body blockquote{margin:1.7em 0;padding:18px 22px;border-left:5px solid var(--ember);
background:var(--ember-wash);border-radius:0 8px 8px 0;font-size:1.06em;color:var(--ink)}
.article-body blockquote p:last-child{margin-bottom:0}
.article-body figure{margin:1.8em 0}
.article-body figcaption{font:400 12.5px/1.5 var(--font-ui);color:var(--mute);margin-top:8px}
.article-body ul,.article-body ol{padding-left:1.3em;margin:0 0 1.15em}
.article-body li{margin-bottom:.4em}
.article-body li::marker{color:var(--ember)}
.article-body table{width:100%;border-collapse:collapse;font:400 14px/1.5 var(--font-ui);margin:1.6em 0;
background:var(--card);border-radius:8px;overflow:hidden}
.article-body th,.article-body td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--rule)}
.article-body th{font:800 10.5px/1 var(--font-ui);letter-spacing:.11em;text-transform:uppercase;
color:#fff;background:#16181D}
.article-figure img{border-radius:var(--radius)}

.disclosure{max-width:68ch;margin:36px auto 0;padding:15px 18px;background:var(--b-economics-wash);
border-left:4px solid var(--b-economics);border-radius:0 8px 8px 0;font:400 12.5px/1.55 var(--font-ui);color:var(--slate)}

/* ============================================================
ARCHIVE / PAGES
============================================================ */
.page-head{padding-block:36px 6px}
.page-head h1{font:800 clamp(28px,4.2vw,42px)/1.1 var(--font-display);letter-spacing:-.016em}
.page-head h1::after{content:"";display:block;width:64px;height:6px;border-radius:3px;background:var(--glow);margin-top:16px}
.page-head .deck{margin-top:12px;max-width:64ch}
.archive-list{padding-block:22px 50px}
.page-content{max-width:68ch;margin-inline:auto;padding-block:24px 56px;
font:400 17px/1.7 var(--font-read)}
.page-content h2{font:800 1.3em/1.25 var(--font-display);margin:1.8em 0 .55em}
.page-content h2::before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;
background:var(--ember);margin-right:10px;vertical-align:middle;position:relative;top:-2px}
.page-content a{color:var(--ember-ink);text-decoration-thickness:2px;text-underline-offset:3px}
.page-content ul,.page-content ol{padding-left:1.25em;margin:0 0 1.2em}
.page-content li{margin-bottom:.45em}
.page-content li::marker{color:var(--ember)}

/* The inclusion test. It is the rule the whole publication is scoped by, so it
gets a frame instead of running on as prose. */
.rule-box{border-radius:var(--radius);background:var(--card);padding:22px 24px;margin:1.6em 0;
box-shadow:0 1px 0 var(--rule),0 14px 30px -22px rgba(22,24,29,.45);position:relative;overflow:hidden}
.rule-box::before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:var(--glow)}
.rule-box ol{counter-reset:rule;list-style:none;padding-left:0;margin:0}
.rule-box ol li{counter-increment:rule;position:relative;padding-left:2.4em;margin-bottom:.8em;line-height:1.6}
.rule-box ol li:last-child{margin-bottom:0}
.rule-box ol li::before{content:counter(rule);position:absolute;left:0;top:.08em;
font:800 12px/1.7em var(--font-ui);width:1.7em;height:1.7em;text-align:center;
color:#fff;background:var(--ember);border-radius:50%}
.rule-box .verdict{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--rule);
font:800 13px/1.5 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--ember-ink)}

.pagination ul{display:flex;gap:8px;flex-wrap:wrap;list-style:none;padding:0;margin:0}
.pagination{padding-block:18px}
.pagination .page-numbers{display:inline-block;font:700 12.5px/1 var(--font-ui);padding:11px 14px;border:1.5px solid var(--rule);
border-radius:999px;background:var(--card);text-decoration:none;color:var(--slate)}
.pagination a.page-numbers:hover{border-color:var(--ember);color:var(--ember-ink)}
.pagination .page-numbers.current{background:var(--ember);color:#fff;border-color:var(--ember)}

/* ============================================================
   FOOTER — black network footer, matches igniteit.com
   ============================================================ */
.site-footer{background:#000;color:#D4D4D8;margin-top:40px}
.site-footer .wrap{padding-block:56px 30px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.45fr;gap:32px;align-items:start}
.footer-brand img{height:84px;width:auto;display:block}
.footer-brand p{font:400 13.5px/1.6 var(--font-ui);color:#E4E4E7;margin:18px 0 18px;max-width:34ch}
.footer-cta{display:inline-block;background:var(--accent-strong);color:#fff;text-decoration:none;padding:12px 18px;border-radius:999px;
  font:600 13px/1 var(--font-ui)}
.footer-cta:hover{filter:brightness(1.08)}
.footer-grid h4{font:700 14px/1 var(--font-display);letter-spacing:0;text-transform:none;color:#fff;margin:6px 0 18px}
.footer-grid ul{list-style:none;margin:0;padding:0;font:400 13.5px/1.3 var(--font-ui)}
.footer-grid li{margin-bottom:12px}
.footer-grid a{text-decoration:none;color:#D4D4D8}
.footer-grid a:hover{color:var(--ember)}
.footer-tips{background:var(--accent-strong);padding:22px 22px 18px;min-height:220px}
.footer-tips h4{color:#fff;margin-top:0}
.footer-tips p{font:500 13.5px/1.5 var(--font-ui);color:#fff;margin:0 0 16px}
.footer-tips .tips-btn{display:inline-flex;align-items:center;gap:6px;background:#fff;color:#141416;padding:11px 16px;border-radius:4px;
  font:600 13px/1 var(--font-ui);margin-bottom:18px}
.footer-tips .tips-btn:hover{background:#141416;color:#fff}
.footer-tips ul{font-size:13px}
.footer-tips li{margin-bottom:8px}
.footer-tips ul a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.footer-tips ul a:hover{color:#fff;opacity:.85}
.colophon{margin:40px 0 0;padding-top:22px;border-top:1px solid #27272A;font-size:12px;color:#A1A1AA;max-width:none;line-height:1.6}
.footer-legal{margin:14px 0 0;text-align:center;font:500 11.5px/1.5 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:#E4E4E7}
.footer-legal a{color:#fff}
@media (max-width:1100px){.footer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-brand{grid-column:1/-1}.footer-tips{grid-column:span 2}}
@media (max-width:640px){.footer-grid{grid-template-columns:1fr 1fr}.footer-tips{grid-column:1/-1;min-height:0}}

/* HighLevel form embeds. The iframe is third-party and we do not control its
internals, so we only own the frame around it. */
.cn-hl-form{margin:0}
.cn-hl-form iframe{display:block;width:100%;border:none}
.cn-notice{font:500 13px/1.5 var(--font-ui);padding:11px 13px;border-radius:8px;margin:0}
.cn-notice a{color:var(--ember-ink);font-weight:700}
.cn-notice.is-ok{color:var(--up);background:var(--card-2);border:1px solid var(--rule)}
.cn-notice.is-bad{color:var(--down);background:var(--card-2);border:1px solid var(--rule)}
.cn-notice.is-pending{color:var(--slate);background:var(--card-2);border:1px dashed var(--rule-2)}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ============================================================
   SMALL SCREENS
   ============================================================ */
@media (max-width:1320px){
  .pnav{gap:16px}
  .pnav > li > a,.pnav .sub-toggle{font-size:13px}
  .brand .logo{width:200px}
  .primary-nav{margin-left:12px}
  .hsearch .search-field{width:162px;font-size:14px;padding-right:10px}
}
@media (max-width:1100px){
  .home-grid{grid-template-columns:minmax(0,1fr) 280px;gap:0 28px}
  .top-split{grid-template-columns:1fr;gap:24px}
  .ii-net__sp{display:none}
}
@media (max-width:1060px){
  .nav-toggle{display:inline-flex}
  .primary-nav{position:absolute;left:0;right:0;top:100%;margin:0;background:#fff;border-bottom:1px solid #ECEBEA;
    box-shadow:0 24px 40px -24px rgba(20,20,22,.4);display:none;padding:8px var(--gutter) 16px}
  .masthead.nav-open .primary-nav{display:block}
  .pnav{flex-direction:column;align-items:stretch;gap:0}
  .pnav > li{border-bottom:1px solid #F0EFED}
  .pnav > li > a,.pnav .sub-toggle{padding:14px 0;width:100%;justify-content:space-between;font-size:14px}
  .pnav .sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 10px;display:none}
  .pnav .has-sub.is-open .sub{display:block}
  .pnav .has-sub:hover .sub,.pnav .has-sub:focus-within .sub{display:none}
  .pnav .has-sub.is-open:hover .sub,.pnav .has-sub.is-open:focus-within .sub{display:block}
}
@media (max-width:900px){
  .home-grid{grid-template-columns:1fr;gap:28px}
  .beat-cols{grid-template-columns:1fr;gap:12px}
  .utility-bar__lbl{flex-basis:100%;border:0;padding:0}
  .home-full .igw-ann-row{grid-template-columns:1fr}
  .promo-bar__detail{display:none}
}
@media (max-width:720px){
  .ii-net__lbl{display:none}
  .ii-net__in{gap:16px;padding:0 16px}
  .masthead__in{height:64px;gap:10px}
  .brand .logo{width:150px}
  .nl-btn{display:none}
  .hsearch .search-field,.hsearch .search-field:focus,.hsearch.is-open .search-field{width:44px;padding:0;color:transparent;cursor:pointer}
  .hsearch .search-field::placeholder{color:transparent}
  .hsearch.is-open .search-field,.hsearch .search-field:focus{position:fixed;left:16px;right:16px;top:76px;width:auto;box-shadow:0 10px 30px -10px rgba(20,20,22,.4);color:#141416;padding-left:38px;z-index:70}
  .hsearch .search-ico{left:15px}
  .hsearch.is-open .search-ico{position:fixed;top:91px;left:30px;z-index:71}
  .hsearch-panel{position:fixed;left:16px;right:16px;width:auto;top:128px}
  .promo-bar__in{flex-wrap:wrap;gap:6px 12px;padding-block:12px;justify-content:center;text-align:center}
  .promo-bar__btn{order:5;margin:4px 0 0}
  .promo-bar__kicker{flex-basis:100%}
  .promo-bar::after,.promo-bar::before{display:none}
  .segrail .wrap{justify-content:flex-start}
  .wrap.home{padding-top:18px}
  .home-band{font-size:22px;padding:10px 12px}
  .sec-title,.home-main .module-head,.home-full .module-head{font-size:23px}
  .wide-promo{padding:20px}
  .footer-brand img{height:68px}
}

/* ============================================================
IgniteIt Cybersecurity (1.3.0): the horizontal logo is sized by height so the
IgniteIt mark is the same size on every network site, whatever the
length of the vertical name.
============================================================ */
.brand .logo{width:auto;height:37px;max-width:none}
@media (max-width:1100px){.brand .logo{height:31px}}
@media (max-width:720px){.brand .logo{height:25px}}
/* Vertical colourway for the promo bar and ad slot (Wellness uses oranges). */
.promo-bar{background:linear-gradient(90deg,#E6EFFF 0%,#CBDDFF 38%,#97BBF8 64%,#6E9DF3 84%,#4F8BF0 100%)}
.promo-bar::before{background-image:radial-gradient(#1554C0 1.2px,transparent 1.3px)}
.promo-bar::after{background:radial-gradient(circle at 40% 40%,#F0F8FF,#9CCBFF 70%);box-shadow:0 0 40px rgba(156,203,255,.6)}
.promo-bar__kicker{color:#1E2A3B}
.promo-bar__detail{color:#1B2433}
.ad-slot{background:radial-gradient(90% 70% at 110% 100%,rgba(31,111,235,.45),transparent 60%),radial-gradient(60% 50% at 100% 0%,rgba(14,159,142,.22),transparent 60%),#EAF1FD}
.ad-slot__kicker{color:#2B4A7A}
.signup .cn-notice a{color:#8EB8FF}
