/* Family header — the ONE header for every OnePlace door (v1.0.0).
   Master copy: direct-standards/master-header/. Never edit a site's copy:
   change the master, bump VERSION in family-header.js, and run sync.mjs on
   each site. Every class is prefixed .fh so no site stylesheet collides.

   The form (DESIGN-STANDARD §THE HEADER ZONE, Branden's orders 2026-11-08
   and 2026-11-09): white bar, contained column · lockup (mark + name + "No
   middleman. Go direct.") · the door's nav · the account cluster · the gold
   call-to-action ending the row · every item on ONE line, never wrapping.
   When the row is short of room the door's nav links fold, last first,
   into "More ▾"; the cluster and the gold button never fold. Tablet and
   phone: lockup · Menu · gold, the links and cluster one tap in; on the
   narrowest phones the gold button stands one tap in too. */

.fh{
  --fh-ink:#23201B; --fh-muted:#6E675C; --fh-line:#E5DFD3; --fh-paper:#FAF7F2;
  --fh-card:#FFFFFF; --fh-accent:#E9A23B; --fh-accent-ink:#23201B; --fh-primary:#163A3F;
  --fh-col:1120px;
  display:block; background:#FFFFFF; border:0; border-bottom:1px solid var(--fh-line);
  position:sticky; top:0; z-index:1000;
  /* a site's own generic header{…} rules never reach in */
  margin:0; padding:0; width:auto; max-width:none; height:auto; min-height:0;
  box-shadow:none; float:none; border-radius:0;
  font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--fh-ink); font-size:15.5px; line-height:1.3; text-align:left;
}
.fh *,.fh *::before,.fh *::after{box-sizing:border-box}
.fh-row{max-width:var(--fh-col);margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.fh-lockup{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--fh-ink);flex:none}
.fh-mark{display:block;height:32px;width:auto;flex:none}
.fh-name{font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.05;white-space:nowrap;color:var(--fh-ink)}
.fh-name small{display:block;font-size:12px;font-weight:500;color:var(--fh-muted);letter-spacing:0;margin-top:2px}
.fh-links{display:contents}
.fh-link{color:var(--fh-ink);text-decoration:none;font:inherit;font-weight:600;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:left}
.fh-link:hover{text-decoration:underline}
.fh-spacer{flex:1 1 0;min-width:0}
.fh-acct{display:flex;align-items:center;gap:16px}
.fh-btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:10px 18px;min-height:44px;font:inherit;font-size:15.5px;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;white-space:nowrap}
.fh-btn:hover{filter:brightness(1.05);text-decoration:none}
.fh-gold{background:var(--fh-accent);color:var(--fh-accent-ink)}
.fh-small{padding:7px 14px;min-height:0;font-size:14px}
.fh-ghost{background:var(--fh-card);color:var(--fh-primary);border:1.5px solid var(--fh-primary)}
.fh-menu-btn{display:none;margin-left:auto}
.fh-wrap{position:relative;display:inline-block}
.fh-pop{position:absolute;right:0;top:calc(100% + 8px);background:var(--fh-paper);border:1px solid var(--fh-line);border-radius:10px;padding:10px 14px;min-width:220px;z-index:1100;text-align:left;box-shadow:0 8px 24px rgba(28,43,58,.12);display:flex;flex-direction:column;gap:10px;white-space:normal}
.fh-pop[hidden],.fh-more[hidden],.fh [hidden]{display:none}
.fh-more .fh-pop{left:0;right:auto;min-width:180px}
.fh-pop .fh-link{display:block;width:100%}
.fh-pop form{margin:0}
.fh-hat small{display:block;font-weight:400;color:var(--fh-muted)}

/* One line — family-header.js sets .fh-one once it has measured the fit. */
.fh-row.fh-one{flex-wrap:nowrap}
.fh-row.fh-one > *,.fh-row.fh-one .fh-links > *{flex-shrink:0;white-space:nowrap}
.fh-row.fh-one .fh-links > .fh-spacer{flex:1 1 0;min-width:0}
.fh-row.fh-one .fh-pop{white-space:normal}

/* Menu form — 1000px and narrower, or .fh-menu when even the folded
   desktop row cannot fit. The same rules twice: once for the width, once
   for the class. */
@media (max-width:1000px){
  .fh .fh-row{gap:12px}
  .fh .fh-menu-btn{display:inline-flex}
  .fh .fh-links{display:none;order:2;width:100%;flex-direction:column;align-items:flex-start;gap:14px;padding:6px 0 4px}
  .fh .fh-row.fh-open .fh-links{display:flex}
  .fh .fh-links > .fh-spacer,.fh .fh-more{display:none}
  .fh .fh-cta{order:1}
  .fh .fh-acct{flex-direction:column;align-items:flex-start;gap:14px}
  .fh .fh-pop{position:static;box-shadow:none;min-width:0;margin-top:8px}
}
.fh .fh-row.fh-menu{gap:12px}
.fh .fh-row.fh-menu .fh-menu-btn{display:inline-flex}
.fh .fh-row.fh-menu .fh-links{display:none;order:2;width:100%;flex-direction:column;align-items:flex-start;gap:14px;padding:6px 0 4px}
.fh .fh-row.fh-menu.fh-open .fh-links{display:flex}
.fh .fh-row.fh-menu .fh-links > .fh-spacer,.fh .fh-row.fh-menu .fh-more{display:none}
.fh .fh-row.fh-menu .fh-cta{order:1}
.fh .fh-row.fh-menu .fh-acct{flex-direction:column;align-items:flex-start;gap:14px}
.fh .fh-row.fh-menu .fh-pop{position:static;box-shadow:none;min-width:0;margin-top:8px}

/* Narrowest phones: lockup + Menu + gold need ~475px, so the gold button
   stands one tap in, ending the open menu. */
@media (max-width:560px){
  .fh .fh-name{font-size:19px}
  .fh .fh-cta{display:none;order:3}
  .fh .fh-row.fh-open .fh-cta{display:inline-flex}
}
