/* Shared, single-row site header. */
.header .masthead{height:64px;min-height:64px;display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:22px;margin:0;padding:0 3%;border-bottom:1px solid var(--line)}
.header .masthead .wordmark{font-size:21px;white-space:nowrap;flex-shrink:0;text-align:left;justify-self:auto}
.header .masthead>nav{position:static;display:flex;flex:1;min-width:0;order:0;align-items:center;justify-content:center;gap:clamp(12px,1.5vw,24px);height:auto;padding:0;border:0;font-size:11px;white-space:nowrap;overflow:visible;mask-image:none;-webkit-mask-image:none}
.header .masthead>nav a{padding:16px 0}
.header .utilities{position:static;width:auto;flex:none;gap:12px;align-items:center}
.header .contact-widget{flex:none}
.header .contact-field,.header .contact-field[aria-expanded=true]{width:30px;min-height:40px;padding:0;border:0;justify-content:center}
.header .contact-field>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.header .contact-field[aria-expanded=true] svg{background:none;color:inherit;padding:0;margin:0;box-sizing:border-box}
.header .contact-panel{position:fixed;top:64px;left:auto;right:3%;width:min(440px,94vw);max-height:calc(100dvh - 80px);border:1px solid var(--line)}
.header .site-menu-toggle{display:none;align-items:center;justify-content:center;width:40px;height:44px;padding:8px;color:var(--ink)}
.site-menu-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5}
html{scroll-padding-top:80px}
@media(max-width:1050px){
 .header .masthead{gap:10px;padding:0 18px;height:60px;min-height:60px}
 .header .masthead .wordmark{font-size:19px;margin-right:auto}
 .header .site-menu-toggle{display:flex;order:3}
 .header .masthead>nav{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:12px 24px;background:var(--paper);border-bottom:1px solid var(--line);max-height:calc(100dvh - 60px);overflow:auto;font-size:14px;white-space:normal}
 .header .masthead>nav.is-open{display:flex;visibility:visible}
 .header .masthead>nav a{padding:13px 0}
 .header .utilities{gap:10px}
 .header .contact-panel{top:60px;right:12px;width:min(440px,calc(100vw - 24px))}
}
@media(max-width:380px){.header .masthead{padding-inline:12px;gap:4px}.header .masthead .wordmark{font-size:16px}.header .utilities{gap:6px}.header .icon-button svg{width:18px;height:18px}.header .site-menu-toggle{width:32px}}
@media(max-width:450px){.header .masthead{padding-inline:12px;gap:4px}.header .masthead .wordmark{font-size:16px;letter-spacing:.6px}.header .utilities{gap:5px}.header .icon-button{gap:4px}.header .icon-button svg{width:18px;height:18px}.header .site-menu-toggle{width:32px;flex-shrink:0}.header .contact-field,.header .contact-field[aria-expanded=true]{width:26px}}

.header .contact-channels{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 20px;margin:18px 0 22px}
.header .contact-channels a{display:flex;align-items:center;gap:10px;min-height:40px;padding:6px 0;width:fit-content;font-size:13px}
.header .contact-channels a svg{width:19px;height:19px;flex:0 0 19px}
.header .contact-channels a span{display:inline;font:inherit;letter-spacing:normal;text-transform:none;margin:0}

/* Reserve counter width so saving a project never shifts the navigation. */
.header #saved-count {
  display:inline-block;
  flex:0 0 1ch;
  width:1ch;
  text-align:center;
  font-variant-numeric:tabular-nums;
}
