/* Shared page-prose styles for the marketing site: homepage + product/for pages.
   Source of truth lives here (referenced as /assets/pp.css); the generators in
   landing/pages/_src and landing/articles/_src link it rather than inlining. */

.pp { font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif; color: var(--foreground); line-height: 1.7; }
.pp h1, .pp h2 { font-family: Fraunces, ui-serif, Georgia, serif; line-height: 1.15; }
.pp h1 { font-size: clamp(2.1rem, 5vw, 3.2rem); font-weight: 700; margin: 0 0 1rem; text-wrap: balance; }
.pp h1 .accent, .pp h2 .accent { color: var(--primary); }
.pp h2 { font-size: 1.7rem; font-weight: 600; margin: 0 0 1rem; }
.pp [id] { scroll-margin-top: 5rem; }
.pp-eyebrow { color: var(--primary); font-weight: 600; text-transform: uppercase; letter-spacing: 0.15em; font-size: 0.85rem; margin: 0 0 0.75rem; }
.pp-hero { padding: 7.5rem 0 3.5rem; text-align: center; }
.pp-hero .sub { color: var(--muted-foreground); font-size: 1.15rem; max-width: 42rem; margin: 0 auto 1.75rem; text-wrap: balance; }
.pp-badge { display: inline-block; border: 1px solid var(--border); background: var(--secondary); color: var(--secondary-foreground); border-radius: 999px; padding: 0.3rem 0.9rem; font-size: 0.8rem; font-weight: 600; margin-bottom: 1.25rem; }
.pp-btn { display: inline-block; background: var(--primary); color: var(--primary-foreground); border-radius: 0.5rem; padding: 0.65rem 1.6rem; font-weight: 600; font-size: 0.95rem; text-decoration: none; transition: opacity 0.15s ease; }
.pp-btn:hover { opacity: 0.9; }
.pp-btn.ghost { background: var(--secondary); color: var(--secondary-foreground); margin-left: 0.6rem; }
.pp-note { color: var(--muted-foreground); font-size: 0.85rem; margin: 1rem 0 0; }
.pp-hero-media { margin: 2.5rem auto 0; max-width: 52rem; border: 1px solid var(--border); border-radius: 1rem; overflow: hidden; box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.15); }
.pp-hero-media img { display: block; width: 100%; height: 340px; object-fit: cover; }
.pp-section { padding: 2.5rem 0; }
.pp-section .lead { color: var(--muted-foreground); max-width: 46rem; margin: 0 0 2rem; }
.pp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1.25rem; }
.pp-card { border: 1px solid var(--border); background: var(--card); border-radius: 1rem; padding: 1.4rem 1.5rem; }
.pp-card h3 { font-weight: 600; font-size: 1.05rem; margin: 0 0 0.5rem; }
.pp-card h3 a { color: inherit; text-decoration: none; }
.pp-card p { color: var(--muted-foreground); font-size: 0.92rem; margin: 0; }
.pp-card .tag { display: inline-block; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary); margin-bottom: 0.5rem; }
.pp-card .more { display: inline-block; margin-top: 0.85rem; color: var(--primary); font-weight: 600; font-size: 0.9rem; text-decoration: none; }
.pp-card .more:hover { text-decoration: underline; }
.pp-card .pp-list { margin-top: 0.75rem; }
.pp-stat { text-align: center; }
.pp-stat .num { font-family: Fraunces, ui-serif, Georgia, serif; font-size: 2.4rem; font-weight: 700; color: var(--primary); line-height: 1.1; margin: 0 0 0.25rem; }
.pp-quote .q { font-style: italic; color: var(--foreground); margin: 0 0 0.9rem; }
.pp-quote .who { font-size: 0.85rem; }
.pp-quote .who strong { color: var(--foreground); display: block; }
.pp-list { list-style: none; padding: 0; margin: 0; }
.pp-list li { position: relative; padding-left: 1.4rem; margin-bottom: 0.6rem; color: var(--muted-foreground); font-size: 0.95rem; }
.pp-list li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.45rem; height: 0.45rem; border-radius: 999px; background: var(--primary); }
.pp-band { background: var(--foreground); color: var(--background); border-radius: 1.25rem; padding: 2.5rem 2rem; text-align: center; margin: 2.5rem 0; }
.pp-band h2 { color: var(--background); }
.pp-band p { color: color-mix(in oklab, var(--background) 65%, transparent); max-width: 40rem; margin: 0 auto 1.5rem; }
.pp-band .fine { font-size: 0.8rem; margin: 1.25rem auto 0; }
.pp-cross { border-top: 1px solid var(--border); padding-top: 2rem; }
.pp-cross a { color: var(--primary); text-decoration: none; font-weight: 600; }
.pp-cross a:hover { text-decoration: underline; }
.breadcrumbs { font-size: 0.85rem; color: var(--muted-foreground); }
.breadcrumbs a { color: var(--muted-foreground); text-decoration: none; }
.breadcrumbs a:hover { color: var(--foreground); }
