/*css/components.css */

/* =========================
   Layout primitives
   Duplicated from base.css so pages that don't load base.css
   (most public marketing pages) still get a centered .container.
   Keep in sync with base.css line 24.
   ========================= */
.container { width: min(1100px, calc(100% - 40px)); margin: 0 auto; }

/* =========================
   Header (Menu) 
   ========================= */
.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,0.78);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(11,13,18,0.10);
}

.header-row,
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 18px;
  padding: 12px 0;
}

.brand,
.logo{
  display:flex;
  align-items:center;
  gap: 10px;
  font-weight: 750;
  letter-spacing: -0.02em;
  text-decoration:none;
  color: rgba(11,13,18,0.92);
}

/* Optional tiny mark (safe, non-neon) */
.brand-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 28px;
  height: 28px;
  border-radius: 10px;
  background: rgba(11,13,18,0.06);
  color: rgba(11,13,18,0.92);
  font-weight: 900;
}

.main-nav,
.nav{
  display:flex;
  align-items:center;
  gap: 14px;
}

.nav-link{
  font-size: 14px;
  color: rgba(11,13,18,0.62);
  padding: 8px 10px;
  border-radius: 999px;
  text-decoration:none;
}

.nav-link:hover{
  color: rgba(11,13,18,0.86);
  background: rgba(11,13,18,0.04);
}

.nav-link.is-active,
.nav-link.active{
  color: rgba(11,13,18,0.90);
  background: rgba(11,13,18,0.06);
}

.header-cta{
  display:flex;
  align-items:center;
  gap: 10px;
}

/* Header buttons ONLY (scoped) */
.site-header .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 650;
  letter-spacing: -0.01em;
  line-height: 36px;
  text-decoration:none;
}

.site-header .btn-ghost{
  background: transparent;
  border: 1px solid rgba(11,13,18,0.12);
  color: rgba(11,13,18,0.72);
}

.site-header .btn-ghost:hover{
  background: rgba(11,13,18,0.04);
  color: rgba(11,13,18,0.88);
}

.site-header .btn-primary{
  background: #5a5f66;
  color: #fff;
  border: 1px solid rgba(0,0,0,0.10);
  box-shadow: 0 12px 28px rgba(11,13,18,0.16);
}

.site-header .btn-primary:hover{
  transform: translateY(-1px);
  box-shadow: 0 16px 36px rgba(11,13,18,0.20);
}

/* Mobile */
@media (max-width: 900px){
  .header-row,
  .header-inner{ padding: 10px 0; }
  .main-nav,
  .nav{
    gap: 10px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .main-nav::-webkit-scrollbar,
  .nav::-webkit-scrollbar{ display:none; }
}

/* =========================
   Footer
   ========================= */
.site-footer{
  border-top: 1px solid rgba(11,13,18,0.10);
  background: rgba(255,255,255,0.78);
  padding: 26px 0 34px;
}

.footer-inner{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.footer-col strong{
  display:block;
  margin-bottom: 10px;
  color: rgba(11,13,18,0.86);
}

.footer-col a{
  display:block;
  padding: 6px 0;
  color: rgba(11,13,18,0.62);
  text-decoration:none;
}

.footer-col a:hover{
  color: rgba(11,13,18,0.90);
}

@media (max-width: 900px){
  .footer-inner{ grid-template-columns: 1fr 1fr; }
}
