/* styles/page.css
 *
 * Long-form layout for pages that scroll, built on the tokens and components
 * in yuisho.css. It adds spacing and grids only. Colour, type scale, the
 * disclosure rows and the buttons stay where they are defined once.
 */

html:not(:has(.deck)){height:auto;overflow:visible}
body.page{background:var(--paper);height:auto;overflow:visible}
.page-top{max-width:720px;margin:0 auto;padding:22px 24px 0}
.page-main{max-width:720px;margin:0 auto;padding:0 24px 72px}
.page-main > section{padding:54px 0;border-top:1px solid var(--line-soft)}
.page-main > section:first-of-type{border-top:0;padding-top:34px}

.lede h1{margin-bottom:18px}
.page-main h2{font-family:var(--serif);font-weight:400;letter-spacing:.015em;
  font-size:clamp(21px,5vw,27px);line-height:1.55;margin:0 0 16px}
.page-main h3{font-family:var(--serif);font-weight:400;font-size:17px;
  line-height:1.6;margin:0 0 6px}
.page-main p{margin:0 0 14px;font-size:15.5px}
.page-main .lead{color:var(--soft)}

/* Three entrances to one record, not three products. */
.life-door-grid{display:grid;gap:14px;margin-top:26px}
@media (min-width:680px){.life-door-grid{grid-template-columns:repeat(3,1fr)}}
.life-door{display:block;padding:22px 20px 20px;border:1px solid var(--line);
  border-radius:3px;text-decoration:none;color:inherit;background:var(--kinari);
  transition:border-color .25s var(--ease),transform .25s var(--ease)}
.life-door:hover{border-color:var(--seal);transform:translateY(-2px)}
.life-door:focus-visible{outline:2px solid var(--seal);outline-offset:2px}
.life-door-stage{color:var(--faint);font-size:11.5px;letter-spacing:.12em}
.life-door-no{float:right;color:var(--faint);font-size:11.5px;letter-spacing:.12em}
.life-door h3{margin:12px 0 6px}
.life-door p{color:var(--soft);font-size:14px;margin-bottom:12px}
.life-door-link{color:var(--seal);font-size:13.5px}

.steps{list-style:none;margin:24px 0 0;padding:0;border-top:1px solid var(--line)}
.steps li{display:grid;grid-template-columns:2.6rem 1fr;column-gap:16px;
  padding:20px 2px;border-bottom:1px solid var(--line)}
.steps li > *:not(.step-no){grid-column:2}
.step-no{grid-column:1;grid-row:1 / span 3;color:var(--faint);font-size:11.5px;
  letter-spacing:.12em;padding-top:5px}
.steps p{color:var(--soft);font-size:14.5px;margin:0}

/* The same disclosure component the deck uses. */
.faq-list{border-top:1px solid var(--line);margin-top:24px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;padding:18px 2px;font-size:15.5px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"";float:right;width:11px;height:11px;margin-top:9px;
  background:
    linear-gradient(var(--faint),var(--faint)) center/11px 1px no-repeat,
    linear-gradient(var(--faint),var(--faint)) center/1px 11px no-repeat}
.faq-list details[open] summary::after{background:
  linear-gradient(var(--faint),var(--faint)) center/11px 1px no-repeat}
.faq-list summary:focus-visible{outline:2px solid var(--seal);outline-offset:2px;border-radius:4px}
.faq-list details p{color:var(--soft);font-size:14.5px;padding:0 2px 20px}

.form{margin-top:28px}
.form label{display:block;margin:18px 0 6px;font-size:13.5px;color:var(--soft)}
.form input[type=text],.form input:not([type]),.form input[type=email],.form textarea{
  width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:3px;
  background:var(--paper);font:inherit;font-size:15.5px;color:var(--sumi)}
.form input:focus-visible,.form textarea:focus-visible{outline:2px solid var(--seal);outline-offset:1px}
.intent-field{border:0;margin:0;padding:0}
.intent-field legend{padding:0;font-size:13.5px;color:var(--soft)}
.intent-options{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.intent-options label{display:inline-flex;align-items:center;gap:7px;margin:0;
  padding:9px 14px;border:1px solid var(--line);border-radius:999px;cursor:pointer}
.intent-options input{accent-color:var(--seal)}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:22px}
.check input{margin-top:5px;accent-color:var(--seal)}
.fineprint{font-size:12.5px;margin-top:8px}
.fineprint a,.page-main .lede a{color:var(--seal)}
.form .btn{margin-top:24px}
.form-msg{margin-top:14px;font-size:14px;color:var(--soft)}

