/* Shared marketing surfaces stylesheet (Phase 64 PART-1): Home + ForPartners */
/* Marketing surfaces — plain HTML/CSS under PublicLayout. Colors read from --mud-palette-*
   (so they match the theme exactly) plus a few --fp-* tokens from app.css. Page-specific selectors
   stay scoped; the fph-* navigation classes are deliberately shared by both marketing pages. */
.fp-home { color: var(--mud-palette-text-primary); font-size: 17px; line-height: 1.6; }
.fp-home h1, .fp-home h2, .fp-home h3 { font-family: var(--fp-serif); font-weight: 600;
    line-height: 1.08; letter-spacing: -.01em; text-wrap: balance; margin: 0; }
.fp-home p { margin: 0; }
.fp-home a { color: inherit; }
.fph-wrap { max-width: 1080px; margin-inline: auto; padding-inline: 24px; }
.fph-eyebrow { font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
    color: var(--mud-palette-primary); }
.fph-lede { color: var(--mud-palette-text-secondary); font-size: 1.15rem; max-width: 56ch; }
.fp-home section { padding: clamp(2.75rem, 6vw, 4.5rem) 0; }

/* buttons */
.fph-btn { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; font-size: 1rem;
    border-radius: 10px; padding: .72rem 1.25rem; text-decoration: none; border: 1px solid transparent;
    cursor: pointer; transition: background .18s ease, transform .18s ease, border-color .18s ease; }
/* Page-prefixed so button text color (0,2,0) beats MudBlazor's a:link rule (0,1,1); a bare
   .fph-btn-* (0,1,0) loses to it. */
