/* =========================================================
   Löw Fashion Agency — shared UI modules
   Used on BOTH the public site and the admin dashboard:
   accessibility panel · scroll-to-top · fullscreen toggle
   + GDPR cookie consent (public site only)
   Self-contained (own colours) so it looks the same everywhere.
   ========================================================= */

:root { --w-accent: #ec6437; --w-ink: #2f2f30; --w-bg: #ffffff; }

/* ---------- Floating tools (bottom-right stack) ---------- */
.lfa-tools {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 1200;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}
.lfa-tool {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: var(--w-bg);
    color: var(--w-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.16);
    transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, opacity 0.25s ease;
    padding: 0;
}
.lfa-tool:hover { background: var(--w-accent); color: #fff; transform: translateY(-2px); }
.lfa-tool svg { width: 22px; height: 22px; fill: currentColor; }
.lfa-tool.lfa-scrolltop { opacity: 0; pointer-events: none; }
.lfa-tool.lfa-scrolltop.show { opacity: 1; pointer-events: auto; }

/* ---------- Accessibility panel ---------- */
.lfa-a11y-panel {
    position: fixed;
    right: 20px;
    bottom: 78px;
    z-index: 1250;
    width: 270px;
    background: #fff;
    color: var(--w-ink);
    border-radius: 14px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(0, 0, 0, 0.08);
    padding: 18px;
    display: none;
    font-family: "Montserrat", Arial, sans-serif;
}
.lfa-a11y-panel.open { display: block; }
.lfa-a11y-panel h3 {
    margin: 0 0 14px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
    display: flex;
    align-items: center;
    gap: 8px;
}
.lfa-a11y-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 0;
    border-top: 1px solid #eee;
    font-size: 13px;
}
.lfa-a11y-row:first-of-type { border-top: none; }
.lfa-a11y-row .lbl { font-weight: 500; }
.lfa-a11y-btns { display: flex; gap: 6px; }
.lfa-a11y-btns button,
.lfa-toggle {
    border: 1px solid #e2e2e2;
    background: #fafafa;
    color: var(--w-ink);
    border-radius: 8px;
    padding: 5px 11px;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.lfa-a11y-btns button:hover,
.lfa-toggle:hover { border-color: var(--w-accent); color: var(--w-accent); }
.lfa-toggle.on { background: var(--w-accent); color: #fff; border-color: var(--w-accent); }
.lfa-a11y-reset {
    margin-top: 14px;
    width: 100%;
    border: 1px solid #e2e2e2;
    background: #fff;
    border-radius: 8px;
    padding: 8px;
    font: inherit;
    font-weight: 600;
    font-size: 12.5px;
    cursor: pointer;
    color: #999;
}
.lfa-a11y-reset:hover { color: var(--w-accent); border-color: var(--w-accent); }

/* ---------- Accessibility GLOBAL effects (applied to <html>) ---------- */
html.a11y-underline a { text-decoration: underline !important; }
html.a11y-contrast,
html.a11y-contrast body { background: #000 !important; color: #fff !important; }
html.a11y-contrast .site-header,
html.a11y-contrast .site-footer,
html.a11y-contrast .admin-main,
html.a11y-contrast .card,
html.a11y-contrast .brand-card,
html.a11y-contrast .brand-logo { background: #000 !important; border-color: #fff !important; }
html.a11y-contrast a,
html.a11y-contrast .site-nav a,
html.a11y-contrast h1,
html.a11y-contrast h2,
html.a11y-contrast h3,
html.a11y-contrast p,
html.a11y-contrast .brand-name { color: #ffed4a !important; }
html.a11y-contrast img { filter: contrast(1.15); }

/* ---------- GDPR cookie consent banner ---------- */
.lfa-consent {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1300;
    background: rgba(30, 28, 27, 0.97);
    color: #f3efe9;
    backdrop-filter: blur(6px);
    padding: 16px 20px;
    display: none;
    font-family: "Montserrat", Arial, sans-serif;
}
.lfa-consent.show { display: block; }
.lfa-consent-inner {
    max-width: 1180px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    justify-content: space-between;
}
.lfa-consent p { margin: 0; font-size: 13.5px; font-weight: 300; line-height: 1.55; flex: 1; min-width: 260px; }
.lfa-consent-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.lfa-consent .c-btn {
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: transparent;
    color: #f3efe9;
    border-radius: 8px;
    padding: 9px 16px;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.lfa-consent .c-btn:hover { border-color: #fff; }
.lfa-consent .c-btn.primary { background: var(--w-accent); border-color: var(--w-accent); color: #fff; }
.lfa-consent .c-btn.primary:hover { filter: brightness(1.08); }
.lfa-consent .c-link { color: #d9cfc2; font-size: 13px; text-decoration: underline; white-space: nowrap; }
.lfa-consent .c-link:hover { color: #fff; }

@media (max-width: 640px) {
    .lfa-tools { right: 14px; bottom: 14px; }
    .lfa-tool { width: 42px; height: 42px; }
    .lfa-a11y-panel { right: 14px; left: 14px; width: auto; bottom: 70px; }
    .lfa-consent-actions { width: 100%; }
}
