/* ==========================================================================
   Mission Critical Safety — site.css
   Palette: Copper Bus
   Structure and type mirror 70eguide.com; color system is distinct.
   ========================================================================== */

:root{
  /* ---- Copper Bus palette ---- */
  --chrome:      #17110D;   /* header + sidebar */
  --chrome-2:    #211913;   /* raised chrome surfaces */
  --chrome-line: rgba(255,255,255,.085);
  --accent:      #E08A4B;   /* copper — fills, chips, on-dark text */
  --accent-hi:   #F0A469;   /* hover */
  --accent-ink:  #9A4B12;   /* copper for text on light backgrounds (AA) */
  --page:        #F8F4F0;
  --card:        #FFFFFF;
  --ink:         #1C1611;
  --muted:       #5C4F45;
  --rule:        #E7DDD3;
  --warn-bg:     #FDF3E7;
  --warn-line:   #E8C79E;
  --dc-bg:       #F3F0FA;   /* "in a data center" callout */
  --dc-line:     #D6CDEA;

  /* ---- type ---- */
  --f-head:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --sidebar-w:250px;
  --rail-w:258px;
  --content-max:760px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{
  margin:0;background:var(--page);color:var(--ink);
  font-family:var(--f-body);font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent-ink);text-decoration:none}
a:hover{text-decoration:underline}

/* ============================ HEADER ============================ */
.site-header{
  position:sticky;top:0;z-index:60;background:var(--chrome);
  border-bottom:1px solid var(--chrome-line);
  display:flex;align-items:center;gap:18px;padding:11px 20px;
}
.brand{display:flex;align-items:center;gap:10px;flex:none}
.brand-mark{
  width:36px;height:36px;border-radius:7px;background:var(--accent);color:var(--chrome);
  font-family:var(--f-head);font-weight:700;font-size:14px;letter-spacing:.5px;
  display:flex;align-items:center;justify-content:center;flex:none;
}
.brand-word{display:block;font-family:var(--f-head);font-weight:700;font-size:21px;color:#fff;line-height:1;letter-spacing:.3px}
.brand-tag{display:block;font-family:var(--f-mono);font-size:9px;letter-spacing:1.5px;color:var(--accent);text-transform:uppercase;margin-top:4px}
.brand:hover{text-decoration:none}

.site-search{
  flex:1;max-width:620px;margin:0 auto;position:relative;
}
.site-search input{
  width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-radius:8px;padding:9px 14px 9px 36px;color:#fff;font-family:var(--f-body);font-size:14px;
}
.site-search input::placeholder{color:rgba(255,255,255,.42)}
.site-search input:focus{outline:none;border-color:var(--accent);background:rgba(255,255,255,.09)}
.site-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);opacity:.45}

.header-cta{
  flex:none;background:var(--accent);color:var(--chrome);font-weight:700;font-size:13px;
  padding:9px 15px;border-radius:7px;letter-spacing:.2px;
}
.header-cta:hover{background:var(--accent-hi);text-decoration:none}
.nav-toggle{display:none;background:none;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:6px;padding:7px 10px;font-size:15px;cursor:pointer}

/* ============================ LAYOUT ============================ */
.layout{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr) var(--rail-w);align-items:start}

