/* Section 4: closing band + footer. Closing = centred statement on the page frame between the
   rails; footer = standard SaaS layout (brand, link columns, legal row). Tokens only.
   Owner: numbers+closing builder. Also used by privacy.html and 404.html. */
/* Frame, padding and marks come from the section system (layout.css); the head is .sec-head. */
.closing {
  display: grid; justify-items: center; gap: var(--gap-head); text-align: center;
  margin-inline: 0;
}
.closing-mark { color: var(--ink); --px-size: 40px; margin-bottom: -4px; }
.closing-title.sec-head { max-width: 26ch; }
.closing-sub { margin: 0; max-width: 46ch; font-size: 17px; line-height: 1.6; color: var(--muted); text-wrap: pretty; }
.closing .button.cta-glass { margin: 0; }

/* ---------- Footer ---------- */
footer.site-footer {
  display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)) minmax(0, 1.8fr);
  align-items: start; justify-items: start; gap: var(--sp-48) var(--sp-32); text-align: left;
  padding: var(--sp-64) calc(var(--rail-w) + var(--sec-inset)) 0;
}
.f-brand { display: grid; gap: var(--sp-16); max-width: 30ch; }
.f-brand .brand { justify-self: start; }
.f-tag { margin: 0; font-size: 14px; line-height: 1.55; color: var(--muted); }
.f-col { display: grid; gap: 4px; align-content: start; min-width: 0; margin: 0; padding: 0; list-style: none; }
.f-col-title { margin: 0 0 var(--sp-12); }
.site-footer .f-col a {
  display: inline-block; padding-block: 5px; min-height: 24px;
  font-size: 14px; line-height: 1.5; font-weight: 500; color: var(--ink-2); text-decoration: none;
  overflow-wrap: anywhere;
  border-bottom: 1px solid transparent; justify-self: start;
  transition: border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.site-footer .f-col a:hover { color: var(--ink); border-bottom-color: var(--ink); }
.f-legal {
  grid-column: 1 / -1; justify-self: stretch;
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px;
  margin: 0; padding: var(--sp-24) 0 var(--sp-32); border-top: 1px solid var(--line);
}
.f-legal .micro { margin: 0; }

@media (max-width: 759px) {
  .closing-sub { font-size: 16px; }
  .closing .button.cta-glass { width: 100%; }
  footer.site-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 40px calc(var(--rail-w) + 8px) 0; gap: 32px 16px; }
  .f-brand { grid-column: 1 / -1; }
  .f-col--contact { grid-column: 1 / -1; }
}
.site-footer .f-brand .brand { justify-self: start; margin: 0; }
.site-footer .f-brand .brand { grid-column: 1; }

/* ---------- Viewport-scale pass: poster closing line, ~90svh, footer peeks below ---------- */
.closing { min-height: calc(var(--sec-h) - 10svh); align-content: center; }
@media (max-width: 759px) {
  .closing { min-height: 0; }
}

.closing .button.cta-glass .cta-ico-store[hidden] { display: none; }
.f-legal .micro:last-child { text-align: right; letter-spacing: .1em; }
@media (max-width: 759px) { .f-legal .micro:last-child { text-align: left; } }