.fp-home .fph-btn-primary, .fp-partners .fph-btn-primary, .fp-support .fph-btn-primary { background: var(--mud-palette-primary); color: #fff; box-shadow: var(--fp-shadow-sm); }
.fp-home .fph-btn-primary:hover, .fp-partners .fph-btn-primary:hover, .fp-support .fph-btn-primary:hover { background: var(--fp-leaf); transform: translateY(-1px); }
.fp-home .fph-btn-ghost, .fp-partners .fph-btn-ghost, .fp-support .fph-btn-ghost { background: transparent; color: var(--mud-palette-text-primary); border-color: var(--mud-palette-lines-default); }
.fp-home .fph-btn-ghost:hover, .fp-partners .fph-btn-ghost:hover, .fp-support .fph-btn-ghost:hover { border-color: var(--mud-palette-primary); color: var(--mud-palette-primary); }
.fp-home .fph-btn-ondark { background: #fff; color: var(--fp-forest-deep); }
.fp-home .fph-btn-ondark:hover { background: #EAF6EF; color: var(--fp-forest-deep); transform: translateY(-1px); }
.fph-btn-lg { padding: .9rem 1.6rem; font-size: 1.05rem; }
.fph-btn-sm { padding: .55rem 1.1rem; }
.fph-btn-block { width: 100%; justify-content: center; }
.fph-note { font-size: .85rem; color: var(--mud-palette-text-secondary); margin-top: .7rem; }
.fp-home a:focus-visible, .fp-home summary:focus-visible,
.fp-partners a:focus-visible, .fp-partners summary:focus-visible,
.fp-support a:focus-visible, .fp-support summary:focus-visible { outline: 2px solid var(--mud-palette-primary);
    outline-offset: 3px; border-radius: 8px; }

/* nav */
.fph-nav { position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--mud-palette-background) 88%, transparent);
    backdrop-filter: saturate(140%) blur(10px); border-bottom: 1px solid var(--mud-palette-divider); }
/* position: relative so .fph-mobmenu-panel (an absolutely-positioned dropdown) anchors against this
   bar, not the viewport. */
.fph-nav-in { display: flex; align-items: center; gap: 1.5rem; height: 64px; position: relative; }
.fph-brandlink { text-decoration: none; color: var(--mud-palette-text-primary); display: inline-flex; flex-shrink: 0; }
.fph-links { display: flex; gap: 1.35rem; margin-left: auto; font-size: .95rem; white-space: nowrap; }
.fph-links a { color: var(--mud-palette-text-secondary); text-decoration: none; transition: color .15s; }
.fph-links a:hover { color: var(--mud-palette-text-primary); }
.fph-nav-cta { display: flex; align-items: center; gap: .6rem; flex-shrink: 0; }

/* HOME-2: CSS-only mobile disclosure menu -- hidden above the 860px breakpoint, no JavaScript. */
.fph-mobmenu { display: none; margin-left: auto; }
.fph-mobmenu > summary { list-style: none; min-height: 44px; padding: 0 .5rem; display: flex;
    align-items: center; gap: .3rem; cursor: pointer; font-weight: 600; font-size: .95rem;
    color: var(--mud-palette-text-primary); }
.fph-mobmenu > summary::-webkit-details-marker { display: none; }
.fph-mobmenu > summary::after { content: "+"; color: var(--mud-palette-primary); font-size: 1.3rem;
    font-weight: 400; transition: transform .2s; }
.fph-mobmenu[open] > summary::after { transform: rotate(45deg); }
.fph-mobmenu-panel { position: absolute; top: 100%; left: 0; right: 0; display: flex; flex-direction: column;
    background: var(--mud-palette-surface); border-bottom: 1px solid var(--mud-palette-divider);
    box-shadow: var(--fp-shadow); }
.fph-mobmenu-panel a { display: flex; align-items: center; min-height: 44px; padding-inline: 24px;
    border-bottom: 1px solid var(--mud-palette-divider); color: var(--mud-palette-text-primary);
    text-decoration: none; }
.fph-mobmenu-panel a:last-child { border-bottom: 0; }

@media (max-width: 1080px) {
    .fph-links { display: none; }
    .fph-nav-cta { display: none; }
    .fph-mobmenu { display: block; }
    .fph-nav-in { gap: 1rem; }
}

/* hero */
.fph-hero { padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(2rem, 4vw, 3.5rem); }
.fph-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.fph-hero h1 { font-size: clamp(2.3rem, 5.2vw, 3.7rem); margin: 1rem 0 1.1rem; }
.fph-hero .fph-lede { margin-bottom: 1.6rem; }
.fph-actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }
.fph-trust-inline { margin-top: 1.7rem; font-size: .9rem; color: var(--mud-palette-text-secondary); display: flex; flex-wrap: wrap; gap: .5rem 1.1rem; }
.fph-trust-inline span { display: inline-flex; align-items: center; gap: .4rem; }
.fph-tick { color: var(--mud-palette-primary); font-weight: 700; }
@media (max-width: 860px) { .fph-hero-grid { grid-template-columns: 1fr; } .fph-hero .fph-lede { max-width: none; } }

/* section head */
.fph-sechead { max-width: 60ch; margin-bottom: 2.2rem; }
.fph-sechead h2 { font-size: clamp(1.7rem, 3.4vw, 2.35rem); margin: .5rem 0 .6rem; }
.fph-sechead p { color: var(--mud-palette-text-secondary); }
.fph-center { text-align: center; margin-inline: auto; }
.fph-center p { margin-inline: auto; }
.fph-h2-sm { font-size: clamp(1.6rem, 3.2vw, 2.2rem); margin: .5rem 0 1.4rem; }
.fph-rule { border: 0; border-top: 1px solid var(--mud-palette-divider); margin: 0; }

/* trust band */
.fph-band { background: var(--fp-field); border-block: 1px solid var(--mud-palette-divider); }
.fph-band .fph-wrap { display: flex; flex-wrap: wrap; gap: 1rem 2.2rem; padding-block: 1.4rem; align-items: center; justify-content: center; text-align: center; }
.fph-chip { display: inline-flex; align-items: center; gap: .5rem; font-size: .95rem; color: var(--mud-palette-text-secondary); }
.fph-chip b { color: var(--mud-palette-text-primary); font-weight: 600; }