.site-foot{border-top:1px solid var(--line);background:var(--kinari)}
.foot-grid{max-width:720px;margin:0 auto;padding:36px 24px 44px}
.foot-lockup img{height:30px;width:auto}
.foot-line{color:var(--soft);font-size:13.5px;margin:12px 0 20px}
.foot-nav{display:flex;flex-wrap:wrap;gap:16px}
.foot-nav a{color:var(--soft);font-size:13px;text-decoration:none;
  border-bottom:1px solid rgba(0,0,0,.12);padding-bottom:1px}
.foot-nav a:hover{color:var(--sumi)}
.foot-rights{margin-top:24px;color:var(--faint);font-size:12px}

/* Archive and Edition: the two words the rest of the product uses. */
.archive-continuity{margin-top:44px;padding-top:34px;border-top:1px solid var(--line-soft)}
.archive-distinction{margin:22px 0 0}
.archive-distinction > div{padding:18px 0;border-top:1px solid var(--line)}
.archive-distinction dt{font-family:var(--serif);font-size:15.5px;margin-bottom:6px}
.archive-distinction dd{margin:0;color:var(--soft);font-size:14.5px}
.archive-continuity-note{margin-top:20px}
.privacy-details{margin-top:38px;border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)}
.privacy-details summary{list-style:none;cursor:pointer;padding:18px 2px;font-size:15px}
.privacy-details summary::-webkit-details-marker{display:none}
.privacy-details summary:focus-visible{outline:2px solid var(--seal);outline-offset:2px;border-radius:4px}
.trust-grid p{color:var(--soft);font-size:14.5px;padding:0 2px 6px;margin:0 0 8px}

/* The worked example, in full. The deck shows the short version. */
.proof-media{margin:0 0 26px}
.proof-media img{width:100%;height:clamp(180px,34vh,300px);object-fit:cover;
  border-radius:3px;display:block}
.proof-media figcaption{margin-top:9px;color:var(--faint);font-size:12px}
.proof-beats{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.proof-beats li{display:grid;grid-template-columns:2.6rem 1fr;column-gap:16px;
  padding:20px 2px;border-bottom:1px solid var(--line)}
.proof-beats li > *:not(.proof-no){grid-column:2}
.proof-no{grid-column:1;grid-row:1 / span 3;color:var(--faint);font-size:11.5px;
  letter-spacing:.12em;padding-top:5px}
.proof-beats h3{margin:0 0 5px}
.proof-beats p{margin:0;color:var(--soft);font-size:14.5px}
.proof-details{margin-top:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.proof-details summary{list-style:none;cursor:pointer;padding:18px 2px;font-size:15px}
.proof-details summary::-webkit-details-marker{display:none}
.proof-details summary:focus-visible{outline:2px solid var(--seal);outline-offset:2px;border-radius:4px}
.proof-lead{color:var(--faint);font-size:13px;padding:0 2px 10px}
.lede-link a{color:var(--seal);font-size:14px;text-decoration:none;
  border-bottom:1px solid rgba(116,44,50,.3);padding-bottom:1px}

/* Legal pages: long reading, no decoration. Same chrome, same tokens. */
.legal-page .page-hero{padding:34px 0 10px}
.legal-page .page-hero h1{font-size:clamp(1.8rem,5vw,2.55rem);line-height:1.4;max-width:12em}
.legal-page .hero-subtitle{color:var(--soft);margin-top:10px}
.legal-page .wrap,.legal-page .wrap > div{max-width:none!important;margin:0!important}
.legal-page .card-grid{display:grid;gap:0;border-top:1px solid var(--line)}
.legal-page .soft-card{padding:22px 0;border-bottom:1px solid var(--line)}
.legal-page .soft-card h3{font-family:var(--serif);font-weight:400;font-size:16.5px;margin:0 0 8px}
.legal-page .soft-card p{color:var(--soft);font-size:14.5px;margin:0 0 8px}
.legal-page .soft-card a,.legal-page .section-subtitle a{color:var(--seal)}
.legal-page .section-subtitle{color:var(--soft);font-size:15px}
.legal-page .page-main > section{padding:34px 0}
.legal-page table{width:100%;border-collapse:collapse;font-size:14.5px}
.legal-page th,.legal-page td{text-align:left;vertical-align:top;padding:14px 0;
  border-bottom:1px solid var(--line);color:var(--soft)}
.legal-page th{color:var(--sumi);font-weight:400;width:34%}
