/* shell-nav.css — shared header, nav, and footer for EVERY page,
   legacy and new. Literal colors so it never depends on a page's tokens. */

/* ---------- fonts: self-hosted latin subsets ---------- */
@font-face{
  font-family:'Instrument Sans';
  font-style:normal; font-weight:400 600; font-display:swap;
  src:url('/fonts/instrument-sans-var.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Instrument Sans';
  font-style:italic; font-weight:400; font-display:swap;
  src:url('/fonts/instrument-sans-400-italic.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Instrument Serif';
  font-style:normal; font-weight:400; font-display:swap;
  src:url('/fonts/instrument-serif-400.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Instrument Serif';
  font-style:italic; font-weight:400; font-display:swap;
  src:url('/fonts/instrument-serif-400-italic.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ---------- header: one nav in the DOM ---------- */
.skip-link{
  position:fixed; z-index:1000; inset-block-start:.75rem; inset-inline-start:.75rem;
  padding:.7rem 1rem; background:#F3F0E8; color:#161616;
  border:2px solid #161616; text-decoration:none; transform:translateY(-160%);
}
.skip-link:focus{ transform:none; }

.site-head{ border-block-end:1px solid rgba(22,22,22,.16); background:#F3F0E8; }
.head-row{
  display:flex; align-items:center; justify-content:space-between;
  gap:1.25rem; min-block-size:4.25rem;
}
.brand{
  text-decoration:none; color:#161616;
  font-size:.85rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
}
.menu-btn{
  display:none; background:none; border:0; cursor:pointer;
  min-inline-size:44px; min-block-size:44px; padding:.6rem; margin-inline-end:-.6rem;
}
.menu-btn span{ display:block; inline-size:1.4rem; block-size:1.5px; background:#161616; margin-block:5px; transition:transform .2s cubic-bezier(.22,1,.36,1); }

.site-nav ul{ list-style:none; margin:0; padding:0; }
.nav-list{ display:flex; align-items:center; gap:1.7rem; }
.nav-list > li{ position:relative; }
.nav-list a:not(.btn){
  font-size:.78rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase;
  text-decoration:none; color:#5A5852;
  display:inline-flex; align-items:center; min-block-size:44px;
  transition:color .2s cubic-bezier(.22,1,.36,1);
}
.nav-list a:not(.btn):hover,
.nav-list a[aria-current="page"]{ color:#161616; }
.nav-list a[aria-current="page"]{ box-shadow:inset 0 -2px 0 #6E2430; }
.nav-list .btn{ padding:.65rem 1.1rem; }

/* services dropdown: CSS hover/focus-within; JS adds a toggle for touch */
.sub-toggle{
  background:none; border:0; cursor:pointer; padding:.4rem .2rem;
  color:#5A5852; font-size:.7rem; min-inline-size:32px; min-block-size:44px;
}
.sub-menu{
  position:absolute; inset-block-start:100%; inset-inline-start:-1.1rem;
  min-inline-size:15.5rem; padding:.5rem 0; z-index:60;
  background:#F3F0E8; border:1px solid rgba(22,22,22,.16);
  display:none;
}
.has-sub:hover .sub-menu,
.has-sub:focus-within .sub-menu,
.has-sub.open .sub-menu{ display:block; }
.sub-menu a{
  display:flex; align-items:center; min-block-size:44px;
  padding:.15rem 1.1rem;
  font-size:.78rem; letter-spacing:.06em; text-transform:none;
  text-decoration:none; color:#161616;
}
.sub-menu a:hover{ color:#6E2430; }

@media (max-width:979px){
  .menu-btn{ display:block; }
  html.no-js .site-nav{ position:static; border-block-end:0; padding-block:0 1rem; }
  html.no-js .head-row{ flex-direction:column; align-items:flex-start; gap:0; padding-block:1rem 0; }
  html.no-js .nav-list{ align-items:flex-start; }
  html.enhanced .site-nav{ display:none; }
  html.enhanced .site-nav.open{ display:block; }
  .site-nav{
    position:absolute; inset-inline:0; z-index:70;
    background:#F3F0E8; border-block-end:1px solid rgba(22,22,22,.16);
    padding:1rem clamp(1.25rem,4vw,3.5rem) 1.6rem;
  }
  .site-head{ position:relative; }
  .nav-list{ flex-direction:column; align-items:stretch; gap:0; }
  .nav-list a:not(.btn){ font-size:.95rem; letter-spacing:.04em; }
  .sub-menu{ position:static; display:block; border:0; padding:0 0 .4rem 1rem; min-inline-size:0; }
  .sub-toggle{ display:none; }
  .nav-list .btn{ align-self:flex-start; margin-block-start:.9rem; }
  html.no-js .menu-btn{ display:none; }
}

/* ---------- footer ---------- */
.site-foot{ border-block-start:1px solid rgba(22,22,22,.16); }
.site-foot .shell-wrap{
  padding-block:2.2rem;
  display:flex; flex-wrap:wrap; gap:.8rem 2.5rem; justify-content:space-between;
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:#5A5852;
}
.site-foot p{ margin:0; }
.close-field + .site-foot,
.close-field .site-foot{ border-color:rgba(243,240,232,.2); color:rgba(243,240,232,.72); }


.shell-wrap{
  max-inline-size:68rem; margin-inline:auto;
  padding-inline:clamp(1.25rem, 4vw, 3.5rem);
}
.nav-list a:not(.btn){ white-space:nowrap; }
.nav-list .btn{ white-space:nowrap; }

/* header CTA button (self-contained for legacy pages) */
.nav-list .btn{
  display:inline-flex; align-items:center; gap:.65rem;
  font:500 .78rem/1 'Instrument Sans',system-ui,sans-serif;
  letter-spacing:.1em; text-transform:uppercase;
  border:1px solid #161616; color:#F3F0E8; background:#161616;
  text-decoration:none; cursor:pointer; padding:.65rem 1.1rem;
  transition:background-color .2s, border-color .2s;
}
.nav-list .btn:hover{ background:#6E2430; border-color:#6E2430; color:#F3F0E8; }
.site-head .skip-link{ }
@media print{
  .site-head, .site-foot .btn{ display:none !important; }
}