/* steps */
.fph-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.fph-step { background: var(--mud-palette-surface); border: 1px solid var(--mud-palette-lines-default); border-radius: 12px; padding: 1.5rem; box-shadow: var(--fp-shadow-sm); }
.fph-num { font-family: var(--fp-serif); font-size: 1.5rem; color: var(--mud-palette-primary); width: 44px; height: 44px;
    border-radius: 11px; background: var(--fp-field); display: grid; place-items: center; margin-bottom: 1rem; font-variant-numeric: tabular-nums; }
.fph-step h3 { font-family: var(--mud-typography-default-family, inherit); font-size: 1.1rem; margin-bottom: .4rem; }
.fph-step p { color: var(--mud-palette-text-secondary); font-size: .98rem; }
@media (max-width: 760px) { .fph-steps { grid-template-columns: 1fr; } }

/* explainer */
.fph-explain { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; }
.fph-abcd { display: flex; flex-direction: column; gap: 1rem; }
.fph-row { display: flex; gap: 1rem; align-items: flex-start; padding-bottom: 1rem; border-bottom: 1px solid var(--mud-palette-divider); }
.fph-row:last-child { border-bottom: 0; padding-bottom: 0; }
.fph-k { flex: none; width: 30px; height: 30px; border-radius: 8px; background: var(--mud-palette-primary); color: #fff; font-weight: 700; display: grid; place-items: center; font-size: .9rem; }
.fph-row h3 { font-size: 1.02rem; margin-bottom: .15rem; }
.fph-row p { color: var(--mud-palette-text-secondary); font-size: .95rem; }
@media (max-width: 760px) { .fph-explain { grid-template-columns: 1fr; } }

/* protected-zone example row */
.fph-pz-note { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; margin-top: clamp(2.5rem, 5vw, 4rem); }
.fph-pz-h3 { font-size: clamp(1.4rem, 2.8vw, 1.8rem); margin: .4rem 0 .6rem; }
.fph-pz-note p { color: var(--mud-palette-text-secondary); max-width: 46ch; }
@media (max-width: 760px) { .fph-pz-note { grid-template-columns: 1fr; } }

/* feature cards */
.fph-grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1rem; }
.fph-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.fph-card { background: var(--mud-palette-surface); border: 1px solid var(--mud-palette-lines-default); border-radius: 12px; padding: 1.35rem; box-shadow: var(--fp-shadow-sm); }
.fph-ic { color: var(--mud-palette-primary); margin-bottom: .8rem; }
.fph-ic svg { width: 28px; height: 28px; display: block; }
.fph-card h3 { font-size: 1.02rem; margin-bottom: .35rem; }
.fph-card p { color: var(--mud-palette-text-secondary); font-size: .93rem; }
.fph-tag { font-family: ui-monospace, Consolas, monospace; font-size: .72rem; color: var(--mud-palette-primary); letter-spacing: .06em; text-transform: uppercase; }
.fph-tag-starter { color: #7C5C00; background: #FFF4D6; padding: .15rem .5rem; border-radius: 4px; display: inline-block; margin-bottom: .3rem; }
/* Inline plan qualifier used mid-sentence in the audit section — the register read is on every
   tier, but the CSV/PDF export is Professional, and the copy must not overclaim. */
.fph-tag-pro { color: var(--mud-palette-primary); background: #E7F1EA; padding: .1rem .4rem; border-radius: 4px;
    display: inline-block; white-space: nowrap; }
.fph-trace-head { margin: 2.2rem 0 1.1rem; border-top: 1px solid var(--mud-palette-divider); padding-top: 2rem; }
.fph-trace-sub { color: var(--mud-palette-text-secondary); font-size: .95rem; margin-top: .3rem; }
@media (max-width: 860px) { .fph-grid4 { grid-template-columns: repeat(2, 1fr); } .fph-grid3 { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .fph-grid4 { grid-template-columns: 1fr; } }

/* why */
.fph-why { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.fph-col { border-radius: 12px; padding: 1.6rem; border: 1px solid var(--mud-palette-lines-default); }
.fph-them { background: var(--mud-palette-surface); }
.fph-us { background: var(--mud-palette-primary); color: #fff; border-color: transparent; box-shadow: var(--fp-shadow); }
.fph-col h3 { font-size: 1.05rem; margin-bottom: 1rem; }
.fph-us h3 { color: #fff; }
.fph-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .7rem; }
.fph-col li { display: flex; gap: .6rem; font-size: .97rem; align-items: flex-start; }
.fph-them li { color: var(--mud-palette-text-secondary); }
.fph-x { color: var(--mud-palette-text-secondary); }
.fph-us .fph-m { color: #fff; font-weight: 700; }
/* The light column originally held only ✕ items, so its list text is muted. Ticks in it must not
   inherit that grey — a grey ✓ reads as disabled rather than as something you get. */
.fph-them .fph-m { color: var(--mud-palette-primary); font-weight: 700; }
@media (max-width: 760px) { .fph-why { grid-template-columns: 1fr; } }

/* pricing */
.fph-price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; align-items: stretch; }
.fph-price-grid .fph-price { max-width: none; margin-inline: 0; display: flex; flex-direction: column; }
.fph-price-grid .fph-price ul { flex: 1; }
@media (max-width: 860px) { .fph-price-grid { grid-template-columns: 1fr; } .fph-price-grid .fph-price { max-width: 440px; margin-inline: auto; width: 100%; } }
.fph-price { max-width: 440px; margin-inline: auto; background: var(--mud-palette-surface); border: 1px solid var(--mud-palette-lines-default);
    border-radius: 16px; padding: 2rem; box-shadow: var(--fp-shadow); text-align: center; }
.fph-plan { font-weight: 600; letter-spacing: .02em; color: var(--mud-palette-primary); }
/* position: relative so the featured card's badge can be pinned to its top edge. Applied to the
   base rule, not just the featured card, so all three cards keep an identical box. */
.fph-price { position: relative; }
.fph-price-featured { border-color: var(--mud-palette-primary); border-width: 2px; }
.fph-badge { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%);
    background: var(--mud-palette-primary); color: #fff; font-size: .75rem; font-weight: 600;
    letter-spacing: .04em; text-transform: uppercase; padding: .3rem .8rem; border-radius: 999px;
    white-space: nowrap; }
/* Volume/need self-identification line. Sits directly under the subtitle. */
.fph-best-for { color: var(--mud-palette-text-primary); font-size: .88rem; margin-top: .5rem;
    padding-top: .75rem; border-top: 1px solid var(--mud-palette-divider); }
.fph-amt { font-family: var(--fp-serif); font-size: 3rem; margin: .3rem 0; }
.fph-amt small { font-family: inherit; font-size: 1rem; color: var(--mud-palette-text-secondary); font-weight: 400; }
.fph-price-sub { color: var(--mud-palette-text-secondary); font-size: .95rem; }
.fph-price ul { list-style: none; margin: 1.3rem 0; padding: 0; text-align: left; display: flex; flex-direction: column; gap: .65rem; }
.fph-price li { display: flex; gap: .6rem; font-size: .97rem; }
.fph-price li .fph-tick { flex: none; }
.fph-price-foot { font-size: .83rem; color: var(--mud-palette-text-secondary); margin-top: .9rem; }

/* faq */
.fph-faq { max-width: 760px; margin-inline: auto; }
.fph-faq details { border-bottom: 1px solid var(--mud-palette-divider); padding: 1.1rem 0; }
.fph-faq summary { font-weight: 600; font-size: 1.05rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.fph-faq summary::-webkit-details-marker { display: none; }
.fph-faq summary::after { content: "+"; color: var(--mud-palette-primary); font-size: 1.4rem; font-weight: 400; transition: transform .2s; }
.fph-faq details[open] summary::after { transform: rotate(45deg); }
.fph-faq details p { color: var(--mud-palette-text-secondary); margin-top: .7rem; max-width: 64ch; }

/* final cta */
.fph-final { background: var(--fp-forest-deep); color: #EAF6EF; border-radius: 18px; padding: clamp(2.5rem, 5vw, 3.5rem); text-align: center; }
.fph-final h2 { color: #fff; font-size: clamp(1.7rem, 3.5vw, 2.4rem); margin-bottom: .7rem; }
.fph-final p { color: #BFE0CE; margin-bottom: 1.6rem; }

@media (prefers-reduced-motion: reduce) { .fph-btn { transition: none; } }


/* ForPartners styles moved from Pages/ForPartners.razor inline block (PART-1 convergence) */
/* Partner-page content. It shares the public header tokens but keeps its content selectors scoped
       under .fp-partners so nothing leaks into the authenticated app. */
    .fp-partners { color: var(--mud-palette-text-primary); font-size: 17px; line-height: 1.6; }
    .fp-partners h1, .fp-partners h2, .fp-partners h3 { font-family: var(--fp-serif); font-weight: 600;
        line-height: 1.08; letter-spacing: -.01em; text-wrap: balance; margin: 0; }
    .fp-partners p { margin: 0; }
    .fp-partners a { color: inherit; }
    .fpp-wrap { max-width: 1080px; margin-inline: auto; padding-inline: 24px; }
    .fp-partners section { padding: clamp(2.75rem, 6vw, 4.5rem) 0; }

    .fpp-brandlink { text-decoration: none; }

    /* hero */
    .fpp-hero { padding-top: clamp(3rem, 8vw, 5.5rem); }
    .fpp-hero h1 { font-size: clamp(2.1rem, 5vw, 3.4rem); margin: .6rem 0 1rem; max-width: 22ch; }
    .fpp-eyebrow { font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
        color: var(--mud-palette-primary); }
    .fpp-lede { font-size: clamp(1.05rem, 2vw, 1.2rem); color: var(--mud-palette-text-secondary); max-width: 58ch; }
    .fpp-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.6rem; }
    .fpp-note { margin-top: .9rem; font-size: .9rem; color: var(--mud-palette-text-secondary); }

    /* sections */
    .fpp-sechead { max-width: 62ch; margin-bottom: 2.2rem; }
    .fpp-sechead h2 { font-size: clamp(1.7rem, 3.4vw, 2.35rem); margin: .5rem 0 .6rem; }
    .fpp-sechead p { color: var(--mud-palette-text-secondary); }
    .fpp-rule { border: 0; border-top: 1px solid var(--mud-palette-divider); margin: 0; }

    .fpp-grid2, .fpp-grid3 { display: grid; gap: 1.25rem; }
    .fpp-grid3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
    .fpp-grid2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
    .fpp-card { background: var(--mud-palette-surface); border: 1px solid var(--mud-palette-lines-default); border-radius: 12px;
        padding: 1.35rem; box-shadow: var(--fp-shadow-sm); }
    .fpp-card h3 { font-size: 1.04rem; margin-bottom: .45rem; }
    .fpp-card p { color: var(--mud-palette-text-secondary); font-size: .93rem; }

    /* proof */
    .fpp-proof { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }
    @media (max-width: 860px) { .fpp-proof { grid-template-columns: 1fr; } }
    .fpp-proof h3 { font-size: 1.15rem; margin-bottom: .5rem; }
    .fpp-proof > div > p { color: var(--mud-palette-text-secondary); }
    .fpp-endpoints { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
    .fpp-endpoints li { display: flex; flex-wrap: wrap; gap: .5rem .75rem; align-items: baseline;
        padding-bottom: .55rem; border-bottom: 1px solid var(--mud-palette-divider); }
    .fpp-endpoints code { font-family: ui-monospace, Consolas, monospace; font-size: .86rem;
        color: var(--mud-palette-text-primary); }
    .fpp-endpoints span { font-size: .84rem; color: var(--mud-palette-text-secondary); }

    /* closing cta */
    .fpp-cta { background: var(--fp-field); border-top: 1px solid var(--mud-palette-divider); }
    .fpp-center { text-align: center; }
    .fpp-center h2 { font-size: clamp(1.7rem, 3.4vw, 2.35rem); margin-bottom: .7rem; }
    .fpp-center-p { margin-inline: auto; }
    .fpp-center-actions { justify-content: center; }

/* Support uses the same public header, type, spacing, and button language as Home while keeping the
   content deliberately shorter than a marketing landing page. */
.fp-support { color: var(--mud-palette-text-primary); font-size: 17px; line-height: 1.6; }
.fp-support h1, .fp-support h2 { font-family: var(--fp-serif); font-weight: 600; line-height: 1.08;
    letter-spacing: -.01em; text-wrap: balance; margin: 0; }
.fp-support p { margin: 0; }
.fp-support a { color: inherit; }
.fps-hero { padding: clamp(2.75rem, 6vw, 4.5rem) 0; border-bottom: 1px solid var(--mud-palette-divider);
    background: linear-gradient(145deg, var(--mud-palette-background) 55%, var(--mud-palette-primary-hover) 160%); }
.fps-hero-inner { max-width: 760px; margin-inline: auto; text-align: center; }
.fps-hero h1 { margin: .7rem 0 1rem; font-size: clamp(2.35rem, 5vw, 3.8rem); }
.fps-hero .fph-lede { margin-inline: auto; }
.fps-hero .fph-actions { justify-content: center; margin-top: 1.5rem; }
.fps-guide { padding: clamp(2.5rem, 5vw, 3.75rem) 0; }
.fps-content { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.fps-section { padding: 1.5rem; border: 1px solid var(--mud-palette-lines-default); border-radius: 12px;
    background: var(--mud-palette-surface); box-shadow: var(--fp-shadow-sm); }
.fps-section h2 { margin: .55rem 0 .85rem; font-size: clamp(1.65rem, 3vw, 2.15rem); }
.fps-section p, .fps-section ul { color: var(--mud-palette-text-secondary); }
.fps-section ul { margin: 0; padding-left: 1.25rem; }
.fps-section li + li { margin-top: .45rem; }
.fps-section a { color: var(--mud-palette-primary); font-weight: 600; }
@media (max-width: 900px) {
    .fps-content { grid-template-columns: 1fr; }
    .fps-hero-inner { text-align: left; }
    .fps-hero .fph-lede { margin-inline: 0; }
    .fps-hero .fph-actions { justify-content: flex-start; }
}

/* Privacy and Terms share Support's public chrome and spacing, then use a calm document card rather
   than the compact auth-family canvas. The legal copy remains left-aligned inside a centered reading
   measure; these selectors only compose the existing LegalPage component for the marketing shell. */
.fp-legal-public {
    color: var(--mud-palette-text-primary);
    min-height: 100%;
}

.fpl-document {
    padding: clamp(2.5rem, 6vw, 5rem) 0;
    background:
        radial-gradient(circle at 85% 8%, var(--mud-palette-primary-hover), transparent 28rem),
        var(--mud-palette-background);
}

.fpl-document .fp-legal {
    max-width: 820px;
    padding: clamp(1.5rem, 4vw, 3.5rem);
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 16px;
    background: var(--mud-palette-surface);
    box-shadow: var(--fp-shadow-sm);
}

.fpl-document .fp-legal-title {
    margin: 0 0 .35rem;
    font-family: var(--fp-serif);
    font-size: clamp(2.35rem, 5vw, 3.6rem);
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -.025em;
    text-wrap: balance;
}

.fpl-document .fp-legal-status {
    margin-bottom: 1.75rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--mud-palette-divider);
}

.fpl-document .fp-legal-body {
    max-width: 68ch;
}

.fpl-document .fp-legal-body > .mud-alert {
    margin-bottom: 2rem;
}

.fpl-document .fp-legal-body h2 {
    font-family: var(--fp-serif);
    font-size: clamp(1.45rem, 3vw, 1.8rem);
    line-height: 1.15;
}

.fpl-document .fp-legal-body a {
    color: var(--mud-palette-primary);
    font-weight: 600;
}

@media (max-width: 599.98px) {
    .fpl-document { padding-block: 1.5rem 2.75rem; }
    .fpl-document .fph-wrap { padding-inline: 16px; }
    .fpl-document .fp-legal {
        padding: 1.25rem;
        border-radius: 12px;
    }
}
