/* ==========================================================
   FOOTER — columns, a quiet wordmark, one line at the base
   ========================================================== */
.ft { position: relative; padding: clamp(34px, 4vw, 50px) 0 20px; margin-top: clamp(30px, 4vw, 60px); }
.ft-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 24px; }
@media (min-width: 900px) { .ft-cols { grid-template-columns: repeat(4, minmax(0, 220px)); } }
.ft-col { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.ft-col h4 { margin: 0 0 6px; font-family: var(--mono); font-weight: 400; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--dim-2); }
.ft-col a { font-size: 14.5px; color: var(--dim); width: fit-content; transition: color .2s; }
.ft-col a:hover { color: var(--white); }
.ft-open { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--dim-2); margin-top: 4px; }
.ft-open i { width: 7px; height: 7px; border-radius: 50%; background: #3ccf7a; box-shadow: 0 0 0 3px rgba(60,207,122,.18); }
.ft-base { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 28px; margin-top: clamp(22px, 3vw, 36px); padding-left: 64px; }
.ft-word { margin: 0; font-family: var(--sans); font-weight: 700; letter-spacing: -.03em; line-height: 1; font-size: clamp(22px, 3vw, 40px);
  background: linear-gradient(90deg, rgba(95,211,160,.65), rgba(232,184,114,.6)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ft-word span { font-family: var(--mono); font-weight: 400; font-size: 11px; letter-spacing: .06em; -webkit-text-fill-color: var(--dim-2); margin-left: 10px; vertical-align: middle; }
:root[data-theme="light"] .ft-word { background: linear-gradient(90deg, rgba(18,128,90,.75), rgba(150,102,15,.7)); -webkit-background-clip: text; background-clip: text; }
body.home .ft-word { background: linear-gradient(90deg, rgba(120,130,235,.55), rgba(170,140,250,.62)); -webkit-background-clip: text; background-clip: text; }
:root[data-theme="light"] body.home .ft-word { background: linear-gradient(90deg, rgba(90,66,198,.55), rgba(60,110,210,.55)); -webkit-background-clip: text; background-clip: text; }
.ft .foot-ic { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.ft .foot-ic a { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; color: var(--dim); }
.ft .foot-ic a:hover { color: var(--white); }
.ft .foot-ic svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 700px) { .ft-base { padding-left: 0; padding-bottom: 60px; } }

/* ==========================================================
   ACCESSIBILITY MENU — floating button bottom-left
   ========================================================== */
.ax-btn { position: fixed; left: 18px; bottom: 18px; z-index: 900; width: 50px; height: 50px; border-radius: 50%; border: 0; cursor: pointer;
  display: grid; place-items: center; color: #fff; background: linear-gradient(140deg, #B7A6FF, #5A42C6);
  box-shadow: 0 10px 28px -8px rgba(90,66,198,.7), inset 0 1px 0 rgba(255,255,255,.3); transition: transform .25s; }
.ax-btn:hover { transform: scale(1.06); }
.ax-btn svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ax-btn:focus-visible { outline: 3px solid #ffd54a; outline-offset: 3px; }
.ax-panel { position: fixed; left: 18px; bottom: 80px; z-index: 901; width: min(340px, calc(100vw - 36px)); max-height: calc(100vh - 110px); overflow: auto;
  border-radius: 20px; background: #f4f4f8; color: #17181f; box-shadow: 0 30px 80px -20px rgba(0,0,0,.6); font-family: var(--sans);
  opacity: 0; transform: translateY(10px) scale(.98); pointer-events: none; transition: opacity .25s, transform .25s; }
.ax-panel.on { opacity: 1; transform: none; pointer-events: auto; }
.ax-top { display: flex; align-items: center; gap: 8px; padding: 16px 16px 16px 20px; background: linear-gradient(110deg, #5f7fe6, #8a3fe0); color: #fff; position: sticky; top: 0; z-index: 2; }
.ax-top b { flex: 1; font-size: 17px; font-weight: 700; }
.ax-ic { width: 34px; height: 34px; border-radius: 50%; border: 0; cursor: pointer; background: rgba(255,255,255,.2); color: #fff; display: grid; place-items: center; font-size: 17px; line-height: 1; }
.ax-ic:hover { background: rgba(255,255,255,.32); }
.ax-sec { margin: 12px; padding: 12px; border-radius: 14px; background: #fff; border: 1px solid #e3e3ea; }
.ax-sec h6 { margin: 2px 4px 10px; font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #6a4fd8; }
.ax-row { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 11px 12px; margin-top: 7px; border-radius: 12px; border: 1px solid #e6e6ee; background: #fff; cursor: pointer; font: inherit; color: inherit; }
.ax-row:first-of-type { margin-top: 0; }
.ax-row span { flex: 1; } .ax-row b { display: block; font-size: 14.5px; font-weight: 600; } .ax-row small { display: block; font-size: 12.5px; color: #6b6e7a; margin-top: 1px; }
.ax-sw { position: relative; width: 40px; height: 24px; border-radius: 100px; background: #dcdce6; flex: none; transition: background .2s; }
.ax-sw::after { content: ""; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s; }
.ax-row[aria-pressed="true"] { border-color: #8a6cf0; background: #f6f2ff; }
.ax-row[aria-pressed="true"] .ax-sw { background: #7a52e8; } .ax-row[aria-pressed="true"] .ax-sw::after { transform: translateX(16px); }
.ax-size { display: flex; align-items: center; justify-content: space-between; padding: 6px 4px; }
.ax-size b { font-size: 14.5px; font-weight: 600; }
.ax-size div { display: flex; align-items: center; gap: 12px; }
.ax-size button { width: 34px; height: 34px; border-radius: 50%; border: 1px solid #d9d9e3; background: #fff; cursor: pointer; font-size: 18px; color: #17181f; }
.ax-size output { font-family: var(--mono); font-size: 13px; min-width: 44px; text-align: center; }
.ax-reset { display: block; width: calc(100% - 24px); margin: 4px 12px 14px; padding: 12px; border: 0; border-radius: 100px; cursor: pointer; color: #fff; font: 600 14.5px var(--sans); background: linear-gradient(110deg, #5f7fe6, #8a3fe0); }

/* profiles */
html.ax-calm *, html.ax-calm *::before, html.ax-calm *::after { animation: none !important; transition: none !important; }
html.ax-calm #field, html.ax-calm .aura, html.ax-calm .grain, html.ax-adhd #field, html.ax-adhd .aura, html.ax-adhd .grain { display: none !important; }
html.ax-calm body { filter: saturate(.75); }
html.ax-low { --dim: var(--white); --dim-2: var(--dim); }
html.ax-cog p, html.ax-cog li { line-height: 1.8 !important; letter-spacing: .015em; word-spacing: .08em; }
html.ax-cog a { text-decoration: underline !important; text-underline-offset: 3px; }
html.ax-motor, html.ax-motor * { cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 20 20'><path d='M3 2v14l4-3.5 2.6 6 2.6-1.1-2.6-5.9H15z' fill='black' stroke='white' stroke-width='1.2'/></svg>") 4 2, auto !important; }
html.ax-motor *:focus-visible { outline: 3px solid #ffd54a !important; outline-offset: 3px !important; }
.ax-guide { position: fixed; left: 0; right: 0; height: 44px; z-index: 899; pointer-events: none; display: none; border-top: 2px solid #ffd54a; border-bottom: 2px solid #ffd54a;
  box-shadow: 0 0 0 100vmax rgba(0,0,0,.42); }
html.ax-adhd .ax-guide { display: block; }
@media print { .ax-btn, .ax-panel { display: none; } }

/* match the site: iris accent, dark surfaces in dark mode */
.ax-top, .ax-reset { background: linear-gradient(110deg, #8f7cf5, #5A42C6); }
.ax-sec h6 { color: #5A42C6; }
.ax-row[aria-pressed="true"] { border-color: #8f7cf5; background: #f4f1ff; }
.ax-row[aria-pressed="true"] .ax-sw { background: #5A42C6; }
:root:not([data-theme="light"]) .ax-panel { background: #0B0F17; color: #F4F6FB; box-shadow: 0 30px 80px -20px rgba(0,0,0,.85), 0 0 0 1px rgba(255,255,255,.08); }
:root:not([data-theme="light"]) .ax-sec { background: #121826; border-color: rgba(255,255,255,.08); }
:root:not([data-theme="light"]) .ax-sec h6 { color: #B7A6FF; }
:root:not([data-theme="light"]) .ax-row { background: #0F1420; border-color: rgba(255,255,255,.1); }
:root:not([data-theme="light"]) .ax-row small { color: #9BA3B4; }
:root:not([data-theme="light"]) .ax-row[aria-pressed="true"] { background: rgba(183,166,255,.12); border-color: #B7A6FF; }
:root:not([data-theme="light"]) .ax-row[aria-pressed="true"] .ax-sw { background: #B7A6FF; }
:root:not([data-theme="light"]) .ax-sw { background: #2a3142; }
:root:not([data-theme="light"]) .ax-size button { background: #0F1420; border-color: rgba(255,255,255,.14); color: #F4F6FB; }

/* footer: centred */
.ft-cols { justify-content: center; justify-items: center; text-align: center; }
.ft-col { align-items: center; }
.ft-base { flex-direction: column; align-items: center; justify-content: center; padding-left: 0; text-align: center; }
.ft .foot-ic { justify-content: center; }
/* accessibility: neutral, like the site's own buttons, not purple */
.ax-btn { background: var(--white); color: var(--void); box-shadow: 0 10px 28px -10px rgba(0,0,0,.6), 0 0 0 1px var(--edge-2); }
.ax-top, .ax-reset { background: #151a26; color: #F4F6FB; }
:root[data-theme="light"] .ax-top, :root[data-theme="light"] .ax-reset { background: #0B0F17; }
.ax-sec h6, :root:not([data-theme="light"]) .ax-sec h6 { color: var(--dim-2); }
.ax-row[aria-pressed="true"] { background: #f2f3f7; border-color: #0B0F17; }
.ax-row[aria-pressed="true"] .ax-sw { background: #0B0F17; }
:root:not([data-theme="light"]) .ax-row[aria-pressed="true"] { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.4); }
:root:not([data-theme="light"]) .ax-row[aria-pressed="true"] .ax-sw { background: #F4F6FB; }
:root:not([data-theme="light"]) .ax-row[aria-pressed="true"] .ax-sw::after { background: #0B0F17; }
/* base row: name far left, links far right */
.ft-base { flex-direction: row; justify-content: space-between; align-items: center; text-align: left; padding-left: 64px; }
.ft .foot-ic { justify-content: flex-end; }
@media (max-width: 700px) { .ft-base { flex-direction: column; align-items: flex-start; padding-left: 0; } .ft .foot-ic { justify-content: flex-start; } }
/* accessibility button: orchid */
.ax-btn { background: linear-gradient(145deg, #F1B8E8, #C25BB8); color: #2a0a26; box-shadow: 0 10px 26px -10px rgba(194,91,184,.7), inset 0 1px 0 rgba(255,255,255,.4); }
/* orchid menu, both modes */
.ax-top, .ax-reset, :root[data-theme="light"] .ax-top, :root[data-theme="light"] .ax-reset { background: linear-gradient(110deg, #D98ACF, #9E3D96); color: #fff; }
.ax-btn:focus-visible { outline-color: #F1B8E8; }
.ax-sec h6 { color: #A8449F; }
.ax-row[aria-pressed="true"] { background: #FBF0FA; border-color: #C25BB8; }
.ax-row[aria-pressed="true"] .ax-sw { background: #C25BB8; }
.ax-row[aria-pressed="true"] .ax-sw::after { background: #fff; }
.ax-size button:hover { border-color: #C25BB8; color: #A8449F; }
:root:not([data-theme="light"]) .ax-sec h6 { color: #E7A6DE; }
:root:not([data-theme="light"]) .ax-row[aria-pressed="true"] { background: rgba(218,112,214,.12); border-color: #D98ACF; }
:root:not([data-theme="light"]) .ax-row[aria-pressed="true"] .ax-sw { background: #D98ACF; }
:root:not([data-theme="light"]) .ax-row[aria-pressed="true"] .ax-sw::after { background: #fff; }
:root:not([data-theme="light"]) .ax-size button:hover { border-color: #D98ACF; color: #E7A6DE; }
/* footer: darker text in light mode */
:root[data-theme="light"] .ft-col a, :root[data-theme="light"] .ft .foot-ic a { color: #1B1F2A; }
:root[data-theme="light"] .ft-col h4, :root[data-theme="light"] .ft-open { color: #3A4152; }
