/* EIREA — The Register. Page-scoped components only.
   Loaded after style.css so it can lean on the house tokens. Nothing here
   touches an existing page. Prefix: .reg- and .cty.
   NOTE (7 Oct 2026): the MARK SYSTEM — the membership rungs (.status--*), the
   award marks (.amark--*) and the training credentials (.cred*) — has moved to
   style.css. It is no longer register-only: the awards page and the courses
   page both render these marks, so they have to be available to every page. */

/* A class rule that sets `display` outranks the UA's [hidden] rule, which would
   leave the summary and panel visible when JS has hidden them. Pin it. */
[hidden]{display:none!important}

/* ---------- search panel ---------- */
.reg-panel{background:var(--card);border:1px solid var(--line);border-top:2px solid var(--accent);
  margin-top:clamp(28px,4vw,52px);
  box-shadow:0 1px 2px rgba(13,20,24,.04),0 8px 22px rgba(13,20,24,.05)}
.reg-panel form{display:grid;gap:clamp(18px,2.2vw,26px);padding:clamp(24px,3.4vw,44px)}
@media(min-width:780px){
  .reg-panel form{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:end;
    gap:clamp(22px,2.6vw,34px)}
}
.reg-panel .field input,.reg-panel .field select{background:var(--paper)}

/* ---------- the search is the subject, so it sits above the fold ----------
   Measured on the live page 7 Oct 2026: the search input sat at y=822 — BELOW
   the fold on any viewport under ~830px, which is most laptops once browser
   chrome is subtracted (a 900px screen yields ~780 of usable viewport). A
   register whose only job is to be searched was hiding its search box, and the
   methodology forbids that outright: "a stranger must answer who is this for,
   what do I get, who else is here without scrolling."

   The gap was made of three things: hero padding (94 + 108), the section
   padding above the panel (115) and the panel's own margin (52) — 161px of
   whitespace between the headline and the thing the page exists for.
   Tightened, the input lands at ~650: above the fold at 720, 768, 800 and 900.

   Scoped to .hero--register and its adjacent section, so no other page moves
   and the house rhythm is unchanged everywhere else. */
.hero--still.hero--register{
  padding-top:clamp(28px,3.6vw,56px);padding-bottom:clamp(30px,4vw,64px)}
.hero--register + .section-line{padding-top:clamp(28px,3.6vw,56px)}
.hero--register + .section-line .reg-panel{margin-top:clamp(18px,2.2vw,28px)}

.reg-summary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:.6rem 1.4rem;margin-top:clamp(26px,3.4vw,42px);
  font-family:var(--mono);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.reg-summary b{font-weight:400;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- results: a ruled register, not a card wall ---------- */
.rlist{border-top:1px solid var(--line-strong);margin-top:1.1rem}
.rentry{display:grid;gap:.9rem;padding:clamp(26px,3.4vw,44px) 0;border-bottom:1px solid var(--line)}
@media(min-width:840px){
  .rentry{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) auto;gap:clamp(18px,2.6vw,44px);
    align-items:center}
}
.rentry .nm{font-family:var(--serif);font-weight:400;font-size:clamp(1.16rem,2.1vw,1.46rem);
  line-height:1.15;letter-spacing:-.012em;margin:0}
/* The post-nominal belongs to the person, so it sits with the name — not with
   the firm. The firm is the secondary line beneath. */
.rentry .desig{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);border:1px solid currentColor;padding:.28em .5em;border-radius:var(--r);
  margin-left:.65em;vertical-align:middle;white-space:nowrap}
.rentry .firm{font-size:.98rem;color:var(--ink-2);margin-top:.5rem}
.rentry .loc{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin-top:.45rem}
.rentry .go{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent);white-space:nowrap;border-bottom:1px solid currentColor;padding-bottom:2px;
  justify-self:start}
@media(min-width:840px){.rentry .go{justify-self:end}}

.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.chip{font-family:var(--mono);font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-2);border:1px solid var(--line-strong);padding:.3em .58em;border-radius:var(--r)}
.chip--sample{color:var(--accent);border-color:currentColor;border-style:dashed}
.badge{display:inline-flex;align-items:center;gap:.4em;font-family:var(--mono);font-size:.62rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border:1px solid currentColor;
  padding:.26em .52em;border-radius:var(--r)}
.badge::before{content:"";width:5px;height:5px;background:currentColor;border-radius:50%}
/* ---------- states ---------- */
.reg-empty{border:1px solid var(--line);border-top:2px solid var(--accent);background:var(--card);
  box-shadow:0 1px 2px rgba(13,20,24,.04),0 8px 22px rgba(13,20,24,.05);
  padding:clamp(36px,5.4vw,76px);margin-top:clamp(26px,3.4vw,44px)}
.reg-empty .head{font-family:var(--serif);font-weight:400;font-size:clamp(1.42rem,3vw,2.05rem);
  line-height:1.14;letter-spacing:-.015em;margin:0 0 .9rem}

/* ---------- browse by market ---------- */
.cty{display:grid;border-top:1px solid var(--line-strong);margin-top:1.1rem}
@media(min-width:640px){.cty{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.cty{grid-template-columns:repeat(3,1fr)}}
.cty a{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:clamp(1.25rem,2.1vw,1.85rem) 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;
  transition:color .25s var(--ease)}
@media(min-width:640px){.cty a{padding-right:clamp(16px,2.2vw,36px)}}
.cty .n{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--muted);
  font-variant-numeric:tabular-nums}
@media(hover:hover){.cty a:hover{color:var(--accent)}.cty a:hover .n{color:var(--accent)}}

/* ---------- member gate ---------- */
.gate{display:inline-flex;align-items:center;gap:.5em;font-family:var(--mono);font-size:.66rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.gate svg{width:13px;height:13px;flex:none}
.locked{position:relative;color:transparent;user-select:none}
.locked::after{content:"Members";position:absolute;inset:0;color:var(--muted);
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  display:flex;align-items:center}

/* ---------- sample-data notice ---------- */
/* Shown only while register.json carries "sample": true — the register must never
   present invented firms as real members without saying so on the page itself. */
.reg-sample{display:flex;flex-wrap:wrap;align-items:baseline;gap:.7rem 1.1rem;
  border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--card);
  padding:clamp(16px,2vw,22px) clamp(18px,2.4vw,26px);margin-top:clamp(22px,3vw,36px)}
.reg-sample p{margin:0;font-size:.93rem;color:var(--ink-2);max-width:68ch}
.reg-sample-tag{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);border:1px solid currentColor;
  padding:.32em .6em;border-radius:var(--r);white-space:nowrap}

/* The type chip — marks a record as an OWNER/DEVELOPER team rather than an
   agency. Quiet and outlined, so it reads as a qualifier on the entry and never
   competes with the status mark or an award rosette. */
.chip--type{background:none;color:var(--muted);border-style:dashed}
