/* Public pages only: standalone stylesheet, also registered in custom.css. */
.ff-privacy {
    position: fixed;
    inset: auto auto .75rem .75rem;
    width: min(20rem, calc(100vw - 1.5rem));
    z-index: 10000;
    max-width: 20rem;
    max-height: 85vh;
    overflow-y: auto;
    margin: 0;
    padding: .75rem;
    border: 1px solid var(--p1);
    border-radius: .75rem;
    background: Canvas;
    color: CanvasText;
    box-shadow: 0 .5rem 2rem color-mix(in srgb, var(--navy) 25%, transparent);
    font-size: .8125rem;
    line-height: 1.35;
}
.ff-privacy[hidden] { display: none; }
.ff-privacy h2 { font-size: .875rem; margin-bottom: .25rem; }
.ff-privacy p + p { margin-top: .5rem; }
.ff-privacy a { color: var(--p1); text-decoration: underline; }
.ff-privacy-actions { display: flex; gap: .5rem; margin-top: .5rem; }
.ff-privacy-actions button {
    flex: 1 1 0;
    min-width: 0;
    min-height: 44px;
    padding: .5rem;
    border: 2px solid var(--p1);
    border-radius: .5rem;
    background: Canvas;
    color: var(--p1);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.ff-privacy-details { margin-top: .25rem; }
.ff-privacy-details summary { cursor: pointer; color: var(--p1); text-decoration: underline; }
.ff-privacy-details[open] summary { margin-bottom: .5rem; }
#ff-privacy-status:empty { display: none; }
.ff-privacy :focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.landing-new-modules { margin-block: 2rem 4rem; }
.landing-new-modules .module-chip { flex-direction: column; align-items: flex-start; text-align: left; }
.landing-new-modules h3 { font-size: 1.15rem; }
.landing-new-modules p { font-size: .9rem; line-height: 1.7; }

.landing-new-modules { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 760px) { .landing-new-modules { grid-template-columns: 1fr; } }
