/* Reference layout rules for existing public Laravel page families. */
/* Game pages opt out via data-game-page; lobby uses Plus Jakarta, lock-in keeps arcade fonts. */
html:not([data-admin]):not([data-game-page]) body,
html:not([data-admin]):not([data-game-page]) body * { font-family: 'Plus Jakarta Sans', sans-serif !important; }

.tp-app-body { background: var(--bg, var(--tpz-bg)) !important; color: var(--ink, var(--tpz-text)) !important; }

.tp-app-body .tp-seo-page {
    width: min(1120px, calc(100% - 48px));
    max-width: 1120px;
    margin: 0 auto;
    padding: 56px 0 88px;
    color: var(--ink, var(--tpz-text));
}

.tp-app-body .tp-seo-page > h1 { max-width: 12em; margin: 0 0 28px; color: var(--ink, var(--tpz-text)); font-size: clamp(2.4rem, 7vw, 4.4rem); font-weight: 800; line-height: 1; }
.tp-app-body .tp-seo-prose { max-width: 44em; color: var(--muted, var(--tpz-muted)); font-size: 1rem; line-height: 1.7; }
.tp-app-body .tp-seo-prose > p:first-of-type { color: var(--ink, var(--tpz-text)); font-size: 1.12rem; }
.tp-app-body .tp-seo-prose h2 { margin: 36px 0 12px; padding: 0; border: 0; color: var(--ink, var(--tpz-text)); font-size: 1.35rem; line-height: 1.2; }
.tp-app-body .tp-seo-prose p, .tp-app-body .tp-seo-prose li { color: var(--muted, var(--tpz-muted)); }
.tp-app-body .tp-seo-cta { padding: 28px; border: 0; border-radius: 20px; background: var(--soft, var(--tpz-surface)); }

/* Support forms */
.tpctx-shell .tpctx-content { width: min(1120px, 100%); margin: 0 auto; }
.tpctx-shell .tpctx-hero { padding: 56px 24px 36px; }
.tpctx-shell .tpctx-h1 { max-width: 12em; font-size: clamp(2.4rem, 7vw, 4.4rem); font-weight: 800; line-height: 1; }
.tpctx-shell .tpctx-hero-sub { color: var(--muted, var(--tpz-muted)); }
.tpctx-shell .tpctx-wrap { width: min(1120px, 100%); padding: 0 24px 88px; }
.tpctx-shell .tpctx-card { max-width: 640px; margin: 0; padding: 28px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.tpctx-shell .tpctx-input, .tpctx-shell .tpctx-textarea { border-color: var(--line, var(--tpz-border)); border-radius: 14px; background: var(--soft, var(--tpz-surface)); color: var(--ink, var(--tpz-text)); }
.tpctx-shell .tpctx-submit { min-height: 48px; border-radius: 999px; background: var(--ink, var(--tpz-text)); color: var(--bg, var(--tpz-bg)); }

/* FAQ accordions */
.tpfaq-shell .tpfaq-content { width: min(1120px, 100%); margin: 0 auto; }
.tpfaq-shell .tpfaq-hero { padding: 56px 24px 34px; }
.tpfaq-shell .tpfaq-h1 { max-width: 12em; font-size: clamp(2.4rem, 7vw, 4.4rem); font-weight: 800; line-height: 1; }
.tpfaq-shell .tpfaq-h1-accent { color: var(--tpz-green); }
.tpfaq-shell .tpfaq-wrap { width: min(760px, calc(100% - 48px)); }
.tpfaq-shell .tpfaq-item { border-color: var(--tpz-border); border-radius: 0; background: transparent; box-shadow: none; }
.tpfaq-shell .tpfaq-cta-card { border: 0; border-radius: 20px; background: var(--tpz-surface); box-shadow: none; }

/* Discovery and event/fundraiser search families */
.page-wrapper, .tp-page, .hub-wrap { max-width: 1120px !important; }
.page-wrapper { margin: 0 auto; }
.hub-wrap { padding-top: 32px !important; }
.hub-seo-title { color: var(--tpz-text) !important; font-size: clamp(2.4rem, 7vw, 4.4rem) !important; line-height: 1 !important; }
html:not([data-game-page]) .hub-seo-title { font-family: 'Plus Jakarta Sans', sans-serif !important; }
html[data-game-page] .hub-seo-title { font-family: 'Lilita One', cursive, sans-serif !important; }
.hub-heading { margin-top: 32px !important; font-size: 1.5rem !important; }
.game-card-img-wrap { border-radius: 20px !important; box-shadow: none !important; }
.game-card-img-wrap, .game-card-no-img { border-color: var(--tpz-border) !important; }

/* Notifications retain controls and actions, using reference list separators. */
.tpzn-inner { max-width: 800px !important; }
.tpzn-page { padding-top: 32px !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.tpzn-page-title { font-size: clamp(2rem, 5.5vw, 3.2rem) !important; font-weight: 800 !important; }
.tpzn-item { border-radius: 0 !important; border-bottom: 1px solid var(--tpz-border) !important; box-shadow: none !important; }
.tpzn-item--unread { background: var(--tpz-unread-bg) !important; }
.tpzn-tabs { border-color: var(--tpz-border) !important; background: transparent !important; }
.tpzn-tab { border-radius: 999px !important; }

/* Legal / contact text blocks */
.tp-legal-page, .tp-privacy-page { width: min(1120px, calc(100% - 48px)); margin: 0 auto; padding: 56px 0 88px; }
.tp-legal-page h1, .tp-privacy-page h1 { max-width: 12em; color: var(--tpz-text); font-size: clamp(2.4rem, 7vw, 4.4rem); font-weight: 800; line-height: 1; }
.tp-legal-page h2, .tp-privacy-page h2 { margin-top: 32px; color: var(--tpz-text); font-size: 1.25rem; }
.tp-legal-page p, .tp-privacy-page p, .tp-legal-page li, .tp-privacy-page li { color: var(--tpz-muted); }

@media (max-width: 640px) {
    .tp-app-body .tp-seo-page { width: calc(100% - 40px); padding: 34px 0 64px; }
    .tp-app-body .tp-seo-page > h1, .tpctx-shell .tpctx-h1, .tpfaq-shell .tpfaq-h1 { font-size: 2.6rem; }
    .tpctx-shell .tpctx-hero, .tpfaq-shell .tpfaq-hero { padding: 34px 20px 24px; }
    .tpctx-shell .tpctx-wrap { padding: 0 20px 64px; }
    .tpfaq-shell .tpfaq-wrap { width: calc(100% - 40px); }
    .tp-legal-page, .tp-privacy-page { width: calc(100% - 40px); padding: 34px 0 64px; }
}
