/*
 * The public landing page is brand-locked light and derives its entire look from one community brand
 * seed: the [data-community-theme] block injected by the view re-points these --fe-* roles for this page
 * only (generated by PaletteGenerator). With no seed the page inherits the static --fe-* Ocean floor from
 * fe365-tokens.css, so it is always fail-soft. --fe-action / --fe-action-secondary drive the brand
 * accents; --fe-surface is the light canvas these sit on.
 */
.community-landing-page {
    /* Brand-locked light: pin the surface token to its light value so the page reads light even when a
       visitor has the app chrome in dark mode. The generated [data-community-theme] block re-points the
       brand roles (--fe-action / --fe-action-secondary) but never --fe-surface, so we anchor it here. */
    --fe-surface: #ffffff; /* allow-fixed-light: public community landing page renders light-only */
    background: radial-gradient(circle at top, color-mix(in srgb, var(--fe-action-secondary) 18%, white) 0%, var(--fe-surface) 45%, white 100%); /* allow-fixed-light: per-community brand-locked landing page; surface follows the community's generated brand palette, not app theme */
    color: #17202a; /* allow-fixed-light: brand-locked landing ink on the community's own light brand background */
    min-height: 100vh;
}

.community-landing-hero {
    padding: 2rem 0 1rem;
    position: relative;
}

.community-landing-hero__banner {
    border-radius: var(--fe-radius-card);
    min-height: 22rem;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    background-color: rgba(255, 255, 255, 0.72); /* allow-fixed-light: public community landing page renders light-only */
    margin: 0 1rem 0.75rem;
}

.community-landing-hero__content {
    background: rgba(255, 255, 255, 0.92); /* allow-fixed-light: public community landing page renders light-only */
    border: 1px solid rgba(23, 32, 42, 0.08);
    border-radius: var(--fe-radius-card);
    padding: 2rem;
    position: relative;
}

/* Overlap the banner ONLY when one is present; with no banner the card must not pull up (it would
   otherwise overlap the sticky breadcrumb bar). */
.community-landing-hero__banner + .community-landing-hero__content {
    margin-top: -4rem;
}

/* A logo carrying intrinsic width/height attributes is stretched by `max-height` alone — `height: auto`
   plus `object-fit: contain` keep it in proportion whatever it was uploaded at. */
.community-landing-hero__logo {
    display: block;
    height: auto;
    max-height: 5rem;
    max-width: 100%;
    width: auto;
    object-fit: contain;
    margin-bottom: 1rem;
}

.community-landing-hero__eyebrow {
    color: var(--fe-action); /* engine-clamped AA on light surfaces */
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin-bottom: 0.75rem;
}

.community-landing-hero__cta {
    background: var(--fe-action);
    border-color: var(--fe-action);
    color: #fff; /* allow-fixed-light: white CTA label on the community's fixed brand-primary button */
}

.community-landing-hero__cta:hover,
.community-landing-hero__cta:focus {
    background: var(--fe-action-hover); /* engine's purpose-built darker hover state */
    border-color: var(--fe-action-hover);
    color: #fff; /* allow-fixed-light: white CTA label on the community's fixed brand-primary button */
}

.community-landing-card {
    background: rgba(255, 255, 255, 0.94); /* allow-fixed-light: public community landing page renders light-only */
    border: 1px solid rgba(23, 32, 42, 0.08);
    border-radius: var(--fe-radius-card);
    padding: 1.75rem;
}

.community-landing-card--accent {
    border-top: 6px solid var(--fe-action-secondary);
}

.community-landing-card__eyebrow {
    color: var(--fe-action-secondary); /* engine-clamped AA on light surfaces */
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    margin-bottom: 0.75rem;
    text-transform: uppercase;
}

.community-landing-description p:last-child {
    margin-bottom: 0;
}

@media (max-width: 991.98px) {
    .community-landing-hero__banner + .community-landing-hero__content {
        margin-top: 0;
    }
}

/* Dark mode: the landing page is brand-locked light by default, but when the app chrome is dark the
   white cards glare against the dark navbar/sidebar — so follow the theme here. Surfaces use the
   theme-flipping --bs-* tokens; brand accents are retained via the adaptive --fe-action-text. */
[data-bs-theme="dark"] .community-landing-page {
    --fe-surface: var(--bs-body-bg);
    background: radial-gradient(circle at top, color-mix(in srgb, var(--fe-action-secondary) 20%, var(--bs-body-bg)) 0%, var(--bs-body-bg) 60%);
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .community-landing-hero__banner {
    background-color: var(--bs-tertiary-bg);
}

[data-bs-theme="dark"] .community-landing-hero__content,
[data-bs-theme="dark"] .community-landing-card {
    background: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .community-landing-hero__eyebrow,
[data-bs-theme="dark"] .community-landing-card__eyebrow {
    color: var(--fe-action-text);
}