/* ekplabz × SWELL — fitting SWELL's own markup into the machine look.
   ekp-base.css holds the design (tokens, metal band, buttons); this file only adapts SWELL's elements to it. */

/* ───────── header ───────── */
#header.l-header.ekp-header {
  position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 100;
  display: flex; align-items: center; gap: 16px;
  padding: 10px clamp(30px, 4vw, 48px);
  color: #fff; border-bottom: 1px solid #0b0d12;
}
#fix_header { display: none !important; } /* our header is already sticky */
/* SWELL's sticky sidebar (TOC) assumes no fixed header; keep it below ours (65px tall) */
#body_wrap #fix_sidebar { top: calc(var(--wp-admin--admin-bar--height, 0px) + 65px + 16px); }
.ekp-header .brand { color: #fff; text-decoration: none; }
.ekp-header .brand b { line-height: 1.1; }
.ekp-gnav { margin-left: auto; }
.ekp-gnav__list { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
/* menu links become the machined push buttons (same look as .mbtn) */
.ekp-gnav__list a {
  position: relative; display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--tech); font-weight: 700; font-size: 14px; letter-spacing: .12em; text-transform: uppercase;
  padding: 6px 14px 6px 12px; border-radius: 4px; color: #1d2433; text-decoration: none;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .8);
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .25) 0 1px, transparent 1px 3px),
    linear-gradient(180deg, #f7f9fb 0%, #d5dbe3 48%, #b4bcc9 52%, #dde2e9 100%);
  border: 1px solid #3a4150;
  box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 rgba(0, 0, 0, .18), 0 3px 0 #15181f, 0 4px 6px rgba(0, 0, 0, .55);
  transition: transform .06s, box-shadow .06s;
}
.ekp-gnav__list a::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #bff8ff, var(--cyan) 50%, #0a7f93);
  box-shadow: 0 0 6px var(--cyan), inset 0 0 0 1px rgba(0, 0, 0, .3);
}
.ekp-gnav__list a:hover { color: var(--blue-700); }
.ekp-gnav__list a:active { transform: translateY(3px); box-shadow: inset 0 1px 0 #fff, 0 1px 2px rgba(0, 0, 0, .5); }
.ekp-gnav__list .current-menu-item > a::before { background: radial-gradient(circle at 35% 35%, #d9ffe6, var(--lime) 50%, #138a43); box-shadow: 0 0 6px var(--lime); }

/* SWELL's mobile buttons (menu / search) on the dark band */
.ekp-header__sp { display: none; margin-left: auto; align-items: center; gap: 4px; }
.ekp-header .c-iconBtn { color: #e9eef6; }
.ekp-header .c-iconBtn:hover { color: var(--cyan); }
@media (max-width: 959px) {
  .ekp-gnav { display: none; }
  .ekp-header__sp { display: flex; }
  #header.l-header.ekp-header { padding: 8px 16px 8px 30px; }
}

/* ───────── footer ───────── */
#footer.l-footer { display: block; padding: 0; background: none; border: 0; color: inherit; }
#footer.l-footer::before { content: none; }
.ekp-footer {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 12px;
  padding: 22px clamp(30px, 4vw, 48px);
  font-family: var(--mono); font-size: 11px; letter-spacing: .08em; color: #c3cad5;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, .7); border-top: 1px solid #0b0d12;
}
.ekp-footer::before { /* neon rail on the top edge */
  content: ""; position: absolute; left: 0; right: 0; top: -2px; height: 2px;
  background: linear-gradient(90deg, var(--cyan), var(--magenta), var(--amber), var(--lime), var(--violet), var(--cyan));
  background-size: 200% 100%; animation: rail 8s linear infinite;
}
.ekp-footer .fnav a { text-decoration: none; }
.ekp-footer .fnote { margin: 8px 0 0; font-size: 11px; text-align: center; opacity: .7; } /* the Amazon Associates statement */
.ekp-footer .plate { padding: 3px 10px; border: 1px solid #1a1e26; background: linear-gradient(#2a2f3a, #1b1f28); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12); color: var(--cyan); }

/* ───────── fixed buttons (page top / TOC): machined round knobs with a neon ring ───────── */
.p-fixBtnWrap { right: 18px; bottom: 18px; gap: 14px; }
.c-fixBtn {
  width: 52px; height: 52px; border-radius: 50%; color: #1d2433;
  background:
    repeating-conic-gradient(from 0deg, rgba(255, 255, 255, .08) 0 2deg, transparent 2deg 6deg),
    radial-gradient(circle at 35% 30%, #f7f9fb, #c9cfd8 45%, #8d96a5 75%, #5b6475) !important;
  box-shadow: inset 0 1px 0 #fff, 0 0 0 3px #2a2f3a, 0 0 0 4px #7d8698, 0 6px 12px rgba(0, 0, 0, .45);
  border: 0; opacity: 1;
}
.c-fixBtn::after { /* neon ring in the unit colour (cyan elsewhere) */
  content: ""; position: absolute; inset: -7px; border-radius: 50%; pointer-events: none;
  border: 2px solid var(--acc, var(--cyan)); box-shadow: 0 0 8px var(--acc, var(--cyan));
}
.c-fixBtn:hover { color: var(--blue-700); }
.c-fixBtn__icon { font-size: 20px; text-shadow: 0 1px 0 #fff; }
.c-fixBtn__label { font-family: var(--mono); font-size: 9px; letter-spacing: .1em; }

/* ───────── LINKED SITES (inc/links.php): external sites as machined parts plates ───────── */
.ekp-links { margin: 34px 0 28px; }
.ekp-links .lk-head {
  display: flex; align-items: center; gap: 10px; padding: 8px 14px; color: #dfe6f3;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .05) 0 1px, transparent 1px 3px), linear-gradient(180deg, #474f60, #2a2f3a 45%, #1b1f28);
  clip-path: polygon(10px 0, 100% 0, 100% 100%, 0 100%, 0 10px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), inset 0 -2px 0 var(--acc, var(--cyan));
}
.ekp-links .lk-head::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--acc, var(--cyan)); box-shadow: 0 0 8px var(--acc, var(--cyan)); }
.ekp-links .lk-title { font: 700 15px var(--tech, sans-serif); letter-spacing: .2em; color: #fff; } /* not a heading: article h3 styles must not touch it */
.ekp-links .lk-sub { font: 11px var(--mono, monospace); letter-spacing: .06em; color: #9aa6bd; }
.ekp-links .lk-head .lk-pr { margin-left: auto; padding: 1px 6px; color: #0b1022; background: var(--amber, #ffb020); font-weight: 700; }
.ekp-links .lk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; padding: 12px; background: linear-gradient(rgba(29, 61, 156, .06) 1px, transparent 1px) 0 0 / 12px 12px, linear-gradient(90deg, rgba(29, 61, 156, .06) 1px, transparent 1px) 0 0 / 12px 12px, #e9edf2; box-shadow: inset 0 0 0 1px #c4cbd6; }
.ekp-links a.lk {
  position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 10px; align-items: start; padding: 11px 12px 10px 14px;
  color: var(--ink, #0b1022); text-decoration: none; background: linear-gradient(#ffffff, #f1f4f8);
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
  box-shadow: inset 0 0 0 1px #c4cbd6; transition: transform .12s, box-shadow .12s;
}
.ekp-links a.lk::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--acc, var(--cyan)); }
.ekp-links a.lk:hover { transform: translateY(-2px); box-shadow: inset 0 0 0 1px var(--acc, var(--cyan)), inset 0 -3px 0 var(--acc, var(--cyan)); }
.ekp-links .lk-ic { /* machined socket for the favicon */
  display: grid; place-items: center; width: 44px; height: 44px; border-radius: 6px;
  background: radial-gradient(circle at 50% 35%, #ffffff, #dfe4ea 70%); box-shadow: inset 0 0 0 1px #aeb6c3, inset 0 2px 3px rgba(0, 0, 0, .12), 0 1px 0 #fff;
}
.ekp-links .lk-ic img { width: 24px; height: 24px; margin: 0; }
.ekp-links .lk-bd { display: grid; gap: 3px; min-width: 0; }
.ekp-links .lk-hd { display: flex; align-items: center; gap: 6px; min-width: 0; }
.ekp-links .lk-hd b { font-size: 14px; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ekp-links .lk-ks { flex: none; display: flex; gap: 3px; margin-left: auto; }
.ekp-links .lk-site { font: 700 10px var(--mono, monospace); letter-spacing: .1em; color: var(--steel-500, #8d96a5); text-transform: uppercase; }
.ekp-links .lk-k { flex: none; padding: 0 5px; font: 700 9.5px var(--mono, monospace); font-style: normal; letter-spacing: .12em; color: #fff; background: #4a5263; }
.ekp-links .lk-k.-maker { background: #1d3a92; } .ekp-links .lk-k.-shop { background: #b5530b; } .ekp-links .lk-k.-info { background: #0e6e6e; }
.ekp-links .lk-k.-doc { background: #5b3aa0; } .ekp-links .lk-k.-community { background: #2f7a33; }
.ekp-links .lk-k.-ec { background: #c4122f; } .ekp-links .lk-k.-media { background: #a0167a; } .ekp-links .lk-k.-catalog { background: #3a5f8a; } .ekp-links .lk-k.-tool { background: #4a5263; }
.post_content .ekp-links { margin: 1.8em 0; }
.post_content .ekp-links a.lk { color: var(--ink, #0b1022); border: 0; }
.ekp-links .lk-key { margin-left: auto; padding: 1px 8px; cursor: copy; font: 11px var(--mono, monospace); letter-spacing: .08em; color: #9aa6bd; background: #0b1022; border: 1px dashed #5a6375; }
.ekp-links .lk-key b { color: var(--acc, var(--cyan)); }
.ekp-links .lk-key.-done { color: #0b1022; background: var(--acc, var(--cyan)); border-color: transparent; }
.ekp-links .lk-key.-done b { color: #0b1022; }
.ekp-links .lk-key + .lk-pr { margin-left: 6px; }
.ekp-links.-empty .lk-grid { display: block; }
.ekp-links .lk-empty { margin: 0; padding: 4px 6px; font-size: 12.5px; color: #4a5263; }
.ekp-links-missing { padding: 6px 10px; font: 12px var(--mono, monospace); color: #7a0c2a; background: #ffe7ee; border: 1px dashed #c41e4a; }
.ekp-links .lk-d { font-size: 12.5px; line-height: 1.55; color: #4a5263; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ekp-links .lk-h { font: 10.5px var(--mono, monospace); color: var(--steel-500, #8d96a5); }
.ekp-unitpage .ekp-links { margin-top: 36px; }

/* glossary card on a tag page whose name is a glossary term (inc/glossary.php) */
.ekp-gl-card {
  --g: #ff2bd6; display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; margin: 18px 0 8px; padding: 16px 20px 16px 22px;
  color: #dfe7ff !important; text-decoration: none !important;
  background: linear-gradient(135deg, #0d1d4f, #071233); box-shadow: inset 4px 0 0 var(--g), inset 0 0 0 1px rgba(255, 43, 214, .5), 0 0 18px rgba(255, 43, 214, .18);
  clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%);
}
.ekp-gl-card:hover { box-shadow: inset 4px 0 0 var(--g), inset 0 0 0 1px #ff2bd6, 0 0 22px rgba(255, 43, 214, .45); }
.glc-k { grid-column: 1 / -1; font-family: var(--mono); font-size: 10.5px; letter-spacing: .16em; color: #8fa0cf; }
.glc-k b { color: #ff2bd6; text-shadow: 0 0 6px #ff2bd6; }
.glc-t { font-size: 20px; font-weight: 700; color: #fff; }
.glc-t small { margin-left: 10px; font-size: 12px; font-weight: 400; color: #8fa0cf; }
.glc-d { grid-column: 1; font-size: 14px; line-height: 1.7; }
.glc-go { grid-column: 2; grid-row: 2 / 4; align-self: center; font-family: var(--mono); font-size: 12px; color: #ff2bd6; white-space: nowrap; }

/* ───────── mobile menu (parts/header/sp_menu.php): a dark control panel ───────── */
.ekp-spmenu .p-spMenu__inner { padding: 0; color: #e6ecf8; background:
  linear-gradient(rgba(34, 227, 255, .05) 1px, transparent 1px) 0 0 / 24px 24px,
  linear-gradient(90deg, rgba(34, 227, 255, .05) 1px, transparent 1px) 0 0 / 24px 24px, #0b1022;
  box-shadow: 0 0 0 1px #000, 8px 0 30px rgba(0, 0, 0, .6); }
.ekp-spmenu .p-spMenu__inner::before { display: none; } /* SWELL lays a light sheet over the panel */
.ekp-spmenu.-right .p-spMenu__inner { box-shadow: 0 0 0 1px #000, -8px 0 30px rgba(0, 0, 0, .6); }
.ekp-spmenu__head { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px 12px 40px; border-bottom: 1px solid #000; }
.ekp-spmenu__head::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px;
  background: linear-gradient(90deg, var(--cyan), var(--magenta), var(--amber), var(--lime), var(--violet)); }
.ekp-spmenu__title { font: 700 20px var(--tech); letter-spacing: .14em; color: #f2f5f9; text-shadow: 0 -1px 0 #000; }
.ekp-spmenu__title small { display: block; font: 9px var(--mono); letter-spacing: .24em; color: var(--cyan); }
.ekp-spmenu .p-spMenu__closeBtn { position: static; }
.ekp-spmenu .p-spMenu__closeBtn .c-iconBtn { width: 38px; height: 38px; color: #1d2433; border-radius: 4px;
  background: linear-gradient(180deg, #f7f9fb 0%, #d5dbe3 48%, #b4bcc9 52%, #dde2e9 100%); border: 1px solid #3a4150;
  box-shadow: inset 0 1px 0 #fff, 0 2px 0 #15181f; }
.ekp-spmenu .p-spMenu__body { padding: 18px 16px 30px; }
.ekp-spnav { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; counter-reset: sp; }
.ekp-spnav li { margin: 0; border: 0; }
.ekp-spnav a { counter-increment: sp; display: flex; align-items: center; gap: 12px; padding: 12px 14px; text-decoration: none;
  font: 700 16px var(--tech); letter-spacing: .14em; color: #e6ecf8; background: #121827; border: 1px solid #273149; border-left: 3px solid var(--cyan); }
.ekp-spnav a::before { content: counter(sp, decimal-leading-zero); font: 11px var(--mono); color: var(--cyan); }
.ekp-spnav a::after { content: "▶"; margin-left: auto; font-size: 9px; color: #5d6880; }
.ekp-spnav .current-menu-item > a, .ekp-spnav .current_page_parent > a, .ekp-spnav a:hover { background: #192133; box-shadow: inset 0 0 0 1px rgba(34, 227, 255, .5), 0 0 12px rgba(34, 227, 255, .2); }
.ekp-spmenu__label { margin: 22px 0 8px; font: 10px var(--mono); letter-spacing: .24em; color: #8e9ab3; }
.ekp-spunits { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ekp-spunits a { display: grid; gap: 2px; padding: 9px 10px; text-decoration: none; background: #121827; border: 1px solid #273149; border-top: 3px solid var(--c); }
.ekp-spunits a b { font: 700 10px var(--mono); letter-spacing: .1em; color: var(--c); text-shadow: 0 0 6px var(--c); }
.ekp-spunits a span { font-size: 12px; color: #e6ecf8; line-height: 1.35; }
.ekp-spunits a.planned { opacity: .55; }
.ekp-spmenu .p-spMenu__overlay { background: rgba(3, 5, 10, .7); }
