/* ============================================================
   RFPBench — shared stylesheet
   Global rules below are lifted verbatim from the design source
   (RFPBench Site.dc.html <helmet><style>). Component and hover/
   focus classes reproduce, with identical values, the chrome and
   the interactions the prototype's JS runtime applied through its
   style-hover / style-focus attributes.
   ============================================================ */

/* ---- Globals (verbatim from source) ---- */
html{scroll-behavior:smooth}
*,*::before,*::after{box-sizing:border-box}
/* The [hidden] attribute must win over inline display values (e.g. the
   success panels carry style="display:flex" and are shown by JS on submit). */
[hidden]{display:none !important}
body{margin:0;background:#FBFBFA;color:#16181D;font-family:'Instrument Sans',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
input::placeholder{color:#9AA0AD}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes pulseDot{0%,100%{opacity:1}50%{opacity:.3}}
@media (max-width:920px){
  [data-r-hide]{display:none !important}
  [data-r-show]{display:flex !important}
  [data-r-stack]{flex-direction:column !important;align-items:stretch !important}
  [data-r-grid]{grid-template-columns:1fr !important}
  [data-r-h1]{font-size:38px !important;line-height:1.14 !important}
  [data-r-h2]{font-size:29px !important}
  [data-r-sec]{padding-top:68px !important;padding-bottom:68px !important}
  [data-persona-panel]{display:block !important}
  [data-persona-toggle]{display:none !important}
  [data-persona-note]{display:block !important}
}

/* ---- Page shell ---- */
.page{min-height:100vh;display:flex;flex-direction:column}
.main{flex:1}

/* ---- Nav ---- */
.nav{position:sticky;top:0;z-index:60;background:rgba(251,251,250,0.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid #E6E8EC}
.nav__inner{max-width:1160px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.nav__brand{display:flex;align-items:center;text-decoration:none;color:#16181D;flex-shrink:0}
.nav__logo{display:block;height:36px;width:auto}
.nav__links{display:flex;align-items:center;gap:2px}
.nav__actions{display:flex;align-items:center;gap:10px}
.nav-link{padding:8px 12px;border-radius:7px;font-size:14.5px;font-weight:500;text-decoration:none;color:#4B5160;transition:background .12s ease,color .12s ease}
.nav-link:hover{background:#F0F1F4;color:#16181D}
.nav-link[aria-current="page"]{color:#2343AB;font-weight:600;background:#EEF2FD}
.nav__toggle{display:none;flex-direction:column;justify-content:center;gap:4px;width:40px;height:40px;background:#fff;border:1px solid #D8DBE2;border-radius:8px;cursor:pointer;padding:0 10px}
.nav__toggle span{display:block;height:2px;background:#16181D;border-radius:1px}
.nav__mobile{border-top:1px solid #E6E8EC;background:#FBFBFA;padding:12px 24px 20px;display:flex;flex-direction:column;gap:2px}
.nav__mobile[hidden]{display:none}
.mnav-link{padding:12px 8px;font-size:16px;text-decoration:none;border-bottom:1px solid #EFF0F3;border-radius:6px;color:#16181D;font-weight:500}
.mnav-link[aria-current="page"]{color:#2343AB;font-weight:600;background:#EEF2FD}
.mnav-cta{margin-top:14px;display:inline-flex;align-items:center;justify-content:center;background:#2F54CC;color:#fff;border-radius:9px;padding:13px 20px;font-size:15px;font-weight:600;text-decoration:none}

/* ---- Footer ---- */
.footer{background:#14171F;color:#B7BCC8}
.footer__inner{max-width:1160px;margin:0 auto;padding:64px 24px 32px}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.footer__col{display:flex;flex-direction:column;gap:12px}
.footer__brandcol{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.footer__logo{display:block;height:38px;width:auto;filter:brightness(0) invert(1)}
.footer__head{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:#6B7284}
.footer__link{font-size:14px;color:#B7BCC8;text-decoration:none}
.footer__link:hover{color:#fff}
.footer__link--muted{color:#8B92A3}
.footer__link--muted:hover{color:#fff}
.footer__social{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,0.14);color:#B7BCC8;transition:color .15s ease,border-color .15s ease,background .15s ease}
.footer__social:hover{color:#fff;border-color:rgba(255,255,255,0.32);background:rgba(255,255,255,0.06)}
.footer__bottom{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,0.1);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:baseline}

/* ---- Hover / focus states (were prototype style-hover/style-focus).
   !important is required because these override element-level inline
   styles, which otherwise win over class rules even on :hover/:focus. ---- */
.u-hov-primary:hover{background:#2343AB !important;border-color:#2343AB !important}
.u-hov-ghost:hover{background:#F5F6F8 !important;border-color:#B9BFCB !important}
.u-hov-ghost2:hover{background:#FBFBFC !important;border-color:#A9BCEE !important}
.u-hov-card:hover{border-color:#CCD7F6 !important;box-shadow:0 8px 24px rgba(35,67,171,0.09) !important;transform:translateY(-2px) !important}
.u-hov-underline:hover{text-decoration:underline !important}
.u-hov-seehow:hover{color:#2F54CC !important}
.u-hov-faq:hover{background:#FBFBFC !important}
.u-hov-srcrow:hover{border-color:#CCD7F6 !important}
.u-hov-mapbtn:hover{border-color:#2F54CC !important}
.u-hov-optbtn:hover{border-color:#A9BCEE !important}
.u-hov-stepbtn:hover{border-color:#CCD7F6 !important}
.u-hov-reset:hover{color:#2F54CC !important;background:#EEF2FD !important}
.u-hov-approve:hover{background:#E9F6EF !important}
.u-hov-edit:hover{background:#F5F6F8 !important}
.u-hov-flag:hover{background:#FDF4E0 !important}
.u-hov-resolve:hover{opacity:.88}
.u-hov-toc:hover{color:#2F54CC !important;border-bottom:1px solid #CCD7F6 !important}
.u-focus-input:focus{border:1px solid #2F54CC !important;box-shadow:0 0 0 3px rgba(47,84,204,0.14) !important}

/* Honeypot: off-screen field bots fill and humans do not. */
.hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden}
