/* Olsen Steiner v6.1 — one shared grid for the home header and hero.
   Scoped to body.home: other pages, brand assets, map and copy are untouched. */
body.home {
  --home-edge: clamp(28px, 4vw, 80px);
  --home-rail-width: clamp(264px, 22vw, 352px);
  --home-rail-inset: clamp(32px, 3vw, 48px);
  --home-header-height: 100px;
}
.home .site-header.on-hero { height:var(--home-header-height); width:100%; }
.home .on-hero .nav-inner {
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  align-items:center;
  gap:28px;
  width:100%; max-width:none; height:100%; margin:0;
  padding:0 0 0 var(--home-edge);
}
.home .on-hero .nav {
  position:static; display:grid;
  grid-template-columns:minmax(0,1fr) var(--home-rail-width);
  align-items:center; gap:0;
  width:100%; min-width:0; height:100%;
  margin:0; padding:0;
  font-size:13px; border:0; box-shadow:none; background:none;
}
.home .on-hero .nav-links {
  display:flex; align-items:center; justify-content:flex-end;
  gap:clamp(20px,1.8vw,30px);
  min-width:0; padding-right:var(--home-rail-inset);
}
.home .on-hero .nav-links a {
  position:relative; display:block; flex:none;
  padding:12px 0; line-height:1.5; white-space:nowrap;
}
.home .on-hero .nav-links a[aria-current="page"]::after {
  content:""; position:absolute; width:28px; height:1px;
  left:0; bottom:5px; background:currentColor;
}
.home .on-hero .nav-links a:hover { opacity:1; color:#dceafb; }
.home .on-hero .nav .nav-contact {
  display:inline-flex; align-items:center; justify-content:center;
  justify-self:center; align-self:center;
  width:104px; min-height:44px; margin:0!important; padding:10px 18px;
  border:1px solid #d9e8f2; line-height:1.5; white-space:nowrap;
}
.home .on-hero .menu-toggle { display:none; }
.home .hero {
  height:auto; min-height:0;
  position:relative; isolation:isolate;
}
.home .hero::after {
  display:block; content:""; position:absolute;
  inset:0 0 0 auto;
  width:var(--home-rail-width); min-width:0;
  background:rgba(3,29,49,.82);
  border-left:1px solid #d8e9f315;
  pointer-events:none;
}
.home .hero-body {
  display:grid;
  grid-template-columns:minmax(0,1fr) var(--home-rail-width);
  align-items:stretch; gap:0;
  width:100%; max-width:none; height:auto;
  min-height:clamp(660px,47vw,742px);
  margin:0; padding:0;
}
.home .hero-copy {
  width:auto; min-width:0; max-width:700px;
  margin:0; padding:calc(var(--home-header-height) + 35px) 32px 42px var(--home-edge);
  align-self:start;
}
.home .hero-copy .eyebrow { max-width:575px; }
.home .hero-intro { max-width:482px; }
.home .hero-tags { max-width:390px; }
.home .hero-rail {
  display:block; width:100%; min-width:0; max-width:none;
  margin:0; padding:calc(var(--home-header-height) + 82px) var(--home-rail-inset) 42px;
  border:0; align-self:stretch;
  font-size:12px; line-height:1.95; letter-spacing:.12em;
}
.home .hero-rail p { margin:0; max-width:100%; text-wrap:initial; }
.home .hero-rail .rail-small { font-size:13px; line-height:1.9; letter-spacing:0; }
.home .hero-rail div { width:38px; height:1px; margin:27px 0; }

/* Collapse navigation before it can encroach on the right-hand panel. */
@media (max-width:1199px) {
  body.home { --home-header-height:88px; }
  .home .on-hero .nav-inner {
    grid-template-columns:minmax(0,1fr) var(--home-rail-width);
    gap:0;
  }
  .home .on-hero .menu-toggle {
    display:inline-flex; align-items:center; justify-content:center;
    gap:12px; justify-self:center;
    min-width:88px; min-height:42px;
    border:1px solid currentColor; background:none; color:inherit;
    padding:8px 13px; font-size:12px;
  }
  .home .on-hero .menu-toggle i {
    display:block; width:17px; height:8px;
    border-top:1px solid currentColor; border-bottom:1px solid currentColor;
  }
  .home .on-hero .nav {
    display:none; position:absolute; inset:var(--home-header-height) 0 auto;
    width:100%; height:auto;
    padding:18px var(--home-edge) 24px;
    background:#052d48; color:#fff;
    border-top:1px solid #ffffff29;
    box-shadow:0 15px 25px #06203825;
    grid-template-columns:minmax(0,1fr); gap:14px;
    font-size:14px;
  }
  .home .on-hero .nav.open { display:grid; }
  .home .on-hero .nav-links { display:flex; flex-direction:column; align-items:stretch; gap:0; padding:0; }
  .home .on-hero .nav-links a { padding:12px 0; }
  .home .on-hero .nav .nav-contact { justify-self:start; width:110px; }
  .home .hero-copy { max-width:640px; }
  .home .hero-rail { padding-top:calc(var(--home-header-height) + 90px); }
}

/* Keep sidebar content, but reflow it below the hero on smaller screens. */
@media (max-width:1000px) {
  body.home { --home-header-height:80px; --home-edge:clamp(24px,4vw,36px); }
  .home .on-hero .nav-inner {
    grid-template-columns:minmax(0,1fr) max-content;
    padding-right:var(--home-edge); gap:16px;
  }
  .home .on-hero .menu-toggle { justify-self:end; }
  .home .hero::after { display:none; }
  .home .hero-body { grid-template-columns:minmax(0,1fr); min-height:0; }
  .home .hero-copy {
    width:100%; max-width:690px;
    padding:calc(var(--home-header-height) + 40px) var(--home-edge) 38px;
  }
  .home .hero-copy .eyebrow { max-width:540px; }
  .home .hero h1 { font-size:clamp(56px,7.7vw,70px); }
  .home .hero-intro { max-width:510px; }
  .home .hero-rail {
    display:grid; grid-template-columns:1fr 1.35fr;
    align-items:center; gap:28px;
    padding:25px var(--home-edge);
    background:rgba(3,29,49,.86);
    border-top:1px solid #ffffff2a;
    font-size:11px; line-height:1.8;
  }
  .home .hero-rail div { display:none; }
  .home .hero-rail .rail-small { font-size:12px; line-height:1.9; }
}
@media (max-width:580px) {
  body.home { --home-header-height:78px; --home-edge:22px; }
  .home .on-hero .brand { font-size:22px; letter-spacing:.07em; }
  .home .on-hero .brand>span { font-size:6px; letter-spacing:.24em; }
  .home .on-hero .menu-toggle { min-width:74px; min-height:40px; padding:7px 10px; font-size:11px; gap:9px; }
  .home .hero-copy { padding-top:114px; padding-bottom:32px; }
  .home .hero-copy .eyebrow { max-width:310px; font-size:8px; line-height:1.8; }
  .home .hero h1 { font-size:clamp(45px,13.1vw,65px); line-height:1.05; }
  .home .hero-intro { max-width:355px; font-size:17px; line-height:1.5; }
  .home .hero-tags { max-width:355px; margin-top:24px; font-size:8px; }
  .home .hero-rail { grid-template-columns:.9fr 1.3fr; gap:20px; padding-block:23px; font-size:10px; }
  .home .hero-rail .rail-small { font-size:11px; }
}
@media print {
  .home .hero::after { display:none; }
  .home .hero-body { display:block; min-height:0; }
  .home .hero-copy { padding:0; }
  .home .hero-rail { display:none; }
}
