.flux-footer-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:20px;
  margin-left:auto;
}

.flux-footer-socials {
  display:flex;
  align-items:center;
  gap:4px;
}

.flux-footer-social {
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:inline-grid;
  place-items:center;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--brand,#063B37);
  line-height:1;
  opacity:.76;
  text-decoration:none;
  transition:opacity .18s ease;
}

.flux-footer-social:hover {
  color:var(--brand,#063B37);
  opacity:1;
  transform:none;
}

.flux-footer-social:focus-visible {
  outline:2px solid var(--brand,#063B37);
  outline-offset:2px;
  opacity:1;
}

.flux-footer-social svg {
  display:block;
  width:18px;
  height:18px;
  overflow:visible;
}

.flux-footer-social--x svg { width:16px; height:16px; }
.flux-footer-social--instagram svg { width:19px; height:19px; }
[data-theme="dark"] .flux-footer-social { opacity:.9; }
[data-theme="dark"] .flux-footer-social:hover { opacity:1; }

.flux-footer-bottom {
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid var(--line,rgba(16,42,36,.16));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px 24px;
  flex-wrap:wrap;
}

.flux-footer-copyright {
  margin:0;
  color:var(--faint,#818A84);
  font-size:12px;
  line-height:1.5;
}

.flux-footer-legal {
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px 20px;
  flex-wrap:wrap;
}

.flux-footer-legal a {
  color:var(--brand,#063B37);
  font-family:'Instrument Sans',sans-serif;
  font-size:10.5px;
  font-weight:500;
  letter-spacing:.09em;
  line-height:1.4;
  text-decoration:none;
  text-transform:uppercase;
  transition:opacity .18s ease;
}

.flux-footer-legal a:hover { color:var(--brand,#063B37); opacity:.66; }
.flux-footer-legal a:focus-visible { outline:2px solid var(--brand,#063B37); outline-offset:3px; }

body.flux-legal-open { overflow:hidden; }

.flux-legal-dialog {
  width:min(880px,calc(100vw - 32px));
  height:min(780px,calc(100dvh - 32px));
  max-width:none;
  max-height:none;
  margin:auto;
  padding:0;
  border:1px solid var(--brand,#063B37);
  border-radius:0;
  background:var(--bg,#F2F0E8);
  color:var(--ink,#102A24);
  box-shadow:0 28px 90px rgba(3,25,26,.28);
}

.flux-legal-dialog::backdrop {
  background:rgba(3,25,26,.56);
  backdrop-filter:blur(5px);
}

.flux-legal-dialog__frame { height:100%; display:flex; flex-direction:column; }
.flux-legal-dialog__header { flex:none; padding:24px 28px; border-bottom:1px solid var(--line,rgba(16,42,36,.16)); display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.flux-legal-dialog__kicker { margin:0 0 8px; color:var(--faint,#818A84); font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.flux-legal-dialog__title { margin:0; color:var(--ink,#102A24); font-family:'Inter Tight',system-ui,sans-serif; font-size:clamp(24px,3vw,34px); font-weight:500; letter-spacing:-.02em; line-height:1.08; }
.flux-legal-dialog__updated { margin:9px 0 0; color:var(--faint,#818A84); font-family:'JetBrains Mono',monospace; font-size:11px; line-height:1.5; }
.flux-legal-dialog__close,.flux-legal-page-close { width:40px; height:40px; flex:0 0 40px; display:inline-grid; place-items:center; padding:0; border:0; border-radius:0; background:transparent; color:var(--brand,#063B37); cursor:pointer; transition:opacity .18s ease,background .18s ease; }
.flux-legal-dialog__close:hover,.flux-legal-page-close:hover { background:var(--bg-2,#F7F5EE); color:var(--brand,#063B37); }
.flux-legal-dialog__close:focus-visible,.flux-legal-page-close:focus-visible { outline:2px solid var(--brand,#063B37); outline-offset:2px; }
.flux-legal-dialog__close svg,.flux-legal-page-close svg { width:20px; height:20px; display:block; }
.flux-legal-dialog__body { flex:1; min-height:0; overflow:auto; padding:8px 28px 40px; overscroll-behavior:contain; scrollbar-gutter:stable; }
.flux-legal-dialog__status { margin:28px 0; color:var(--muted,#42564F); font-size:14px; }
.flux-legal-dialog__content h2 { margin:34px 0 10px; color:var(--ink,#102A24); font-family:'Inter Tight',system-ui,sans-serif; font-size:18px; font-weight:600; letter-spacing:-.01em; }
.flux-legal-dialog__content p,.flux-legal-dialog__content li { color:var(--muted,#42564F); font-family:'Inter Tight',system-ui,sans-serif; font-size:14px; line-height:1.68; }
.flux-legal-dialog__content ul { padding-left:20px; }
.flux-legal-dialog__content a { color:var(--brand,#063B37); text-decoration:underline; text-underline-offset:3px; }

.flux-legal-page-close {
  position:fixed;
  z-index:24;
  top:92px;
  right:32px;
  border:1px solid var(--line,rgba(16,42,36,.16));
  background:var(--bg,#F2F0E8);
}

@media (max-width:560px) {
  .flux-footer-actions { width:100%; justify-content:space-between; margin-left:0; flex-wrap:wrap; gap:14px; }
  .flux-footer-bottom { align-items:flex-start; flex-direction:column; }
  .flux-footer-legal { margin-left:0; justify-content:flex-start; }
  .flux-legal-dialog { width:calc(100vw - 16px); height:calc(100dvh - 16px); }
  .flux-legal-dialog__header { padding:20px; }
  .flux-legal-dialog__body { padding:4px 20px 32px; }
  .flux-legal-page-close { top:84px; right:16px; }
}

@media (prefers-reduced-motion:reduce) {
  .flux-footer-social { transition:none; }
}
