/* ============================================================
   AFORCE — global footer (shared across every page)
   Editorial / Swiss / neo-grotesk. Self-contained + namespaced
   under .afx-footer so it renders identically everywhere and never
   collides with a page's own styles. Master brand only — no flavor
   colors, no clutter. The closing page of a luxury magazine.
   ============================================================ */
.afx-footer{
  --ff-bg:#F7F5F0;                 /* warm off-white */
  --ff-ink:#0D0D0D;                /* near-black */
  --ff-red:#C1281B;                /* Signal Red accent */
  --ff-link:rgba(13,13,13,.62);    /* nav links (AA) */
  --ff-strong:rgba(13,13,13,.86);
  --ff-muted:rgba(13,13,13,.60);   /* labels — raised to meet WCAG AA (was .42 ≈ 2.8:1) */
  --ff-faint:rgba(13,13,13,.64);   /* disclaimer — raised to meet WCAG AA (was .52 ≈ 3.7:1) */
  --ff-line:rgba(13,13,13,.09);    /* very thin dividers */
  --ff-font:"Helvetica Neue","Neue Haas Grotesk Display","Suisse Int'l","Inter",system-ui,-apple-system,sans-serif;
  background:var(--ff-bg);
  color:var(--ff-ink);
  font-family:var(--ff-font);
  padding:clamp(84px,15vh,184px) clamp(20px,6vw,88px) clamp(48px,6vh,76px);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  border-top:1px solid var(--ff-line);
}
.afx-footer *{ box-sizing:border-box; }
.afx-footer .ff-wrap{ max-width:1280px; margin:0 auto; }
.afx-footer a{ text-decoration:none; color:inherit; }
.afx-footer a:focus-visible{ outline:2px solid var(--ff-red); outline-offset:3px; border-radius:2px; }
.afx-footer .flip{ display:inline-block; transform:scaleX(-1); color:var(--ff-red); }
.afx-footer .red{ color:var(--ff-red); }

/* ---- Five columns ---- */
.afx-footer .ff-top{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1.05fr 0.9fr; gap:clamp(30px,4vw,56px); align-items:start; }
@media (max-width:1000px){ .afx-footer .ff-top{ grid-template-columns:1fr 1fr 1fr; gap:52px 34px; } }
@media (max-width:600px){ .afx-footer .ff-top{ grid-template-columns:1fr; gap:44px; } }

/* Brand */
.afx-footer .ff-brand .ff-mark{ display:inline-flex; align-items:center; gap:12px; }
.afx-footer .ff-nn{ display:inline-flex; align-items:center; gap:.13em; font-family:'Archivo Black',var(--ff-font); font-weight:400; font-size:clamp(21px,2.2vw,28px); line-height:1; }
.afx-footer .ff-nn .n1{ color:var(--ff-red); }
.afx-footer .ff-nn .bar{ display:inline-block; width:.44em; height:.15em; background:var(--ff-red); }
.afx-footer .ff-nn .n2{ display:inline-block; transform:scaleX(-1); color:var(--ff-red); }
.afx-footer .ff-word{ font-family:var(--ff-font); font-weight:800; font-size:clamp(24px,2.4vw,32px); letter-spacing:-0.012em; line-height:1; }
.afx-footer .ff-word .tm{ font-size:.32em; font-weight:500; vertical-align:super; color:var(--ff-muted); margin-left:.14em; letter-spacing:0; }
.afx-footer .ff-tag{ margin-top:clamp(22px,2.6vw,30px); font-family:var(--ff-font); font-weight:700; font-size:12px; letter-spacing:.03em; line-height:1.4; text-transform:uppercase; color:var(--ff-strong); }
.afx-footer .ff-tag .red{ color:var(--ff-red); }
.afx-footer .ff-built{ margin-top:16px; font-size:16px; line-height:1.62; color:var(--ff-link); max-width:30ch; }

/* Nav columns */
.afx-footer .ff-col h2, .afx-footer .ff-col h4{ font-family:var(--ff-font); font-size:12px; font-weight:600; letter-spacing:.2em; line-height:inherit; text-transform:uppercase; color:var(--ff-muted); margin:0 0 20px; }
.afx-footer .ff-col a{ position:relative; display:block; width:-moz-fit-content; width:fit-content; max-width:100%; font-size:15.5px; font-weight:500; line-height:1.25; color:var(--ff-link); padding:7px 0; transition:color .2s ease; }
.afx-footer .ff-col a::after{ content:''; position:absolute; left:0; right:100%; bottom:4px; height:1px; background:var(--ff-red); transition:right .2s ease; }
.afx-footer .ff-col a:hover{ color:var(--ff-ink); }
.afx-footer .ff-col a:hover::after{ right:0; }
.afx-footer .ff-col .arw{ font-size:.82em; color:var(--ff-muted); margin-left:5px; transition:color .2s ease; }
.afx-footer .ff-col a:hover .arw{ color:var(--ff-red); }
.afx-footer .ff-col .soon{ display:block; font-size:15.5px; font-weight:500; color:var(--ff-muted); padding:7px 0; cursor:default; }
.afx-footer .ff-col .soon small{ font-size:.74em; letter-spacing:.03em; }

/* ---- Divider + bottom signature row ---- */
.afx-footer .ff-divider{ margin-top:clamp(66px,9vw,124px); border-top:1px solid var(--ff-line); }
.afx-footer .ff-bottom{ margin-top:clamp(28px,3vw,40px); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:14px 24px; font-family:var(--ff-font); font-size:11.5px; letter-spacing:.11em; text-transform:uppercase; color:var(--ff-muted); }
.afx-footer .ff-bottom .ff-center{ text-align:center; color:var(--ff-strong); }
.afx-footer .ff-bottom .ff-center .red{ color:var(--ff-red); }
.afx-footer .ff-bottom .ff-right{ text-align:right; color:var(--ff-link); }
@media (max-width:640px){ .afx-footer .ff-bottom{ grid-template-columns:1fr; gap:8px; } .afx-footer .ff-bottom .ff-center,.afx-footer .ff-bottom .ff-right{ text-align:left; } }

/* ---- Disclaimer — reduced weight, almost invisible until needed ---- */
.afx-footer .ff-legal{ margin-top:clamp(44px,6vw,76px); max-width:700px; }
.afx-footer .ff-legal p{ font-size:12px; line-height:1.9; letter-spacing:.004em; color:var(--ff-faint); }
.afx-footer .ff-legal p + p{ margin-top:14px; }
.afx-footer .ff-legal .red{ color:var(--ff-red); }

@media (prefers-reduced-motion:reduce){ .afx-footer a, .afx-footer .ff-col a::after{ transition:none; } }
