/* Shared ReiSource header geometry, typography, and responsive rules. */
.site-header, .service-header, .kc-header {
  position:fixed; z-index:50; top:0; left:0; right:0;
  box-sizing:border-box; height:84px; padding:0 28px;
  display:grid; grid-template-columns:auto 1fr auto;
  align-items:center; gap:28px; color:#fff;
  background:linear-gradient(to bottom,rgba(0,0,0,.72),transparent);
  transition:height .25s, background .25s;
}
/* KC content begins with a dark hero, so retain contrast there. */
.kc-header {background:rgba(10,10,10,.96)}
.site-header.scrolled, .service-header.scrolled, .kc-header.scrolled {
  height:70px; background:rgba(10,10,10,.96);
  backdrop-filter:blur(12px);
}
.site-header > .brand, .service-header > .service-brand, .kc-header > .kc-brand {
  display:flex; align-items:center; justify-self:start; margin:0;
}
.site-header > .brand img, .service-header > .service-brand img, .kc-header > .kc-brand img {
  width:190px; height:auto; display:block; margin:0;
}
.site-header > nav, .service-header > nav, .kc-header > nav {
  display:flex; justify-content:center; align-items:center;
  gap:32px; font-size:.82rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em;
}
.site-header > .button, .service-header > .button, .kc-header > .button {
  justify-self:end; align-self:center; margin:0;
  display:inline-flex; align-items:center; justify-content:center;
}
@media(max-width:900px){
  .site-header,.service-header,.kc-header {grid-template-columns:1fr auto}
  .site-header > nav,.service-header > nav,.kc-header > nav {display:none}
  .site-header > .brand img,.service-header > .service-brand img,.kc-header > .kc-brand img {width:150px}
}
@media(max-width:580px){
  .site-header,.service-header,.kc-header {padding:0 14px}
  .site-header > .button,.service-header > .button,.kc-header > .button {padding:11px 12px;font-size:.62rem}
}
