/* Shared core styles for all RadRecruit pages.
   Linked from every page via <link rel="stylesheet" href="/styles.css">.
   Page-specific rules (overlays, :root --accent, page classes) and inline
   element styles stay in each page. Edit shared look here, once. */

html, body { margin:0; padding:0; }
body { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background:#0D1F1A; }

/* Skip-to-content link: off-screen until keyboard-focused, then pinned top-left. */
.skip-link {
  position:absolute; left:-9999px; top:0; z-index:100;
  background:#0D1F1A; color:#F2F5F3; border:2px solid #A3FF3D; border-radius:0 0 8px 0;
  padding:12px 18px; font-size:15px; font-weight:600; text-decoration:none;
}
.skip-link:focus { left:0; }

.bg-fixed-img {
  background-image: url("/assets/hero.jpg");
  background-attachment: fixed;
  background-size: cover;
  background-repeat: no-repeat;
}

.nav { background:rgba(13,31,26,0.78); backdrop-filter:blur(8px); border-bottom:1px solid rgba(242,245,243,0.08); }
.navlink { color:rgba(242,245,243,0.7); text-decoration:none; font-size:15px; transition:color .2s; }
.navlink:hover { color:#F2F5F3; }
.navlink.active { color:#F2F5F3; }
.navlink.active::after { content:""; display:block; height:2px; background:var(--accent,#A3FF3D); margin-top:4px; }

/* Nav layout + mobile hamburger */
.nav-inner { max-width:1180px; margin:0 auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; }
.nav-logo { text-decoration:none; font-weight:800; font-size:22px; letter-spacing:-0.01em; }
.nav-menu { display:flex; gap:32px; align-items:center; }
.nav-toggle { display:none; background:none; border:0; cursor:pointer; width:44px; height:44px; padding:0; align-items:center; justify-content:center; }
.nav-burger, .nav-burger::before, .nav-burger::after { content:""; display:block; width:22px; height:2px; background:#F2F5F3; border-radius:2px; transition:transform .25s ease, background .2s ease; }
.nav-burger { position:relative; }
.nav-burger::before { position:absolute; left:0; top:-7px; }
.nav-burger::after  { position:absolute; left:0; top:7px; }
.nav-toggle[aria-expanded="true"] .nav-burger { background:transparent; }
.nav-toggle[aria-expanded="true"] .nav-burger::before { transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-burger::after  { transform:translateY(-7px) rotate(-45deg); }

@media (max-width:760px) {
  .nav-toggle { display:inline-flex; }
  .nav-menu {
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    padding:6px 24px 16px;
    background:rgba(13,31,26,0.97); backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(242,245,243,0.08);
    display:none;
  }
  .nav-menu.open { display:flex; }
  .nav-menu .navlink { padding:14px 2px; font-size:17px; }
  .nav-menu .navlink.active::after { width:24px; }
}

.logo-text { background:linear-gradient(100deg, #A3FF3D 0%, #5BF7B0 45%, #00F0C8 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; font-weight:800; }

/* ===== Footer (shared core; markup is duplicated per page, like the nav) ===== */
.site-footer { position:relative; background-position:center 60%; }  /* backdrop via .bg-fixed-img class on the element */
.footer-overlay { position:absolute; inset:0; background:linear-gradient(to bottom, rgba(13,31,26,0.74) 0%, rgba(13,31,26,0.92) 34%, rgba(13,31,26,0.97) 100%); }
.footer-inner { position:relative; z-index:1; max-width:1180px; margin:0 auto; padding:88px 24px 40px; }
.footer-top { display:grid; grid-template-columns:1.7fr 1fr 1fr; gap:48px; align-items:start; }
.footer-brand { max-width:380px; display:flex; flex-direction:column; align-items:flex-start; }
.footer-logo { text-decoration:none; font-size:24px; letter-spacing:-0.01em; }
.footer-cta { color:#00F0C8; text-decoration:none; font-size:15px; font-weight:600; border-bottom:1px solid rgba(0,240,200,0.4); padding-bottom:2px; margin-top:22px; transition:border-color .2s; }
.footer-cta:hover { border-color:#00F0C8; }
.footer-h { color:#F2F5F3; font-size:13px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; margin:0 0 14px; }
.footer-link { display:block; color:rgba(242,245,243,0.7); text-decoration:none; font-size:15px; padding:7px 0; transition:color .2s; }
.footer-link:hover { color:#F2F5F3; }
.footer-bottom { display:flex; justify-content:space-between; gap:16px 32px; flex-wrap:wrap; margin-top:56px; padding-top:24px; border-top:1px solid rgba(242,245,243,0.06); color:rgba(242,245,243,0.6); font-size:13px; }
.footer-legal { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.footer-legal a { color:rgba(242,245,243,0.7); text-decoration:none; transition:color .2s; }
.footer-legal a:hover, .footer-legal a:focus-visible { color:#F2F5F3; }
.footer-legal a + a::before { content:"\00B7"; margin-right:10px; color:rgba(242,245,243,0.4); }

@media (max-width:760px) {
  .footer-inner { padding:56px 24px 32px; }
  .footer-top { grid-template-columns:1fr; gap:36px; }
}

/* ===== Legal pages (Privacy / Accessibility / Terms) — shared content styles ===== */
.legal { max-width:760px; margin:0 auto; }
.legal .meta { color:rgba(242,245,243,0.6); font-size:14px; margin:0 0 36px; }
.legal h2 { color:#F2F5F3; font-size:24px; font-weight:700; line-height:1.3; margin:44px 0 14px; }
.legal h2:first-of-type { margin-top:0; }
.legal p { color:rgba(242,245,243,0.85); font-size:17px; line-height:1.7; margin:0 0 16px; }
.legal ul { margin:0 0 16px; padding-left:22px; }
.legal li { color:rgba(242,245,243,0.85); font-size:17px; line-height:1.7; margin:0 0 8px; }
.legal a { color:#00F0C8; text-decoration:underline; }
.legal a:hover { color:#5BF7B0; }
.legal strong { color:#F2F5F3; font-weight:600; }

/* Respect reduced-motion: still the bobbing hero chevron and ease out transitions. */
@media (prefers-reduced-motion: reduce) {
  .chevron { animation:none; }
  .readmore-content { transition:none; }
  *, *::before, *::after { animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}
