/* draft14, 13 Oct 2026: three pages. Home keeps its full frames; Partners and Developers open on a compact
   heading and run as a reading page (body.compact). New sections: the home example (#check), the taller open
   verifier band, the partners fit, shape, questions and people blocks, the developers "What a result means".
   Loaded after frame12.css and before mobile.css on every page. */

/* ---- compact inner pages: the heading is a heading, sections take their own height ---- */
@media (min-width:900px) {
  body.compact main .page-heading:not(section section) { height:auto; min-height:0; padding-block:clamp(56px,8vh,96px) clamp(28px,4vh,48px); }
  body.compact main .page-heading > .text-link { display:none; }
  body.compact main .page-heading .page-wheel { display:none; }
  body.compact main .page-heading .lead { margin-top:20px; }
  body.compact main .page-heading .page-note { margin:18px 0 0; max-width:60ch; font:400 var(--fs-body)/1.5 Plex,sans-serif; color:var(--ink); }
  body.compact main section:not(section section):not(.m-only):not(#film):not(#platform):not(#finder):not(#open):not(.contact-section):not(.hero):not(.page-heading):not(.ch-section) {
    height:auto; min-height:0; padding-block:clamp(48px,7vh,80px); }
  body.compact main .frame, body.compact main .dv-frame, body.compact main .t-frame, body.compact main .faq-sections { min-height:0; }
  body.compact main #finder:not(section section) { min-height:0; padding-block:clamp(48px,7vh,80px); }
  body.compact main section:not(section section):is(main > :last-child,.contact-section):not(.page-heading):not(.m-only):not(#film):not(#platform):not(.hero):not(.ch-section) { min-height:0; padding-block:clamp(56px,8vh,88px); }
  body.compact main .dv-frame { border-top:0; }
  body.compact main .p-days .partners-figure { margin-top:36px; }
}

/* ---- shared ---- */
.section-title { margin:0; max-width:24ch; font:400 var(--fs-h2)/1.1 Plex,sans-serif; letter-spacing:-.025em; color:var(--ink); }
.row-list { list-style:none; margin:28px 0 0; padding:0; border-top:1px solid var(--ink); }
.row-list > li { display:grid; grid-template-columns:minmax(0,15em) minmax(0,1fr); gap:8px 40px; padding:18px 0; border-bottom:1px solid var(--line); }
.row-list h3 { margin:0; font:500 var(--fs-row)/1.3 Plex,sans-serif; letter-spacing:-.01em; color:var(--ink); }
.row-list p { margin:0; max-width:56ch; font:400 var(--fs-body)/1.5 Plex,sans-serif; color:var(--ink); }
.fine { margin:20px 0 0; max-width:60ch; font:400 14px/1.45 Plex,sans-serif; color:var(--ink); }
.fine a { text-decoration:underline; text-underline-offset:3px; }
@media (max-width:899px) {
  .row-list > li, .p-fit .row-list > li, .dv-means .row-list > li { grid-template-columns:1fr; gap:4px; padding:14px 0; text-align:left; }
  .row-list h3 { font-size:18px !important; }
}

/* ---- home: the hero invite line ---- */
.homepage .hero-invite { margin:18px 0 0; max-width:44ch; font:400 var(--fs-body)/1.5 Plex,sans-serif; color:var(--ink); text-wrap:balance; }
@media (max-width:899px) { .homepage .hero-invite { display:none; } }

/* ---- home: the expense example, the product's control frame moved here ---- */
.control-section { box-sizing:border-box; padding-block:56px 24px; }
.control-section h2 { margin:0; max-width:24ch; font:400 var(--fs-h2)/1.1 Plex,sans-serif; letter-spacing:-.025em; color:var(--ink); }
.control-section .section-lead { max-width:60ch; }
.control-section .pf-example { margin-top:24px; }
.control-section .fine { margin-top:16px; }
@media (min-width:900px) {
  .control-section { display:flex; flex-direction:column; justify-content:center; }
  .control-section .proof-figure.pf-expense { margin-bottom:0; }
  .control-section .pf-claim-card { padding:12px 16px; }
  .control-section .pf-line { min-height:36px; }
  .control-section .pf-results-block { margin-top:20px; }
  .control-section .pf-controls:not([hidden]) { position:absolute; right:0; top:-46px; margin:0; z-index:3; }
  .control-section .pf-example { position:relative; }
}
@media (max-width:899px) {
  .control-section .fine { display:none; }
  #check .pf-example { display:none; }
  main #check.m-screen { padding:56px var(--m-pad) 28px !important; }
  #check .section-lead { margin:12px 0 0 !important; font-weight:500; font-size:18px !important; line-height:1.35; color:var(--m-ink); text-align:center; text-wrap:balance; }
  @media (max-height:700px) { main #check.m-screen { padding:40px var(--m-pad) 24px !important; } }
}

/* ---- home: the open verifier band carries two lines now, so it is half a screen ---- */
@media (min-width:900px) {
  main #open:not(section section) { min-height:50svh; }
  #open .ov-status { margin-top:14px; }
}
@media (max-width:899px) { #open .ov-status { display:none; } }

/* ---- partners ---- */
.p-fit .row-list > li { grid-template-columns:minmax(0,17em) minmax(0,1fr); }
.p-shape p { margin:16px 0 0; max-width:60ch; font:400 var(--fs-body)/1.5 Plex,sans-serif; color:var(--ink); }
.p-shape .row-list { margin-top:24px; }
.p-q .faq-list { max-width:880px; margin-top:24px; border-top:1px solid var(--ink); }
.p-q .faq-q { display:block; padding:0; border-top:0; border-bottom:1px solid var(--line); }
.p-q .faq-q > summary { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:64px; padding:0; box-sizing:border-box; cursor:pointer; list-style:none; }
.p-q .faq-q > summary::-webkit-details-marker { display:none; }
.p-q .faq-q .page-row-title { font-size:var(--fs-row); line-height:1.2; }
.p-q .faq-q .page-disclosure-mark { flex:none; margin:0; width:24px; text-align:right; }
.p-q .faq-q > .page-row-copy { margin:0; padding:0 48px 24px 0; max-width:none; font-size:var(--fs-body); line-height:1.5; }
.p-people .team-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:28px; }
.p-people .team-person { padding-top:20px; border-top:1px solid var(--ink); }
.p-people .team-person > img { display:block; width:120px; height:120px; object-fit:cover; }
.p-people .team-person-name { margin:16px 0 0; font:400 var(--fs-row)/1.2 Plex,sans-serif; letter-spacing:-.02em; color:var(--ink); }
.p-people .team-person-name a { color:inherit; text-decoration:none; }
.p-people .team-person-name a:hover { text-decoration:underline; text-underline-offset:.18em; }
.p-people .team-person-name .t-out { display:inline-block; margin-left:.35em; font-size:14px; vertical-align:.2em; }
.p-people .team-role { margin:4px 0 0; font:400 var(--fs-body)/1.4 Plex,sans-serif; color:var(--ink); }
.p-people .team-person-proof { margin:10px 0 0; max-width:30ch; font:400 var(--fs-body)/1.45 Plex,sans-serif; color:var(--ink); }
.p-roster { margin-top:40px; display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.p-roster h3 { margin:0; font:500 var(--fs-row)/1.3 Plex,sans-serif; color:var(--ink); }
.p-roster ul { list-style:none; margin:14px 0 0; padding:0; border-top:1px solid var(--ink); }
.p-roster li { display:grid; grid-template-columns:minmax(0,15em) minmax(0,1fr); gap:0 24px; padding:10px 0; border-bottom:1px solid var(--line); font:400 var(--fs-body)/1.4 Plex,sans-serif; color:var(--ink); }
.p-roster li a { color:inherit; text-decoration:none; }
.p-roster li a:hover { text-decoration:underline; text-underline-offset:3px; }
.p-roster li span { color:var(--ink); }
@media (max-width:1099px) and (min-width:900px) { .p-roster { grid-template-columns:1fr; } }
@media (max-width:899px) {
  .p-people .team-list { grid-template-columns:1fr; gap:0; border-top:2px solid var(--m-ink); margin-top:24px; text-align:left; }
  .p-people .team-person { display:grid; grid-template-columns:96px minmax(0,1fr); column-gap:16px; padding:18px 0; border-top:0; border-bottom:1px solid var(--line); }
  .p-people .team-person > img { grid-row:1 / span 3; width:96px; height:96px; }
  .p-people .team-person-name { grid-column:2; margin:0; font-weight:600; font-size:20px; }
  .p-people .team-role { grid-column:2; }
  .p-people .team-person-proof { grid-column:2; max-width:none; }
  .p-roster { grid-template-columns:1fr; gap:28px; margin-top:28px; text-align:left; }
  .p-roster li { grid-template-columns:1fr; padding:9px 0; }
  .p-q .faq-list { margin-top:24px; border-top:2px solid var(--m-ink); text-align:left; }
  .p-q .faq-q .page-row-title { font-weight:600; font-size:17px; }
  .p-q .faq-q > summary { min-height:56px; padding:10px 0; }
  .p-q .faq-q > .page-row-copy { padding:0 0 20px; }
  main .p-fit.m-screen, main .p-shape.m-screen, main .p-q.m-screen, main .p-people.m-screen { min-height:0; padding:40px var(--m-pad) !important; }
  main .p-finder .finder-intro { text-align:center; }
}

/* the finder on Partners: a part frame on desktop, the home rules carried over */
@media (min-width:900px) {
  main #finder .finder-intro { margin-top:20px; max-width:60ch; }
  main #finder > .finder-form { margin-top:24px; }
  main #finder > .finder-status:empty { min-height:0; margin:0; }
}

/* ---- developers: what a result means ---- */
.dv-means .row-list { max-width:980px; }
.dv-means .row-list > li { grid-template-columns:minmax(0,11em) minmax(0,1fr); }
.dv-means .row-list h3 b { font-family:PlexM,Plex,sans-serif; font-weight:600; }
.dv-means .dv-ok h3 b { color:#17834f; } .dv-means .dv-reject h3 b { color:#c22a39; } .dv-means .dv-error h3 b { color:#3f5874; }
.dv-means .fine { margin-top:24px; }
.dv-status { margin:24px 0 0; max-width:62ch; padding:16px 20px; border-left:2px solid var(--ink); background:var(--wash); font:400 var(--fs-body)/1.5 Plex,sans-serif; color:var(--ink); }
.dv-status b { font-family:PlexM,Plex,sans-serif; font-weight:600; }
@media (max-width:899px) { .dv-status { text-align:left; } }

/* ---- regulations, kept as a reference page off the main journey ---- */
.page-note { margin:18px 0 0; max-width:60ch; font:400 var(--fs-body)/1.5 Plex,sans-serif; color:var(--ink); }

/* phones: every row list stacks, stated last so it beats the page-level column rules above */
@media (max-width:899px) {
  .row-list > li, .p-fit .row-list > li, .dv-means .row-list > li { grid-template-columns:1fr !important; gap:4px; padding:14px 0; text-align:left; }
}

/* ---- footer: five links in two columns (Jared, 13 Oct: nothing in the footer unless legal or very useful) ---- */
.site-footer-nav.site-footer-nav-2 { grid-template-columns:repeat(2,minmax(0,220px)); }
.p-team-link { margin:28px 0 0; }
@media (max-width:899px) { .p-team-link { text-align:center; } }

/* short desktop windows: the result-means rows fit under 768px */
@media (min-width:900px) and (max-height:820px) {
  body.compact main .dv-means { padding-block:36px; }
  .dv-means .row-list { margin-top:20px; }
  .dv-means .row-list > li { padding:11px 0; }
  .dv-status { margin-top:16px; padding:10px 16px; }
}

/* partners heading: the next step on the first screen (Gemini review, 13 Oct) */
body.compact main .page-heading .developer-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 40px; margin-top:28px; }
@media (max-width:899px) { main .page-heading .developer-actions { display:flex; flex-direction:column; align-items:center; gap:14px; width:100%; margin-top:24px; } main .page-heading .developer-actions .button { display:flex; width:100%; box-sizing:border-box; min-height:60px; justify-content:center; } main .page-heading .developer-actions .text-link { display:none; } }

/* frame 3 (Jared, 13 Oct): fill the frame, air above the title, less crowded. Tall windows get the roomier figure. */
@media (min-width:900px) and (min-height:860px) {
  .control-section { padding-block:72px 32px; }
  .control-section .pf-example { margin-top:32px; }
  .control-section .pf-expense .pf-top { column-gap:80px; }
  .control-section .pf-claim-card { padding:16px 20px; }
  .control-section .pf-line { min-height:44px; }
  .control-section .pf-groups { gap:14px; }
  .control-section .pf-results-block { margin-top:36px; }
  .control-section .fine { margin-top:22px; }
}
@media (min-width:900px) and (max-height:859px) {
  .control-section { padding-block:40px 20px; }
  .control-section .pf-example { margin-top:16px; }
}

@media (min-width:900px) and (max-height:800px) {
  .control-section { padding-block:36px 16px; }
  .control-section .pf-claim-card { padding:10px 16px; }
  .control-section .pf-line { min-height:34px; }
  .control-section .pf-results-block { margin-top:14px; }
  .control-section .pf-result { min-height:80px; }
  .control-section .fine { margin-top:12px; }
}

/* frame 3, second pass (Jared, 13 Oct): the title sits a clear band below the top edge; the figure takes what is left */
@media (min-width:900px) {
  .control-section { justify-content:flex-start; padding-block:88px 16px; }
  .control-section .pf-example { margin-top:24px; }
  .control-section .pf-expense .pf-top { column-gap:72px; }
  .control-section .pf-claim-card { padding:14px 18px; }
  .control-section .pf-line { min-height:40px; }
  .control-section .pf-groups { gap:12px; }
  .control-section .pf-results-block { margin-top:24px; }
  .control-section .pf-result { min-height:84px; }
  .control-section .fine { margin-top:14px; }
}
@media (min-width:900px) and (max-height:800px) {
  .control-section { padding-block:48px 12px; }
  .control-section .pf-example { margin-top:14px; }
  .control-section .pf-claim-card { padding:10px 16px; }
  .control-section .pf-line { min-height:34px; }
  .control-section .pf-groups { gap:8px; }
  .control-section .pf-results-block { margin-top:12px; }
  .control-section .pf-result { min-height:72px; }
  .control-section .fine { margin-top:8px; }
}

/* the padding must out-rank frame12's :not() chain, so the chain is repeated here */
@media (min-width:900px) {
  main section#check.control-section:not(section section):not(.m-only):not(#film):not(#platform):not(#finder):not(#open):not(.contact-section):not(.hero):not(.page-heading):not(.ch-section) { padding-block:88px 16px; }
}
@media (min-width:900px) and (max-height:800px) {
  main section#check.control-section:not(section section):not(.m-only):not(#film):not(#platform):not(#finder):not(#open):not(.contact-section):not(.hero):not(.page-heading):not(.ch-section) { padding-block:44px 10px; }
  .control-section .pf-line { min-height:32px; }
  .control-section .pf-groups { gap:6px; }
  .control-section .pf-result { min-height:68px; }
  .control-section .pf-results-block { margin-top:10px; }
}
