/* Private LLM hosting subpages: /private-llm-hosting/for/**, /vs/** and the
 * two index pages. Loaded before design.css (sync-nav.py appends design.css
 * at the end of <head>), so every rule is scoped under main.land-main or
 * article.article to win on specificity. Shared components (tables, FAQ,
 * callouts, CTA band, related links) live in design.css; this file only
 * covers the plh templates: hero, section rhythm, prose sections, the
 * three-up cards, the fact table's row labels and the index lists. */

/* ---- hero ---- */
main.land-main > .page-hero h1 { font-weight:700; letter-spacing:-.04em; line-height:1.06; }
main.land-main > .page-hero .crumb { margin-bottom:20px; }
main.land-main > .page-hero .hero-cta { margin-top:28px; }
main.land-main > .page-hero p.hero-note { font-size:14px; line-height:1.6; margin-top:18px; color:var(--text-dim); }
main.land-main > .page-hero p.hero-note b { color:var(--text); font-weight:600; }

/* ---- section rhythm: hairline bands instead of floating blocks ---- */
main.land-main > section.land-section { margin-top:72px; padding-top:48px; border-top:1px solid var(--border); }
main.land-main > .page-hero + section.land-section { margin-top:40px; padding-top:0; border-top:0; }
main.land-main > section.land-section:has(> .callout:only-child) { margin-top:40px; padding-top:0; border-top:0; }
main.land-main > section.land-section:not([data-related-links]) > h2.land-h2 { font-size:clamp(26px, 2.6vw, 34px); line-height:1.15; letter-spacing:-.03em; font-weight:650; margin-bottom:12px; max-width:30ch; text-wrap:balance; }
main.land-main > section.land-section:not([data-related-links]) > p.land-sub { font-size:15.5px; line-height:1.7; max-width:68ch; color:var(--text-dim); margin-bottom:0; }
main.land-main > section.land-section:not([data-related-links]) > :is(.cards3, .compare-table) { margin-top:28px; }
main.land-main > section.land-section:not([data-related-links]) > p.callout { margin:0; }

/* ---- prose sections (general-industry pages: bare <p> in a section) ---- */
main.land-main > section.land-section:not([data-related-links]) > p:not([class]),
main.land-main > section.land-section:not([data-related-links]) > ul:not([class]),
main.land-main > section.land-section:not([data-related-links]) > ol:not([class]) { max-width:68ch; color:var(--text-dim); font-size:16.5px; line-height:1.75; }
main.land-main > section.land-section:not([data-related-links]) > h2.land-h2 + :is(p, ul, ol):not([class]) { margin-top:16px; }
main.land-main > section.land-section:not([data-related-links]) > :is(p, ul, ol):not([class]) + :is(p, ul, ol):not([class]) { margin-top:16px; }
main.land-main > section.land-section:not([data-related-links]) > :is(p, ul, ol):not([class]) :is(b, strong) { color:var(--text); font-weight:600; }
main.land-main > section.land-section:not([data-related-links]) > :is(ul, ol):not([class]) { padding-left:22px; }
main.land-main > section.land-section:not([data-related-links]) > :is(ul, ol):not([class]) li + li { margin-top:8px; }
main.land-main > section.land-section:not([data-related-links]) > :is(p, ul, ol):not([class]) + .callout { margin-top:28px; }

/* ---- three-up cards: hairline columns, no boxes ---- */
main.land-main .cards3 { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:0; border-top:1px solid var(--border-hi); }
main.land-main .cards3 > .info-card { border:0; border-radius:0; background:none; padding:28px 28px 4px 0; }
main.land-main .cards3 > .info-card + .info-card { border-left:1px solid var(--border); padding-left:28px; }
main.land-main .cards3 > .info-card:last-child { padding-right:0; }
main.land-main .cards3 > .info-card h3 { font-size:18px; line-height:1.35; letter-spacing:-.01em; font-weight:600; margin-bottom:10px; }
main.land-main .cards3 > .info-card p { font-size:14.5px; line-height:1.7; color:var(--text-dim); }
main.land-main .cards3 + .cards3 { margin-top:0; border-top:1px solid var(--border); }

/* ---- fact table (two columns, th scope=row labels) ---- */
main.land-main .compare-table th[scope="row"] { width:32%; padding-right:24px; }

/* ---- index pages (/for/, /vs/): title lists instead of boxed cards ---- */
main.land-main > section.land-section:has(> .guide-grid) { margin-top:56px; padding-top:0; border-top:0; }
main.land-main > section.land-section > .guide-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:0 32px; margin-top:20px; border-top:1px solid var(--border-hi); }
main.land-main > section.land-section > .guide-grid > a.guide-card { display:block; border:0; border-bottom:1px solid var(--border); border-radius:0; background:none; padding:16px 0; transition:none; }
main.land-main > section.land-section > .guide-grid > a.guide-card h3 { font-size:15.5px; line-height:1.45; font-weight:550; margin:0; color:var(--text); }
main.land-main > section.land-section > .guide-grid > a.guide-card:hover { background:none; border-color:var(--border); }
main.land-main > section.land-section > .guide-grid > a.guide-card:hover h3 { color:var(--accent); }

@media (max-width:900px) {
  main.land-main > section.land-section > .guide-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:760px) {
  main.land-main .cards3 { grid-template-columns:1fr; }
  main.land-main .cards3 > .info-card,
  main.land-main .cards3 > .info-card + .info-card { border-left:0; padding:22px 0; border-bottom:1px solid var(--border); }
  main.land-main .cards3 > .info-card:last-child { border-bottom:0; }
}
@media (max-width:680px) {
  main.land-main > section.land-section { margin-top:48px; padding-top:36px; }
  main.land-main > .page-hero + section.land-section,
  main.land-main > section.land-section:has(> .callout:only-child) { margin-top:28px; padding-top:0; }
  main.land-main > section.land-section:not([data-related-links]) > :is(p, ul, ol):not([class]) { font-size:16px; }
  main.land-main .compare-table th[scope="row"] { width:38%; padding-right:16px; }
}
@media (max-width:560px) {
  main.land-main > section.land-section > .guide-grid { grid-template-columns:1fr; }
}
