/* Rafusoft shared site header: contact bar, primary nav and index drawer.
   Scoped to .rf-head so page styles stay untouched. */

.rf-head{
  --bg:#04060b; --bg2:#080d16; --bg3:#0b1220;
  --panel:rgba(255,255,255,.035); --panel2:rgba(255,255,255,.05);
  --line:rgba(255,255,255,.09); --line2:rgba(255,255,255,.14);
  --accent:#F15A29; --accent-d:#d94e1f; --accent2:#FF9800;
  --cold:#8fb3d9; --cold-d:#5b7c99;
  --text:#fff; --muted:rgba(255,255,255,.64); --faint:rgba(255,255,255,.42);
  --disp:"Archivo",sans-serif; --mono:"IBM Plex Mono",monospace; --body:"Manrope",sans-serif;
  --maxw:1240px;
  color:#fff;font-family:var(--body);font-size:16px;line-height:1.65;
}
.rf-head *{box-sizing:border-box;margin:0;padding:0}
.rf-head a{color:inherit;text-decoration:none}
.rf-head img{max-width:100%;display:block}
.rf-head button{font:inherit;color:inherit}

:root{--head:117px}
@media(max-width:820px){:root{--head:135px}}
html{scroll-padding-top:calc(var(--head) + 12px)}

/* these hero wrappers still carry the top padding that cleared the old absolute header;
   the in-flow header already supplies that space, so the padding doubled the gap */
.bg-global.pt-20,.bradcamp-keyboard.pt-20,.hire-bg.pt-20,.bg-cobra-sdk.pt-20,.tools-bg.pt-20{padding-top:0!important;display:flow-root}

