/* Shared site chrome (scripts/lib/chrome.mjs): header CTAs, footer, mobile sticky CTA bar, focus rings.
   Loaded on every page after site.css / the hand-written pages' inline styles. */

/* --- Header CTAs: "Log in" text link, secondary "Book a demo", primary "Start Free Trial" --- */
.nav-links { gap: 28px; }
.nav-cta-item { display: flex; align-items: center; }
.nav-links .nav-demo { color: #fff; border: 1px solid rgba(255,255,255,0.35); padding: 9px 18px; border-radius: 8px; font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
.nav-links .nav-demo:hover { border-color: var(--gold, #C8962E); color: var(--gold-light, #E0B24E); }
.nav-links .nav-trial { min-height: 44px; text-decoration: none; }
.nav-links .nav-login { color: #fff; font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
.nav-links .nav-login:hover { color: var(--gold-light, #E0B24E); }
.nav-links > li > a, .nav-menu-btn { min-height: 44px; display: inline-flex; align-items: center; }
@media (max-width: 1100px) and (min-width: 769px) {
  .nav-links { gap: 18px; }
  .nav-links .nav-demo { padding: 9px 12px; }
  .nav-links .nav-trial { padding: 10px 16px; }
}
@media (max-width: 768px) {
  /* The collapsed mobile menu kept its 16px padding and painted a dark strip under the header that hid the
     top of the hero (the eyebrow, when the GalaCON bar pushes the header down). No padding while closed. */
  .nav-links:not(.open) { padding-top: 0 !important; padding-bottom: 0 !important; border-bottom-width: 0 !important; }
  .nav-cta-item { padding: 8px 0 !important; }
  .nav-links .nav-demo, .nav-links .nav-trial, .nav-links .nav-login { width: 100%; justify-content: center; }
  .nav-links .nav-login { border: 1px solid rgba(255,255,255,0.2); border-radius: 8px; }
}

/* --- Footer --- */
.footer-h { color: var(--gold, #C8962E); font-size: 0.9rem; font-weight: 700; margin-bottom: 20px; text-transform: uppercase; letter-spacing: 1px; font-family: 'Archivo', sans-serif; }
.footer-column a { display: inline-block; padding: 4px 0; }
.footer-badges { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; padding: 0; }
.footer-badges li { border: 1px solid rgba(200,150,46,0.35); color: rgba(255,255,255,0.75); border-radius: 999px; padding: 6px 14px; font-size: 0.78rem; letter-spacing: 0.04em; }
.social-links a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }

/* --- Mobile sticky CTA bar (<768px). assets/nav.js toggles .m-cta-hidden while the footer is visible. --- */
.m-cta { display: none; }
@media (max-width: 767px) {
  .m-cta { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(5,13,26,0.96); border-top: 1px solid rgba(200,150,46,0.35); transition: transform 0.25s ease; }
  .m-cta.m-cta-hidden { transform: translateY(110%); }
  .m-cta-btn { display: flex; align-items: center; justify-content: center; min-height: 48px; width: 100%; border-radius: 10px; background: linear-gradient(135deg, #C8962E 0%, #A87A20 100%); color: #050D1A; font-weight: 700; font-size: 1rem; text-decoration: none; }
  body.has-mcta { padding-bottom: 72px; }
  body.has-mcta .chat-fab { bottom: 84px; }
  body.has-mcta .chat-panel { bottom: 152px; height: calc(100vh - 180px); }
}

/* --- Accessibility: visible keyboard focus everywhere --- */
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [role="tab"]:focus-visible, label:focus-visible {
  outline: 3px solid #E0B24E !important; outline-offset: 3px; border-radius: 6px;
}
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 3000; background: #fff; color: #0A1628; padding: 10px 16px; border-radius: 8px; font-weight: 700; }
.skip-link:focus { left: 8px; }

/* --- Risk-reversal microcopy under trial CTAs --- */
.cta-micro { margin-top: 14px; font-size: 0.88rem; color: rgba(255,255,255,0.72); letter-spacing: 0.01em; }
.cta-micro-sub { margin-top: 4px; font-size: 0.8rem; color: rgba(255,255,255,0.55); }
.cta-text-link { color: #E0B24E; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px; }
.cta-text-link:hover { color: #fff; }

/* --- Image / asset slots awaiting real assets (TODO). Visible on purpose so reviewers see the gap. --- */
.asset-slot { position: relative; display: flex; align-items: center; justify-content: center; text-align: center; background: repeating-linear-gradient(135deg, rgba(200,150,46,0.06) 0 12px, rgba(200,150,46,0.02) 12px 24px), #0F1E36; border: 2px dashed rgba(200,150,46,0.45); border-radius: 14px; color: rgba(245,241,232,0.7); font-size: 0.85rem; padding: 16px; overflow: hidden; }
.asset-slot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.asset-slot[hidden], .hero-visual[hidden] { display: none !important; }
.asset-slot-label { font-family: 'Space Mono', monospace; letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.72rem; max-width: 32ch; }

/* --- Lazy YouTube embed (assets/video.js) --- */
.yt-lite { position: relative; aspect-ratio: 16 / 9; width: 100%; max-width: 960px; margin: 0 auto; border-radius: 16px; overflow: hidden; background: #0F1E36 center / cover no-repeat; border: 1px solid rgba(200,150,46,0.35); box-shadow: 0 24px 60px rgba(0,0,0,0.35); }
.yt-lite iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.yt-play { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(5,13,26,0.25); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.yt-play span { width: 84px; height: 84px; border-radius: 50%; background: #C8962E; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 30px rgba(0,0,0,0.4); }
.yt-play svg { width: 34px; height: 34px; margin-left: 5px; fill: #050D1A; }
.yt-missing { border-style: dashed; background-image: repeating-linear-gradient(135deg, rgba(200,150,46,0.06) 0 12px, rgba(200,150,46,0.02) 12px 24px); }
.yt-missing .yt-play { cursor: default; flex-direction: column; gap: 14px; color: rgba(245,241,232,0.7); font-family: 'Space Mono', monospace; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }
.yt-missing .yt-play span { opacity: 0.45; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* AA contrast (2026-10-22): body links on the legal pages (white background) */
.page-body a { color: #7A5A17; }
