/* Shared shell for public information pages. */
.public-page:has(.legal-card) { line-height:1.7; }
.public-page .legal-card a { color:#1677ff; text-underline-offset:3px; }
.public-page .legal-card h2 { margin:30px 0 10px; font-size:20px; line-height:1.4; }
.public-page .legal-card p { margin:0 0 16px; overflow-wrap:anywhere; }
.public-page .legal-document-notice { color:#64748b; font-size:14px; margin:0 0 28px; }
.public-page .contact-page { padding-bottom:0; }
.public-page .contact-page-heading,.public-page .contact-card,.public-page .contact-note { width:100%; }
.public-page .contact-page-heading { margin:0 0 28px; padding:0; text-align:left; }
.public-page .page-subtitle { display:block; }
body.public-page { margin:0; min-height:100vh; background:#f5f8fc; color:#1e293b; font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; }
.public-page .public-header { display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; max-width:none; height:72px; margin:0; padding:0 36px; position:sticky; top:0; z-index:20; background:rgba(255,255,255,.68); backdrop-filter:blur(12px); border:0; border-bottom:1px solid rgba(255,255,255,.72); box-shadow:0 16px 40px rgba(17,24,39,.04); }
.public-page .public-header > a { display:flex; align-items:center; }
.public-page .public-sign-in { display:inline-flex; align-items:center; justify-content:center; height:36px; padding:0 18px; border:1px solid transparent; border-radius:9px; background:linear-gradient(180deg,#2f8bff 0%,#0f73f6 100%); color:#fff; font:600 13px/1 "Inter",sans-serif; text-decoration:none; white-space:nowrap; }
.public-page .public-sign-in:hover { background:linear-gradient(180deg,#1d7df6 0%,#075ed2 100%); color:#fff; }
.public-page .public-sign-in[hidden] { display:none; }
.public-page .public-header .brand-logo { display:block; width:136px; height:auto; }
.public-page .public-main { width:min(960px,calc(100% - 48px)); max-width:none; margin:24px auto 0; padding:0; }
.public-page .public-breadcrumbs { margin:0 0 28px; font-size:13px; line-height:1.5; color:#687487; }
.public-page .public-breadcrumbs ol { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0; padding:0; list-style:none; }
.public-page .public-breadcrumbs li { display:flex; align-items:center; gap:10px; }
.public-page .public-breadcrumbs li + li::before { content:"/"; color:#a8b1bf; }
.public-page .public-breadcrumbs a { color:inherit; text-decoration:none; }
.public-page .public-breadcrumbs a:hover,.public-page .public-breadcrumbs a:focus-visible { color:#0f73f6; }
.public-page h1 { margin:0 0 12px; color:#111827; font-size:clamp(28px,4vw,36px); font-weight:600; line-height:1.2; letter-spacing:-.03em; text-align:left; }
.public-page .public-footer { width:min(960px,calc(100% - 48px)); max-width:none; margin:48px auto 0; padding:34px 0; border:0; background:transparent; color:#687487; font-size:13px; font-weight:400; line-height:1.5; }
.public-page .public-footer-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; max-width:none; margin:0; }
.public-page .public-footer nav { display:flex; flex-wrap:wrap; gap:18px; }
.public-page .public-footer a { color:inherit; text-decoration:none; }
.public-page .public-footer a:hover,.public-page .public-footer a:focus-visible { color:#0f73f6; }
.public-page .public-footer p { margin:0; white-space:nowrap; }
.public-page .legal-card { padding:30px; background:#fff; border:1px solid #dbe3ef; border-radius:12px; box-shadow:0 12px 28px rgba(31,41,55,.05); }
.public-page .legal-card > h2:first-child { margin-top:0; }
@media(max-width:680px) {
 .public-page .public-main,.public-page .public-footer { width:calc(100% - 32px); }
 .public-page .public-footer-inner { align-items:flex-start; flex-direction:column; gap:18px; }
 .public-page .public-footer p { white-space:normal; }
 .public-page .legal-card { padding:22px 20px; }
}
@media(max-width:600px) {
 .public-page .contact-form-footer { flex-direction:column; align-items:stretch; gap:16px; }
 .public-page .contact-card-heading { flex-direction:column; gap:16px; }
}
