/* ============================================================
   Shared node-page layout (system / standard / partner / contact)
   ============================================================ */

/* ---------- hero ---------- */
.node-hero{ padding-block:clamp(56px,8vw,96px); border-bottom:1px solid var(--border); }
.node-hero-inner{ display:grid; grid-template-columns:1fr; gap:32px; }
.node-hero h1{ font-size:clamp(40px,7vw,90px); text-transform:uppercase; margin-top:12px; }
.node-hero-claim{ margin-top:16px; color:var(--muted); font-size:clamp(16px,1.8vw,20px); max-width:46ch; }

.hero-photo{ position:relative; border:1px solid var(--border); background:var(--surface); border-radius:var(--radius); overflow:hidden; }
.hero-photo img{ width:100%; display:block; }

.pin{
  position:absolute; left:var(--x); top:var(--y); transform:translate(-50%,-50%);
  width:28px; height:28px; border-radius:50%; border:1px solid var(--accent-2);
  background:rgba(9,12,15,.6); backdrop-filter:blur(3px); color:var(--accent-2);
  font-family:var(--font-mono); font-size:12px; display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.pin::before{ content:""; position:absolute; inset:-8px; border-radius:50%; border:1px solid var(--accent-2); opacity:.5; animation:pinPulse 2.6s ease-out infinite; }
.pin:nth-child(3)::before{ animation-delay:.4s; }
.pin:nth-child(4)::before{ animation-delay:.8s; }
.pin:nth-child(5)::before{ animation-delay:1.2s; }
@keyframes pinPulse{ 0%{transform:scale(.7);opacity:.6;} 100%{transform:scale(1.9);opacity:0;} }
.pin.is-active,.pin:hover,.pin:focus-visible{ background:var(--accent); color:var(--on-accent); border-color:var(--accent); }

.pin-legend{ display:flex; flex-direction:column; gap:16px; font-size:13px; }
.pin-legend li{ display:flex; gap:14px; align-items:flex-start; padding-bottom:15px; border-bottom:1px solid var(--border); color:var(--muted); transition:color .2s ease; }
.pin-legend li:last-child{ border-bottom:none; }
.pin-legend .num{ flex:none; width:24px; height:24px; border-radius:50%; border:1px solid var(--border-strong); display:flex; align-items:center; justify-content:center; color:var(--accent-2); font-size:11px; }
.pin-legend li.is-active{ color:var(--text); }
.pin-legend li.is-active .num{ border-color:var(--accent); background:var(--accent); color:var(--on-accent); }

@media (min-width:960px){
  .node-hero-inner{ grid-template-columns:.85fr 1.15fr; grid-template-areas:"info photo" "legend photo"; align-items:start; }
  .node-hero-inner > div:first-child{ grid-area:info; }
  .hero-photo{ grid-area:photo; }
  .pin-legend{ grid-area:legend; margin-top:24px; }
}

/* ---------- dossier (spec + proof woven together) ---------- */
.dossier{ border-top:1px solid var(--border); margin-top:clamp(36px,5vw,56px); }
.dossier-row{ display:flex; justify-content:space-between; gap:24px; padding:18px 0; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.dossier-k{ color:var(--muted-2); font-size:12px; padding-top:3px; flex:none; }
.dossier-v{ text-align:right; font-weight:600; font-size:15px; max-width:60ch; }
.dossier-v .verified{
  display:block; text-align:right; font-family:var(--font-mono); font-weight:400; letter-spacing:.02em;
  font-size:11.5px; color:var(--accent-2); margin-top:6px; line-height:1.5;
}
.custom-note{ margin-top:22px; color:var(--brass-2); font-size:14px; font-style:italic; }

@media (max-width:700px){
  .dossier-row{ flex-direction:column; gap:6px; }
  .dossier-v,.dossier-v .verified{ text-align:left; }
}

/* ---------- stowed/deployed gallery ---------- */
.stow-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:clamp(32px,5vw,48px); }
.stow-grid figure{ position:relative; margin:0; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); overflow:hidden; }
.stow-grid img{ width:100%; aspect-ratio:4/5; object-fit:contain; padding:24px; }
.stow-grid figcaption{ position:absolute; bottom:0; inset-inline:0; padding:12px 16px; font-size:10.5px; letter-spacing:.06em; color:var(--muted); border-top:1px solid var(--border); background:rgba(9,12,15,.6); }
@media (max-width:640px){ .stow-grid{ grid-template-columns:1fr; } }

/* ---------- checklist (used on Standard) ---------- */
.checklist{ border-top:1px solid var(--border); margin-top:clamp(32px,5vw,48px); }
.checklist-row{ display:flex; gap:18px; align-items:flex-start; padding:20px 0; border-bottom:1px solid var(--border); }
.checklist-row .idx{ flex:none; width:28px; height:28px; border:1px solid var(--accent); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--accent-2); font-family:var(--font-mono); font-size:11px; }
.checklist-row p{ font-size:15.5px; padding-top:3px; }

/* ---------- pull-quote (used on Standard hero) ---------- */
.pull-quote{ font-size:clamp(18px,2.4vw,26px); line-height:1.5; color:var(--text); border-left:2px solid var(--brass); padding-left:24px; max-width:64ch; }

/* ---------- gallery grid (segments etc) ---------- */
.photo-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:clamp(32px,5vw,48px); }
.photo-grid figure{ position:relative; margin:0; border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); }
.photo-grid img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.photo-grid figcaption{ position:absolute; bottom:0; inset-inline:0; padding:14px 16px; font-size:10.5px; letter-spacing:.06em; color:#fff; background:linear-gradient(0deg,rgba(0,0,0,.8),transparent); }
@media (max-width:860px){ .photo-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .photo-grid{ grid-template-columns:1fr; } }

/* ---------- catalog cards (Partner node) ---------- */
.catalog-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:clamp(32px,5vw,48px); }
.catalog-card{ position:relative; padding:30px 26px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); transition:border-color .25s ease, transform .25s ease, background .25s ease; }
.catalog-card:hover{ border-color:var(--accent); transform:translateY(-3px); background:var(--surface-2); }
.catalog-index{ color:var(--muted-2); font-size:12px; margin-bottom:16px; }
.catalog-status{ display:inline-block; color:var(--accent-2); font-size:10.5px; letter-spacing:.08em; border:1px solid var(--border-strong); border-radius:20px; padding:5px 12px; margin-bottom:14px; }
.catalog-card h3{ font-size:19px; margin-bottom:8px; text-transform:uppercase; }
.catalog-card p{ color:var(--muted); font-size:14px; max-width:40ch; }
@media (max-width:700px){ .catalog-grid{ grid-template-columns:1fr; } }

/* ---------- closing CTA section (shared) ---------- */
.closing-inner{ display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; }
.closing h2{ max-width:22ch; }
@media (max-width:700px){ .closing-inner{ align-items:flex-start; } }

/* ---------- contact form layout ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr; gap:clamp(36px,5vw,64px); }
.contact-info{ display:flex; flex-direction:column; gap:14px; margin-top:28px; font-size:13px; }
.contact-info > div{ display:flex; justify-content:space-between; gap:16px; border-bottom:1px solid var(--border); padding-bottom:12px; flex-wrap:wrap; }
.contact-info .k{ color:var(--muted-2); }
.contact-info .v a:hover{ color:var(--accent-2); }
.submit-row .btn{ width:100%; }
@media (min-width:900px){ .contact-grid{ grid-template-columns:.85fr 1.15fr; } }