/* ============================ SIDEBAR ============================ */
.sidebar{
  background:var(--chrome);position:sticky;top:59px;height:calc(100vh - 59px);
  overflow-y:auto;padding:16px 0 40px;
}
.sidebar::-webkit-scrollbar{width:8px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:4px}
.nav-label{font-family:var(--f-mono);font-size:9px;letter-spacing:1.6px;color:rgba(255,255,255,.34);text-transform:uppercase;padding:0 18px;margin-bottom:10px}
.nav-group{border-bottom:1px solid var(--chrome-line)}
.nav-group>summary{
  font-family:var(--f-head);font-weight:700;font-size:14.5px;letter-spacing:1px;color:#fff;
  text-transform:uppercase;padding:11px 18px;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;
}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary::after{content:"▸";color:var(--accent);font-size:10px;transition:transform .15s}
.nav-group[open]>summary::after{transform:rotate(90deg)}
.nav-group>summary:hover{background:rgba(255,255,255,.04)}
.nav-group a{
  display:block;font-size:13.5px;color:rgba(255,255,255,.62);padding:6px 18px 6px 26px;line-height:1.45;
}
.nav-group a:hover{color:#fff;background:rgba(255,255,255,.05);text-decoration:none}
.nav-group a.current{
  color:#fff;font-weight:600;background:rgba(255,255,255,.075);
  border-left:3px solid var(--accent);padding-left:23px;
}
.nav-group .pill{
  font-family:var(--f-mono);font-size:8.5px;font-weight:600;background:var(--accent);color:var(--chrome);
  padding:2px 5px;border-radius:3px;margin-left:6px;letter-spacing:.5px;vertical-align:1px;
}
.nav-group ul{list-style:none;margin:0;padding:0 0 10px}

/* ============================ CONTENT ============================ */
.content{padding:30px 40px 80px;min-width:0}
.content>*{max-width:var(--content-max)}

.chips{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}
.chip{
  font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;
  padding:6px 10px;border-radius:4px;display:inline-block;
}
.chip-solid{background:var(--accent);color:var(--chrome)}
.chip-out{background:var(--card);border:1px solid var(--rule);color:var(--muted)}
.chip-new{background:#1F7A45;color:#fff}
.chip-rev{background:#8A5A0B;color:#fff}
.chip-del{background:#8C2F27;color:#fff}

h1{font-family:var(--f-head);font-weight:700;font-size:44px;line-height:1.05;margin:0 0 16px;letter-spacing:.1px}
h2{font-family:var(--f-head);font-weight:700;font-size:28px;line-height:1.15;margin:44px 0 4px;letter-spacing:.3px;display:flex;align-items:baseline;gap:10px}
h2 .s{color:var(--accent-ink);font-size:23px}
h2+.hr{height:1px;background:var(--rule);margin:10px 0 18px}
h3{font-family:var(--f-head);font-weight:700;font-size:21px;margin:30px 0 8px;letter-spacing:.3px}
.lede{font-size:19px;line-height:1.65;color:var(--muted);margin:0 0 26px}
.lede strong{color:var(--ink);font-weight:600}
p{margin:0 0 16px}

/* --- answer-first block --- */
.answer{
  background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--accent);
  border-radius:0 8px 8px 0;padding:16px 20px;margin:0 0 26px;
}
.answer .k{font-family:var(--f-mono);font-size:9.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent-ink);font-weight:600;margin-bottom:6px}
.answer p{margin:0;font-size:17px;line-height:1.6}

/* --- cards --- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:0 0 30px}
.card{
  background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--accent);
  border-radius:8px;padding:16px 17px;display:block;color:inherit;
}
a.card:hover{text-decoration:none;box-shadow:0 4px 14px rgba(28,22,17,.08);transform:translateY(-1px);transition:.15s}
.card h4{font-family:var(--f-head);font-weight:700;font-size:18px;margin:0 0 7px;letter-spacing:.3px}
.card p{margin:0;font-size:14px;line-height:1.55;color:var(--muted)}

/* --- article rows --- */
.rows{background:var(--card);border:1px solid var(--rule);border-radius:8px;overflow:hidden;margin:0 0 26px}
.row{display:flex;gap:15px;padding:13px 16px;border-bottom:1px solid var(--rule);align-items:flex-start}
.row:last-child{border-bottom:0}
.row:hover{background:#FCFAF8}
.num{
  font-family:var(--f-mono);font-size:11.5px;font-weight:600;background:var(--chrome);color:var(--accent);
  padding:5px 9px;border-radius:4px;flex:none;min-width:66px;text-align:center;margin-top:1px;
}
.row-body{min-width:0}
.row-body p{margin:0;font-size:15px;line-height:1.55;color:var(--muted)}
.row-body strong{color:var(--ink);font-weight:600}
.row-body a{font-weight:600}

/* --- callouts --- */
.callout{border-radius:8px;padding:15px 18px;margin:0 0 24px;border:1px solid}
.callout .k{font-family:var(--f-mono);font-size:9.5px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;margin-bottom:6px}
.callout p:last-child{margin-bottom:0}
.callout-dc{background:var(--dc-bg);border-color:var(--dc-line)}
.callout-dc .k{color:#4B3E7A}
.callout-warn{background:var(--warn-bg);border-color:var(--warn-line)}
.callout-warn .k{color:#8A5A0B}
.callout-find{background:var(--card);border-color:var(--rule);border-left:4px solid var(--accent-ink)}
.callout-find .k{color:var(--accent-ink)}

/* --- tables --- */
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--rule);border-radius:8px;overflow:hidden;margin:0 0 26px;font-size:14.5px}
th{background:var(--chrome);color:#fff;font-family:var(--f-head);font-weight:700;font-size:14px;letter-spacing:.7px;text-transform:uppercase;text-align:left;padding:10px 13px}
td{padding:11px 13px;border-top:1px solid var(--rule);vertical-align:top;color:var(--muted);line-height:1.5}
td strong{color:var(--ink)}
td code,.mono{font-family:var(--f-mono);font-size:12.5px;color:var(--accent-ink);font-weight:600}

ul.tight{margin:0 0 20px;padding-left:20px}
ul.tight li{margin-bottom:7px;color:var(--muted)}
ul.tight li strong{color:var(--ink)}

/* --- class CTA in content --- */
.class-cta{
  background:var(--chrome);border-radius:10px;padding:24px 26px;margin:36px 0;color:#fff;
}
.class-cta .k{font-family:var(--f-mono);font-size:9.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.class-cta h3{font-family:var(--f-head);font-weight:700;font-size:26px;margin:0 0 9px;color:#fff;letter-spacing:.3px}
.class-cta p{color:rgba(255,255,255,.66);font-size:15px;margin:0 0 16px;max-width:520px}
.btn{display:inline-block;background:var(--accent);color:var(--chrome);font-weight:700;font-size:14.5px;padding:11px 20px;border-radius:7px}
.btn:hover{background:var(--accent-hi);text-decoration:none}
.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.28);margin-left:8px}
.btn-ghost:hover{background:rgba(255,255,255,.08)}

/* ============================ RIGHT RAIL ============================ */
.rail{position:sticky;top:59px;max-height:calc(100vh - 59px);overflow-y:auto;padding:30px 20px 60px;border-left:1px solid var(--rule)}
.rail::-webkit-scrollbar{width:8px}
.rail::-webkit-scrollbar-thumb{background:var(--rule);border-radius:4px}
.rail-label{font-family:var(--f-mono);font-size:9px;letter-spacing:1.6px;color:var(--muted);text-transform:uppercase;padding-bottom:9px;border-bottom:1px solid var(--rule);margin-bottom:12px}
.toc a{display:flex;gap:9px;font-size:13.5px;color:var(--muted);padding:7px 9px;border-radius:6px;align-items:baseline;line-height:1.4}
.toc a:hover{background:var(--card);text-decoration:none}
.toc a.active{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(28,22,17,.06)}
.toc .n{font-family:var(--f-mono);font-size:10px;color:var(--accent-ink);font-weight:600;flex:none}

.qref{background:var(--card);border:1px solid var(--rule);border-radius:8px;padding:15px;margin-top:22px}
.qref .ttl{font-family:var(--f-head);font-weight:700;font-size:15px;letter-spacing:1.1px;text-transform:uppercase;border-left:3px solid var(--accent);padding-left:9px;margin-bottom:13px}
.qref dt{font-family:var(--f-mono);font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent-ink);font-weight:600}
.qref dd{margin:3px 0 11px;font-size:13.5px;color:var(--muted);line-height:1.5}
.qref dd:last-child{margin-bottom:0}
.qref dd strong{color:var(--ink)}

.rail-cta{background:var(--chrome);border-radius:8px;padding:16px;margin-top:20px}
.rail-cta .k{font-family:var(--f-mono);font-size:9px;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent);margin-bottom:7px}
.rail-cta h5{font-family:var(--f-head);font-weight:700;font-size:19px;color:#fff;margin:0 0 7px;line-height:1.15}
.rail-cta p{margin:0 0 13px;font-size:12.5px;line-height:1.55;color:rgba(255,255,255,.62)}
.rail-cta .btn{display:block;text-align:center;font-size:13px;padding:9px}

/* ============================ FOOTER ============================ */
.site-footer{background:var(--chrome);color:rgba(255,255,255,.55);padding:44px 40px 40px;font-size:13.5px;line-height:1.7}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:28px;max-width:1200px}
.footer-grid h6{font-family:var(--f-head);font-weight:700;font-size:14px;letter-spacing:1.1px;text-transform:uppercase;color:#fff;margin:0 0 10px}
.footer-grid a{display:block;color:rgba(255,255,255,.55);padding:3px 0;font-size:13.5px}
.footer-grid a:hover{color:var(--accent);text-decoration:none}
.footer-bottom{border-top:1px solid var(--chrome-line);margin-top:32px;padding-top:20px;font-size:12.5px;color:rgba(255,255,255,.4);max-width:1200px}
.footer-bottom strong{color:rgba(255,255,255,.7)}

/* ============================ RESPONSIVE ============================ */
@media (max-width:1180px){
  .layout{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}
  .rail{position:static;max-height:none;border-left:0;border-top:1px solid var(--rule);grid-column:1/-1;padding:26px 40px 50px}
  .rail .toc{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:4px}
  .qref,.rail-cta{max-width:420px}
}
@media (max-width:860px){
  body{font-size:16px}
  .layout{grid-template-columns:1fr}
  .nav-toggle{display:block}
  .site-search{display:none}
  .sidebar{position:fixed;top:59px;left:0;width:280px;height:calc(100vh - 59px);z-index:55;transform:translateX(-100%);transition:transform .2s;box-shadow:6px 0 24px rgba(0,0,0,.3)}
  .sidebar.open{transform:none}
  .content{padding:24px 20px 60px}
  .rail{padding:24px 20px 50px}
  h1{font-size:32px}
  h2{font-size:24px}
  .site-footer{padding:36px 20px 32px}
}

/* ============================ TOOLS ============================ */
.tool{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:22px 24px;margin:0 0 26px}
.tool h3{margin-top:0}
.field{margin-bottom:16px}
.field label{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:var(--accent-ink);font-weight:600;margin-bottom:6px}
.field select,.field input[type=text],.field input[type=number],.field textarea{
  width:100%;padding:10px 12px;border:1px solid var(--rule);border-radius:7px;background:#fff;
  font-family:var(--f-body);font-size:15px;color:var(--ink)}
.field select:focus,.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(224,138,75,.18)}
.field .hint{font-size:12.5px;color:var(--muted);margin-top:5px;line-height:1.45}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){.field-row{grid-template-columns:1fr}}
.tool-btn{background:var(--accent);color:var(--chrome);font-weight:700;font-size:14.5px;padding:11px 20px;border:0;border-radius:7px;cursor:pointer;font-family:var(--f-body)}
.tool-btn:hover{background:var(--accent-hi)}
.tool-btn.sec{background:transparent;color:var(--accent-ink);border:1px solid var(--rule)}
.tool-btn.sec:hover{background:var(--page)}
.result{margin-top:20px;border-top:1px solid var(--rule);padding-top:18px}
.result.hide{display:none}
.verdict{font-family:var(--f-head);font-weight:700;font-size:26px;line-height:1.15;margin:0 0 8px;letter-spacing:.3px}
.verdict.ok{color:#1F7A45}.verdict.no{color:#8C2F27}.verdict.warn{color:#8A5A0B}
.result p{font-size:15px;line-height:1.6}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14.5px;margin:12px 0}
.kv dt{font-family:var(--f-mono);font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--accent-ink);font-weight:600;padding-top:3px}
.kv dd{margin:0;color:var(--ink)}
.step{border-left:3px solid var(--rule);padding:0 0 0 16px;margin:0 0 18px}
.step.on{border-color:var(--accent)}
.step .n{font-family:var(--f-mono);font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:var(--muted);font-weight:600}
.step h4{font-family:var(--f-head);font-weight:700;font-size:19px;margin:3px 0 8px}
.opts{display:flex;gap:10px;flex-wrap:wrap}
.opt{border:1px solid var(--rule);background:#fff;border-radius:7px;padding:9px 15px;cursor:pointer;font-family:var(--f-body);font-size:14.5px;color:var(--ink)}
.opt:hover{border-color:var(--accent);background:#FFF9F4}
.opt.sel{background:var(--accent);border-color:var(--accent);color:var(--chrome);font-weight:600}
.chk{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--rule);font-size:15px}
.chk:last-child{border-bottom:0}
.chk input{margin-top:4px;width:17px;height:17px;accent-color:var(--accent-ink);flex:none}
.chk span{color:var(--muted);line-height:1.5}
.chk strong{color:var(--ink)}
.disclaim{font-size:12.5px;line-height:1.55;color:var(--muted);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:7px;padding:12px 14px;margin-top:18px}
@media print{.site-header,.sidebar,.rail,.site-footer,.tool-btn,.disclaim{display:none!important}.layout{display:block}.content{padding:0}}

/* ============================ SAFEPATH APP SHELL ============================ */
.sp-hero{background:var(--chrome);border-radius:14px;padding:0;overflow:hidden;margin:0 0 28px;position:relative}
.sp-hero-in{display:grid;grid-template-columns:1fr 300px;gap:26px;align-items:center;padding:28px 30px}
@media(max-width:820px){.sp-hero-in{grid-template-columns:1fr;padding:22px}}
.sp-badge{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--chrome);font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;padding:6px 11px;border-radius:999px;margin-bottom:14px}
.sp-hero h2{font-family:var(--f-head);font-weight:700;font-size:42px;line-height:1;color:#fff;margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}
.sp-hero h2 em{color:var(--accent);font-style:normal}
.sp-hero p{color:rgba(255,255,255,.68);font-size:15.5px;line-height:1.6;margin:0 0 18px;max-width:520px}
.sp-hero .btn{font-size:15px}
.sp-soon{font-family:var(--f-mono);font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:rgba(255,255,255,.45);margin-top:14px}

/* phone mock */
.sp-phone{width:250px;background:#000;border-radius:34px;padding:8px;box-shadow:0 22px 50px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.12);justify-self:center}
.sp-screen{width:234px;height:452px;border-radius:27px;overflow:hidden;position:relative;display:flex;flex-direction:column;background:#20180f;color:#f4ece4}
.sp-notch{position:absolute;top:7px;left:50%;transform:translateX(-50%);width:78px;height:19px;background:#000;border-radius:999px;z-index:5}
.sp-sb{height:30px;flex:none}
.sp-body{flex:1;padding:4px 12px 0;overflow:hidden}
.sp-live{font-family:var(--f-mono);font-size:8.5px;letter-spacing:1.3px;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.sp-q{background:#2b2117;border:1px solid #47372a;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:10px 11px;font-size:12px;line-height:1.45;margin-bottom:9px}
.sp-q b{display:block;font-family:var(--f-head);font-size:15px;font-weight:700;margin-bottom:5px;color:#fff;line-height:1.15}
.sp-opt{background:#2b2117;border:1px solid #47372a;border-radius:7px;padding:8px 10px;font-size:11.5px;margin-bottom:6px;color:#d6c8bb}
.sp-opt.hit{background:var(--accent);border-color:var(--accent);color:var(--chrome);font-weight:700}
.sp-tabs{margin-top:auto;flex:none;display:flex;justify-content:space-around;padding:8px 2px 14px;background:#171009;border-top:1px solid #3a2c20}
.sp-tab{display:flex;flex-direction:column;align-items:center;gap:3px;width:46px;font-size:8.5px;font-weight:600;color:#8d7a68;text-align:center}
.sp-tab .i{font-size:15px;line-height:1}
.sp-tab.on{color:var(--accent)}

/* section tabs on the page */
.sp-nav{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 22px;border-bottom:1px solid var(--rule);padding-bottom:0}
.sp-nav a{font-family:var(--f-head);font-weight:700;font-size:16px;letter-spacing:.8px;text-transform:uppercase;padding:9px 14px;border-radius:7px 7px 0 0;color:var(--muted);border:1px solid transparent;border-bottom:0;position:relative;top:1px}
.sp-nav a:hover{color:var(--ink);text-decoration:none;background:#fff}
.sp-nav a.on{background:var(--card);border-color:var(--rule);color:var(--ink);box-shadow:0 -2px 0 var(--accent) inset}

/* ============================ FACILITY MAP ============================ */
.fmap{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:20px 18px;margin:0 0 26px;overflow-x:auto}
.fmap-lane{margin-bottom:22px}
.fmap-lane:last-child{margin-bottom:0}
.fmap-title{font-family:var(--f-mono);font-size:9.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent-ink);font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:9px}
.fmap-title:after{content:"";flex:1;height:1px;background:var(--rule)}
.fmap-row{display:flex;align-items:stretch;gap:0;min-width:640px}
.fnode{flex:1;min-width:96px;background:var(--page);border:1px solid var(--rule);border-radius:8px;padding:11px 10px;color:inherit;display:block;position:relative;transition:.15s}
a.fnode:hover{text-decoration:none;background:#fff;border-color:var(--accent);box-shadow:0 4px 14px rgba(28,22,17,.10);transform:translateY(-2px)}
.fnode .fn-n{font-family:var(--f-mono);font-size:9px;letter-spacing:1px;color:var(--muted);display:block;margin-bottom:4px}
.fnode .fn-t{font-family:var(--f-head);font-weight:700;font-size:15.5px;line-height:1.1;letter-spacing:.3px;display:block;margin-bottom:6px}
.fnode .fn-v{font-family:var(--f-mono);font-size:9.5px;color:var(--accent-ink);font-weight:600}
.farrow{flex:none;width:22px;display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:15px}
.fnode.r4{border-top:3px solid #8C2F27}
.fnode.r3{border-top:3px solid #B4571F}
.fnode.r2{border-top:3px solid #8A5A0B}
.fnode.r1{border-top:3px solid #1F7A45}
.frisk{position:absolute;top:-1px;right:8px;font-family:var(--f-mono);font-size:8px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;padding:2px 5px;border-radius:0 0 4px 4px;color:#fff}
.frisk.r4{background:#8C2F27}.frisk.r3{background:#B4571F}.frisk.r2{background:#8A5A0B}.frisk.r1{background:#1F7A45}
.fkey{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px;font-size:12.5px;color:var(--muted);align-items:center}
.fkey span{display:inline-flex;align-items:center;gap:6px}
.fkey i{width:11px;height:11px;border-radius:3px;display:inline-block}

/* space cards with hazard tags */
.sp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:0 0 28px}
.sp-card{background:var(--card);border:1px solid var(--rule);border-radius:9px;padding:15px 16px;display:block;color:inherit;border-left:4px solid var(--accent)}
a.sp-card:hover{text-decoration:none;box-shadow:0 4px 14px rgba(28,22,17,.08);transform:translateY(-1px);transition:.15s}
.sp-card h4{font-family:var(--f-head);font-weight:700;font-size:19px;margin:0 0 4px;letter-spacing:.3px}
.sp-card .sub{font-family:var(--f-mono);font-size:9.5px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
.sp-card p{margin:0 0 10px;font-size:13.5px;line-height:1.5;color:var(--muted)}
.htags{display:flex;gap:5px;flex-wrap:wrap}
.htag{font-family:var(--f-mono);font-size:8.5px;font-weight:600;letter-spacing:.7px;text-transform:uppercase;padding:3px 6px;border-radius:3px;background:var(--page);border:1px solid var(--rule);color:var(--muted)}
.htag.e{background:#FCEFE4;border-color:#E8C79E;color:#8A5A0B}
.htag.f{background:#FBE9E7;border-color:#E8B4AE;color:#8C2F27}
.htag.c{background:#EAF3EC;border-color:#B7D6C2;color:#1F5A34}
.htag.m{background:#F0EEF8;border-color:#D6CDEA;color:#4B3E7A}

/* SafePath hero breaks the 760px content column */
.content > .sp-hero{max-width:1010px}
.content > .fmap{max-width:1010px}
.sp-hero-in{grid-template-columns:minmax(0,1fr) 268px;gap:30px}
.sp-hero h2{display:block;font-size:46px;max-width:none}
@media(max-width:1180px){.content > .sp-hero,.content > .fmap{max-width:var(--content-max)}.sp-hero h2{font-size:36px}}
@media(max-width:820px){.sp-hero-in{grid-template-columns:1fr}.sp-hero h2{font-size:32px}.sp-phone{display:none}}

/* ============================ CLASS SCHEDULE ============================ */
.cls-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 18px}
.cls-filter{font-family:var(--f-head);font-weight:700;font-size:14.5px;letter-spacing:.8px;text-transform:uppercase;
  padding:8px 14px;border-radius:7px;border:1px solid var(--rule);background:var(--card);color:var(--muted);cursor:pointer}
.cls-filter:hover{border-color:var(--accent);color:var(--ink)}
.cls-filter.on{background:var(--chrome);border-color:var(--chrome);color:#fff}
.cls-count{font-family:var(--f-mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-left:auto}

.cls-month{font-family:var(--f-mono);font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:var(--accent-ink);
  font-weight:600;margin:26px 0 10px;display:flex;align-items:center;gap:10px}
.cls-month:after{content:"";flex:1;height:1px;background:var(--rule)}

.cls{background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--accent);border-radius:9px;
  padding:15px 17px;margin-bottom:11px;display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:18px;align-items:center}
@media(max-width:760px){.cls{grid-template-columns:1fr;gap:10px}}
.cls.virtual{border-left-color:#2E6FA8}
.cls-date{text-align:center}
.cls-date .d{font-family:var(--f-head);font-weight:700;font-size:34px;line-height:.95;color:var(--ink)}
.cls-date .mo{font-family:var(--f-mono);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin-top:3px}
.cls-date .yr{font-family:var(--f-mono);font-size:9px;letter-spacing:1.2px;color:var(--muted);opacity:.75}
.cls-main h4{font-family:var(--f-head);font-weight:700;font-size:20px;margin:0 0 5px;letter-spacing:.3px;line-height:1.12}
.cls-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13.5px;color:var(--muted)}
.cls-mode{font-family:var(--f-mono);font-size:9px;font-weight:600;letter-spacing:.9px;text-transform:uppercase;
  padding:3px 7px;border-radius:4px;background:#EAF1F7;border:1px solid #BFD4E6;color:#245A85}
.cls-mode.p{background:#FCEFE4;border-color:#E8C79E;color:#8A5A0B}
.cls-side{text-align:right;min-width:150px}
@media(max-width:760px){.cls-side{text-align:left}}
.cls-price{font-family:var(--f-head);font-weight:700;font-size:24px;color:var(--ink);line-height:1}
.cls-seats{font-family:var(--f-mono);font-size:10px;letter-spacing:.9px;text-transform:uppercase;font-weight:600;margin:6px 0 9px}
.cls-seats.ok{color:#1F5A34}.cls-seats.low{color:#8A5A0B}.cls-seats.no{color:#8C2F27}
.cls-btn{display:inline-block;background:var(--accent);color:var(--chrome);font-weight:700;font-size:13.5px;
  padding:9px 18px;border-radius:7px;letter-spacing:.2px}
.cls-btn:hover{background:var(--accent-hi);text-decoration:none}
.cls-btn.closed{background:#E3DCD5;color:#7A6B5E;cursor:default;pointer-events:none}
.cls-empty{background:var(--card);border:1px dashed var(--rule);border-radius:9px;padding:26px;text-align:center;color:var(--muted)}
.cls-src{font-size:12.5px;color:var(--muted);margin-top:16px;line-height:1.55}
.cls-src a{font-weight:600}

/* ---------------------------------------------------- CLASS LIST · PAGING -- */
.cls-more-wrap{ margin:18px 0 4px; text-align:center }
.cls-more{
  font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:17px;
  letter-spacing:.02em; text-transform:uppercase;
  background:var(--chrome); color:#F8F4F0; border:0; border-radius:6px;
  padding:13px 26px; cursor:pointer; transition:background .15s, transform .05s;
  display:inline-flex; align-items:baseline; gap:10px;
}
.cls-more:hover{ background:#2A1F17 }
.cls-more:active{ transform:translateY(1px) }
.cls-more span{
  font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:11px;
  letter-spacing:.06em; text-transform:none; color:var(--accent);
}
.cls-more.collapse{
  background:transparent; color:var(--muted);
  border:1px solid var(--rule); padding:11px 22px;
}
.cls-more.collapse:hover{ background:#fff; color:var(--ink); border-color:var(--accent) }

/* ------------------------------------------------- SAFEPATH · LIVE DEMO -- */
.sp-body{ scroll-behavior:smooth; transition:opacity .3s ease }
.sp-body.fade{ opacity:0 }
.sp-opt{ transition:background .18s ease, border-color .18s ease, transform .12s ease, color .18s ease }
.sp-opt.press{ animation:spPress .42s ease }
@keyframes spPress{
  0%{ transform:scale(1) }
  35%{ transform:scale(.965); filter:brightness(1.18) }
  100%{ transform:scale(1) }
}
.sp-verdict{ border-left-color:#8C2F27 !important; margin-top:10px; animation:spIn .32s ease both }
.sp-verdict b{ color:#ff9f8a }
@keyframes spIn{ from{ opacity:0; transform:translateY(6px) } to{ opacity:1; transform:none } }
.sp-phone{ position:relative }
.sp-replay{
  position:absolute; left:50%; transform:translateX(-50%); bottom:-34px;
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.08em;
  text-transform:uppercase; color:rgba(248,244,240,.55);
  background:transparent; border:1px solid rgba(248,244,240,.18); border-radius:20px;
  padding:5px 14px; cursor:pointer; transition:color .15s, border-color .15s;
}
.sp-replay:hover{ color:var(--accent); border-color:var(--accent) }
@media (max-width:900px){ .sp-replay{ position:static; transform:none; display:block; margin:14px auto 0 } }

/* ------------------------------------------------ SAFEPATH · DEMO CURSOR -- */
.sp-body{ position:relative }
.sp-cursor{
  position:absolute; width:0; height:0; z-index:5; pointer-events:none;
  opacity:0; transition:opacity .25s ease;
}
.sp-cursor.show{ opacity:1 }
.sp-cursor svg{
  position:absolute; left:-3px; top:-2px;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.65));
  transition:transform .13s ease;
}
.sp-cursor.down svg{ transform:scale(.8) }
.sp-cursor .ring{
  position:absolute; left:0; top:0; width:12px; height:12px; margin:-6px 0 0 -6px;
  border-radius:50%; border:2px solid var(--accent); opacity:0;
}
.sp-cursor.down .ring{ animation:spRipple .42s ease-out }
@keyframes spRipple{
  0%{ opacity:.9; transform:scale(.5) }
  100%{ opacity:0; transform:scale(3.4) }
}

/* -------------------------------------------- ARTICLE REFERENCE ON TILES -- */
.sp-live{ display:flex; align-items:center; gap:7px; flex-wrap:wrap }
.sp-ref{
  font-family:'IBM Plex Mono',monospace; font-size:9px; font-weight:600;
  letter-spacing:.06em; color:var(--accent);
  border:1px solid rgba(224,138,75,.42); border-radius:3px;
  padding:1px 5px; white-space:nowrap;
}
.sp-ref.vd{ display:inline-block; margin-top:7px; color:#ff9f8a; border-color:rgba(255,159,138,.42) }
.tool .step .n{ display:flex; align-items:center; gap:9px; flex-wrap:wrap }
.q-ref{
  font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:600;
  letter-spacing:.06em; text-transform:none; color:var(--accent-ink);
  background:rgba(224,138,75,.12); border:1px solid rgba(224,138,75,.32);
  border-radius:3px; padding:1px 6px; white-space:nowrap;
}