/* ---------- contact bar ---------- */
.rf-head .topbar{background:#05080e;border-bottom:1px solid rgba(255,255,255,.07);font-size:.75rem}
.rf-head .topbar-in{max-width:var(--maxw);margin:0 auto;padding:.5rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:.35rem 1.4rem;flex-wrap:wrap}
.rf-head .topbar-group{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem 1.15rem}
.rf-head .topbar a{display:inline-flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.7);font-weight:500;white-space:nowrap}
.rf-head .topbar a:hover{color:#fff}
.rf-head .topbar svg{width:12px;height:12px;color:var(--accent);flex:none}
.rf-head .topbar .cc{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;color:var(--accent);font-weight:600}
.rf-head .topbar a.topbar-email{margin-left:auto}
@media(max-width:1240px){.rf-head .topbar a.topbar-email{display:none}}
@media(max-width:640px){
  .rf-head .topbar-in{padding:.45rem .8rem;justify-content:center}
  .rf-head .topbar-group{justify-content:center;gap:.28rem .7rem}
  .rf-head .topbar a{font-size:.66rem}
  .rf-head .topbar svg{display:none}
  .rf-head .topbar .cc{font-size:.5rem;letter-spacing:.06em;padding-left:.05rem}
}

/* ---------- nav ---------- */
/* style.css pins every nav above all layers for the legacy header; keep this one under the drawer */
nav.rh-nav{z-index:50 !important}
.rf-head.site-head{position:relative;z-index:55}
.rf-head.rh-nav{position:sticky;top:0;z-index:50;background:rgba(4,6,11,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.rf-head .nav-in{max-width:var(--maxw);margin:0 auto;padding:.95rem 1.5rem;display:flex;align-items:center;gap:2rem}
.rf-head .logo{display:flex;align-items:center}
.rf-head .logo img{display:block;width:180px;height:auto}
.rf-head .nav-right{margin-left:auto;display:flex;align-items:center;gap:.9rem}
.rf-head .nav-quote{display:inline-flex;align-items:center;gap:.45rem;background:var(--accent);color:#fff;font-weight:700;font-size:.8rem;padding:.55rem .95rem;border-radius:4px;white-space:nowrap;transition:background .18s,transform .18s}
.rf-head button.nav-quote{border:0;font-family:inherit;cursor:pointer;-webkit-appearance:none;appearance:none}
.rf-head .nav-quote .cq-ico{display:none;width:18px;height:18px;flex:none}
.rf-head .nav-quote:hover{background:var(--accent-d);transform:translateY(-1px)}
.rf-head .menu-pill{display:inline-flex;align-items:center;gap:.8rem;background:none;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:.4rem .45rem .4rem 1rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:#fff;cursor:pointer;transition:border-color .18s,background .18s}
.rf-head .menu-pill:hover{border-color:rgba(241,90,41,.65);background:rgba(241,90,41,.08)}
.rf-head .menu-pill[aria-expanded="true"]{border-color:rgba(241,90,41,.65);background:rgba(241,90,41,.1)}
.rf-head .pill-burger{width:34px;height:34px;border-radius:50%;background:var(--accent);display:grid;place-content:center;gap:3px;flex:none}
.rf-head .pill-burger i{display:block;width:13px;height:1.5px;background:#fff;transition:transform .3s,opacity .2s}
.rf-head .menu-pill[aria-expanded="true"] .pill-burger i:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.rf-head .menu-pill[aria-expanded="true"] .pill-burger i:nth-child(2){opacity:0}
.rf-head .menu-pill[aria-expanded="true"] .pill-burger i:nth-child(3){transform:translateY(-4.5px) rotate(-45deg)}

/* ---------- drawer shell ---------- */
.rf-head.ix-scrim{position:fixed;inset:0;z-index:110;background:rgba(3,5,9,.66);opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s;margin:0;padding:0}
.rf-head.ix-scrim.open{opacity:1;visibility:visible}
.rf-head.ix-drawer{position:fixed;top:0;right:0;bottom:0;z-index:120;width:min(940px,100vw);background:#070b12;border-left:1px solid rgba(255,255,255,.1);box-shadow:-70px 0 120px -60px #000;display:flex;flex-direction:column;padding:1.45rem 2rem 1.4rem;transform:translateX(102%);visibility:hidden;transition:transform .5s cubic-bezier(.22,1,.36,1),visibility 0s .5s}
.rf-head.ix-drawer.open{transform:none;visibility:visible;transition:transform .5s cubic-bezier(.22,1,.36,1),visibility 0s}
body.ix-lock{overflow:hidden}
body.ix-lock charla-widget{display:none !important}
.rf-head .ix-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.08);flex:none}
.rf-head .ix-title{font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.4)}
.rf-head .ix-title em{font-style:normal;color:rgba(241,90,41,.7);padding:0 .15rem}
.rf-head .ix-close{position:relative;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:none;display:grid;place-items:center;cursor:pointer;color:rgba(255,255,255,.7);transition:color .18s,border-color .18s,transform .3s}
.rf-head .ix-close:hover{color:#fff;border-color:rgba(255,255,255,.4);transform:rotate(90deg)}
.rf-head .ix-close::before,.rf-head .ix-close::after{content:"";position:absolute;width:12px;height:1.5px;background:currentColor}
.rf-head .ix-close::before{transform:rotate(45deg)}
.rf-head .ix-close::after{transform:rotate(-45deg)}

/* ---------- three columns ---------- */
.rf-head .mc-cols{display:grid;grid-template-columns:186px 218px 1fr;gap:1.7rem;flex:1;min-height:0;padding:1.3rem 0 1rem}
.rf-head .mc-col{min-height:0;display:flex;flex-direction:column;position:relative}
.rf-head .mc-col2,.rf-head .mc-col3{border-left:1px solid rgba(255,255,255,.07);padding-left:1.6rem}
.rf-head .mc-k{font-family:var(--mono);font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.32);margin-bottom:.85rem;flex:none;display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}
.rf-head .mc-k em{font-style:normal;color:rgba(255,255,255,.2)}
.rf-head .mc-primary{display:flex;flex-direction:column;gap:.05rem;overflow:auto;min-height:0}
.rf-head .mc-primary button{display:flex;align-items:baseline;gap:.7rem;padding:.52rem 0;background:none;border:0;text-align:left;font-family:var(--disp);font-size:1.12rem;font-weight:700;letter-spacing:-.02em;color:rgba(255,255,255,.52);cursor:pointer;transition:color .16s,transform .16s}
.rf-head .mc-primary button .num{font-family:var(--mono);font-size:.5rem;letter-spacing:.1em;color:rgba(255,255,255,.26);font-weight:400}
.rf-head .mc-primary button:hover,.rf-head .mc-primary button.active{color:#fff;transform:translateX(4px)}
.rf-head .mc-primary button.active .num{color:var(--accent)}
.rf-head .mc-groups{display:flex;flex-direction:column;overflow:auto;min-height:0}
.rf-head .mc-group{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem;padding:.52rem 0;background:none;border:0;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;font-size:.83rem;line-height:1.35;color:rgba(255,255,255,.66);cursor:pointer;transition:color .16s,padding .16s}
.rf-head .mc-group i{font-style:normal;color:rgba(255,255,255,.24);flex:none}
.rf-head .mc-group:hover,.rf-head .mc-group.active{color:#fff;padding-left:.22rem}
.rf-head .mc-group.active i{color:var(--accent)}
.rf-head .mc-subs{display:flex;flex-direction:column;overflow:auto;min-height:0}

/* scroll without a visible bar: hidden native rail, soft edge fades, hairline cue */
.rf-head .mc-primary,.rf-head .mc-groups,.rf-head .mc-subs,.rf-head .ix-tree{scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain}
.rf-head .mc-primary::-webkit-scrollbar,.rf-head .mc-groups::-webkit-scrollbar,.rf-head .mc-subs::-webkit-scrollbar,.rf-head .ix-tree::-webkit-scrollbar{display:none;width:0;height:0}
.rf-head .mc-primary[data-top],.rf-head .mc-groups[data-top],.rf-head .mc-subs[data-top]{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 20px);mask-image:linear-gradient(to bottom,transparent,#000 20px)}
.rf-head .mc-primary[data-bot],.rf-head .mc-groups[data-bot],.rf-head .mc-subs[data-bot]{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 20px),transparent)}
.rf-head .mc-primary[data-top][data-bot],.rf-head .mc-groups[data-top][data-bot],.rf-head .mc-subs[data-top][data-bot]{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 20px,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 20px,#000 calc(100% - 20px),transparent)}
.rf-head .mc-col::after{content:"";position:absolute;right:-.75rem;width:2px;top:var(--st,0px);height:var(--sh,0px);border-radius:2px;background:linear-gradient(to bottom,var(--accent),rgba(241,90,41,.2));opacity:0;transition:opacity .45s;pointer-events:none}
.rf-head .mc-col.sc-on::after{opacity:.85}

/* ---------- thumbnail rows ---------- */
.rf-head .tk-row{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:.85rem;padding:.46rem 0;border-bottom:1px solid rgba(255,255,255,.06);color:rgba(255,255,255,.78);transition:color .16s}
.rf-head .tk-row:first-child{padding-top:0}
.rf-head .tk-thumb{width:58px;height:38px;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#0b1018;flex:none;position:relative}
.rf-head .tk-thumb img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(1.18) contrast(1.04);transition:transform .35s cubic-bezier(.22,1,.36,1)}
.rf-head .tk-row:hover .tk-thumb img{transform:scale(1.08)}
.rf-head .tk-mono{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.08em;color:hsl(var(--h,205) 58% 72%);background:linear-gradient(150deg,hsl(var(--h,205) 40% 17%),hsl(var(--h,205) 34% 9%));box-shadow:inset 0 0 0 1px hsl(var(--h,205) 45% 42% / .35);transition:color .2s,background .2s}
.rf-head .tk-row:hover .tk-mono{color:hsl(var(--h,205) 70% 82%);background:linear-gradient(150deg,hsl(var(--h,205) 42% 21%),hsl(var(--h,205) 36% 11%))}
.rf-head .tk-row:hover{color:#fff}
.rf-head .tk-t b{display:block;font-size:.83rem;font-weight:600;line-height:1.3}
.rf-head .tk-row i{font-style:normal;color:rgba(255,255,255,.24);font-size:.9rem;transition:transform .16s,color .16s}
.rf-head .tk-row:hover i{color:var(--accent);transform:translateX(3px)}
.rf-head .tk-sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cold);padding-bottom:.45rem;margin:.9rem 0 .2rem;border-bottom:1px solid rgba(143,179,217,.25)}
.rf-head .tk-sec-h:first-child{margin-top:0}
.rf-head .tk-sec-h em{font-style:normal;color:rgba(255,255,255,.22)}
.rf-head .direct{border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.1rem 1.2rem;background:rgba(255,255,255,.02)}
.rf-head .direct h4{font-family:var(--disp);font-size:1.1rem;font-weight:700;margin-bottom:.35rem}
.rf-head .direct p{color:var(--muted);font-size:.8rem;line-height:1.55;margin-bottom:.85rem}
.rf-head .direct a{display:inline-flex;align-items:center;gap:.4rem;background:var(--accent);color:#fff;font-weight:700;font-size:.76rem;padding:.58rem .9rem;border-radius:6px}

/* ---------- drawer footer ---------- */
.rf-head .ix-page-links{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.1rem;padding-bottom:.9rem;margin-bottom:.9rem;border-bottom:1px solid rgba(255,255,255,.08);font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.34);list-style:none}
.rf-head .ix-page-links a{color:rgba(255,255,255,.58);transition:color .16s}
.rf-head .ix-page-links a:hover{color:var(--accent)}
.rf-head .ix-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex:none}
.rf-head .ix-foot .mono{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;color:rgba(255,255,255,.45)}
.rf-head .ix-cta{display:inline-flex;align-items:center;gap:.5rem;background:var(--accent);color:#fff;font-weight:700;font-size:.8rem;padding:.6rem 1rem;border-radius:5px}
.rf-head .ix-cta:hover{background:var(--accent-d)}

/* ---------- mobile tree ---------- */
.rf-head .ix-tree{display:none;flex:1;min-height:0;overflow:auto;padding:.4rem 0 1rem}
.rf-head .ix-tree details{border-bottom:1px solid rgba(255,255,255,.07)}
.rf-head .ix-tree summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;font-family:var(--disp);font-size:1.05rem;font-weight:700;color:rgba(255,255,255,.8)}
.rf-head .ix-tree summary::-webkit-details-marker{display:none}
.rf-head .ix-tree summary em{font-family:var(--mono);font-style:normal;font-size:.56rem;letter-spacing:.1em;color:rgba(255,255,255,.3);display:flex;align-items:center;gap:.6rem}
.rf-head .ix-tree summary em::after{content:"";width:6px;height:6px;border-right:1px solid rgba(255,255,255,.4);border-bottom:1px solid rgba(255,255,255,.4);transform:rotate(45deg);transition:transform .25s}
.rf-head .ix-tree details[open]>summary{color:#fff}
.rf-head .ix-tree details[open]>summary em::after{transform:rotate(-135deg)}
.rf-head .ix-tree .m-sub{padding:.1rem 0 .7rem 1rem;border-left:1px solid rgba(255,255,255,.1);margin-left:.15rem}
.rf-head .ix-tree .m-sub details{border-bottom:0}
.rf-head .ix-tree .m-sub summary{font-family:var(--body);font-size:.88rem;font-weight:600;color:rgba(255,255,255,.62);padding:.5rem 0}
.rf-head .ix-tree a.m-leaf-link{display:block;padding:.42rem 0 .42rem .1rem;font-size:.84rem;color:rgba(255,255,255,.66);border-bottom:1px solid rgba(255,255,255,.04)}
.rf-head .ix-tree a.m-leaf-link:hover{color:var(--accent)}
.rf-head .ix-tree .m-sub .m-sub{margin-left:.7rem}

@media(max-width:900px){
  .rf-head .mc-cols{display:none}
  .rf-head .ix-tree{display:block}
  .rf-head.ix-drawer{width:100vw;border-left:0;padding:1.1rem 1.15rem 1.2rem}
  .rf-head .ix-page-links{font-size:.54rem;gap:.35rem .85rem}
}
@media(max-width:560px){
  .rf-head .menu-pill{padding-left:.8rem;gap:.6rem;font-size:.6rem;letter-spacing:.16em}
  .rf-head .ix-head{padding-bottom:.8rem}
  .rf-head .ix-foot{flex-wrap:wrap;gap:.7rem}
  .rf-head .ix-cta{width:100%;justify-content:center}
}
@media(max-width:640px){
  .rf-head .nav-quote{width:44px;height:44px;padding:0;border-radius:50%;justify-content:center}
  .rf-head .nav-quote .cq-label{display:none}
  .rf-head .nav-quote .cq-ico{display:block}
}
@media(max-width:400px){
  .rf-head .nav-in{padding:.85rem 1rem}
  .rf-head .logo img{width:160px}
}
