/* ISO standard pages · one construction for all fourteen standards: the Standing Rail
   (Marlo, 2026-09-09, option A). Paper from the crumb to the last answer, a sticky index
   rail on the inline start, one reading column, and every section printed as a ruled
   register: term on the left, sentence on the right, hairlines and nothing else. The only
   dark surface is the closing plate. Built on styles.css tokens. */

main.p-isostd{ --muted:#5c655f; --deep:#2a3a35; --term:15rem; --rail:13.5rem }

/* ---------- 1 · hero ---------- */
.p-isostd .std-hero{ padding-top:clamp(7.5rem,13vh,9.5rem); padding-bottom:clamp(2.5rem,6vh,4rem) }
.p-isostd .std-crumb{ color:var(--muted); margin-bottom:clamp(1.6rem,4vh,2.6rem) }
.p-isostd .std-crumb a{ color:var(--teal); text-decoration:none }
.p-isostd .std-crumb a:hover{ text-decoration:underline; text-underline-offset:3px }
.p-isostd .std-eyebrow{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
  border-top:1px solid var(--ink); padding-top:.6rem; margin-bottom:1.6rem }
.p-isostd .std-eyebrow-b{ color:var(--muted) }
.p-isostd .std-h1{ font-size:clamp(2.2rem,6.2vw,4.8rem); font-weight:500; letter-spacing:-.03em; line-height:1.03; max-width:19ch }
.p-isostd .std-lede{ margin-top:1.4rem; font-size:clamp(1.02rem,1.7vw,1.35rem); line-height:1.48; max-width:56ch; color:var(--deep) }
.p-isostd .std-sub{ margin-top:clamp(2rem,4vh,2.8rem); color:var(--muted) }
@media (min-width:1024px){
  .p-isostd .std-crumb,
  .p-isostd .std-eyebrow{ max-width:64% }
}

/* ---------- buttons ---------- */
.p-isostd .std-btns{ display:flex; flex-wrap:wrap; gap:.65rem; margin-top:clamp(1.8rem,4vh,2.4rem) }
.p-isostd .std-btn{ display:inline-block; font-family:var(--mono); font-size:.72rem; letter-spacing:.08em;
  text-transform:uppercase; padding:1rem 1.7rem; text-decoration:none; transition:background .3s, color .3s }
.p-isostd .std-solid{ background:var(--teal); color:var(--white) }
.p-isostd .std-solid:hover{ background:var(--teal-deep) }
.p-isostd .std-out{ border:1px solid var(--teal); color:var(--teal) }
.p-isostd .std-out:hover{ background:var(--teal); color:var(--white) }

/* ---------- 2 · the document: rail + one reading column ---------- */
.p-isostd .std-doc{ padding:0 clamp(1rem,3vw,2.5rem) }
.p-isostd .std-doc .std-sec{ padding-inline:0 }
@media (min-width:1024px){
  .p-isostd .std-doc{ display:grid; grid-template-columns:var(--rail) minmax(0,1fr);
    column-gap:clamp(2rem,4.5vw,4.5rem); align-items:start }
}

/* the rail. On desktop it stands off a hairline and a teal mark travels to the section
   being read; under 1024 it is a plain two-column index printed above the document. */
.p-isostd .std-rail{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:0 1.5rem;
  border-top:1px solid var(--ink); border-bottom:1px solid var(--line); padding:.4rem 0;
  margin:0 0 clamp(2.4rem,5vh,3.4rem) }
.p-isostd .std-rail a{ font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); text-decoration:none; padding:.55rem 0; transition:color .35s var(--e-out) }
.p-isostd .std-rail a:hover{ color:var(--teal) }
.p-isostd .std-rail-mark{ display:none }
@media (min-width:1024px){
  .p-isostd .std-rail{ display:block; position:sticky; top:21vh; border:0;
    border-inline-start:1px solid var(--line); padding:clamp(1.5rem,3vh,2.2rem) 0 0; margin:0 }
  .p-isostd .std-rail a{ display:block; padding:.62rem 0 .62rem 1.15rem }
  .p-isostd .std-rail a.on{ color:var(--ink) }
  .p-isostd .std-rail-mark{ display:block; position:absolute; inset-inline-start:-1px; top:0;
    width:1px; height:2.1rem; background:var(--teal); opacity:0;
    transition:transform .55s var(--e-out), opacity .3s }
}
[dir="rtl"] .p-isostd .std-rail a{ letter-spacing:0 }
@media (min-width:1024px){ [dir="rtl"] .p-isostd .std-rail a{ padding:.62rem 1.15rem .62rem 0 } }

/* ---------- section rhythm: one rule, one title, then the register ---------- */
.p-isostd .std-sec{ border-top:1px solid var(--ink); padding-top:clamp(2.6rem,6vh,4rem);
  padding-bottom:clamp(2.6rem,6vh,4rem) }
.p-isostd .std-col .std-sec:first-child{ padding-top:clamp(1.5rem,3vh,2.2rem) }
.p-isostd .std-h2{ font-size:clamp(1.45rem,2.6vw,2.05rem); font-weight:500; letter-spacing:-.022em;
  line-height:1.1; max-width:24ch; margin:0 0 1.5rem }
.p-isostd .std-body{ font-size:clamp(1.02rem,1.5vw,1.15rem); line-height:1.55; max-width:62ch; margin:0 }
.p-isostd .std-kicker{ display:block; margin-top:clamp(1.8rem,4vh,2.6rem); color:var(--muted) }
.p-isostd .std-note{ margin:1.5rem 0 0; font-size:.95rem; line-height:1.6; color:var(--muted); max-width:62ch }
.p-isostd .std-note a{ color:var(--teal); text-decoration:underline; text-underline-offset:3px }

/* ---------- the register: the one component every section is built from ----------
   term in the inline-start column, sentence beside it, a hairline between rows. Two term
   faces only: mono for labels and numerals, sans medium for names. */
.p-isostd .glance,
.p-isostd .rows,
.p-isostd .reqs,
.p-isostd .list2{ margin:0; padding:0; list-style:none; display:block; gap:0; border-top:1px solid var(--line) }
.p-isostd .gcell,
.p-isostd .row,
.p-isostd .reqs li,
.p-isostd .list2 li{ display:grid; grid-template-columns:1fr; gap:.3rem; border-top:0;
  padding:1.05rem 0; border-bottom:1px solid var(--line) }
@media (min-width:760px){
  .p-isostd .gcell,
  .p-isostd .row,
  .p-isostd .reqs li,
  .p-isostd .list2 li{ grid-template-columns:var(--term) minmax(0,62ch); gap:1.8rem; align-items:baseline }
}
.p-isostd .glance .gcell:last-child,
.p-isostd .rows .row:last-child,
.p-isostd .reqs li:last-child,
.p-isostd .list2 li:last-child,
.p-isostd .relgrid .relcard:last-child,
.p-isostd .std-table tbody tr:last-child td{ border-bottom:0 }
.p-isostd .gcell dt{ font-family:var(--mono); font-size:.66rem; letter-spacing:.09em; text-transform:uppercase; color:var(--teal) }
.p-isostd .gcell dd{ margin:0 }
.p-isostd .row b{ font-weight:500; color:var(--teal); line-height:1.35 }
.p-isostd .gcell dd,
.p-isostd .row span,
.p-isostd .reqs li span,
.p-isostd .list2 li{ font-size:1rem; line-height:1.55 }
[dir="rtl"] .p-isostd .gcell dt{ letter-spacing:0 }

/* the clauses and the price drivers carry their own numeral in the term column */
.p-isostd .reqs{ counter-reset:r }
.p-isostd .list2{ counter-reset:c }
.p-isostd .reqs li{ counter-increment:r }
.p-isostd .list2 li{ counter-increment:c }
.p-isostd .reqs li::before{ content:counter(r,decimal-leading-zero) }
.p-isostd .list2 li::before{ content:counter(c,decimal-leading-zero) }
.p-isostd .reqs li::before,
.p-isostd .list2 li::before{ font-family:var(--mono); font-size:.68rem; letter-spacing:.09em; color:var(--teal) }
.p-isostd .list2 li{ font-size:1rem }
@media (max-width:759px){
  .p-isostd .reqs li::before,
  .p-isostd .list2 li::before{ margin-bottom:.15rem }
}

/* ---------- the buyers table, printed in the same register ---------- */
.p-isostd .std-tw{ border-top:1px solid var(--line) }
.p-isostd .std-table{ width:100%; border-collapse:collapse; text-align:left }
.p-isostd .std-table th{ font-family:var(--mono); font-size:.62rem; letter-spacing:.09em; text-transform:uppercase;
  font-weight:400; color:var(--muted); padding:.7rem 0; border-bottom:1px solid var(--line) }
.p-isostd .std-table th:first-child{ width:var(--term); padding-inline-end:1.8rem }
.p-isostd .std-table td{ padding:1.05rem 0; border-bottom:1px solid var(--line); vertical-align:baseline;
  font-size:1rem; line-height:1.55; max-width:62ch }
.p-isostd .std-table td:first-child{ font-weight:500; color:var(--teal); width:var(--term); padding-inline-end:1.8rem }
[dir="rtl"] .p-isostd .std-table{ text-align:right }
[dir="rtl"] .p-isostd .std-table th{ letter-spacing:0 }
@media (max-width:759px){
  .p-isostd .std-table, .p-isostd .std-table tbody, .p-isostd .std-table tr, .p-isostd .std-table td{ display:block; width:auto }
  .p-isostd .std-table thead{ display:none }
  .p-isostd .std-table tr{ border-bottom:1px solid var(--line); padding:1.05rem 0 }
  .p-isostd .std-table td{ border:0; padding:0 0 .3rem; width:auto }
  .p-isostd .std-table td:first-child{ width:auto; padding-inline-end:0 }
}

/* ---------- the questions ---------- */
.p-isostd .std-faq{ border-bottom:0 }
.p-isostd .std-faq .acc-head{ font-size:clamp(1rem,1.6vw,1.18rem); font-weight:500; line-height:1.4;
  padding:1.15rem 0; align-items:flex-start; max-width:62ch }
.p-isostd .std-faq .acc-plus{ font-size:1rem; padding-top:.2rem; color:var(--teal) }
.p-isostd .std-faq .acc-body p{ font-family:var(--sans); font-size:1rem; letter-spacing:0; text-transform:none;
  line-height:1.6; max-width:62ch; padding-bottom:1.4rem }

/* ---------- the related standards, as register rows ---------- */
.p-isostd .relgrid{ border-top:1px solid var(--line) }
.p-isostd .relcard{ display:grid; grid-template-columns:1fr; gap:.25rem; padding:1.05rem 0;
  border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink) }
@media (min-width:760px){
  .p-isostd .relcard{ grid-template-columns:var(--term) minmax(0,1fr) auto; gap:1.8rem; align-items:baseline }
}
.p-isostd .rc-code{ font-weight:500; color:var(--teal); line-height:1.35 }
.p-isostd .rc-name{ font-size:1rem; line-height:1.55 }
.p-isostd .rc-go{ font-family:var(--mono); font-size:.64rem; letter-spacing:.09em; text-transform:uppercase;
  color:var(--muted); transition:color .3s }
.p-isostd .relcard:hover .rc-go{ color:var(--teal) }
.p-isostd .relcard:hover .rc-name{ color:var(--deep) }
[dir="rtl"] .p-isostd .rc-go{ letter-spacing:0 }

/* ---------- the closing plate, the page's one dark surface ---------- */
.p-isostd .std-close{ background:var(--teal-deep); color:var(--paper); margin-top:clamp(3rem,7vh,5rem);
  padding:clamp(3.5rem,9vh,6.5rem) clamp(1rem,3vw,2.5rem) }
.p-isostd .std-close-in{ max-width:58rem }
.p-isostd .std-close-ref{ display:block; color:color-mix(in srgb, var(--paper) 62%, transparent); margin-bottom:1.3rem }
.p-isostd .std-close-h{ font-size:clamp(1.5rem,3.4vw,2.8rem); font-weight:500; letter-spacing:-.022em;
  line-height:1.14; max-width:26ch; margin:0 }
.p-isostd .std-close-btn{ background:var(--paper); color:var(--teal-deep) }
.p-isostd .std-close-btn:hover{ background:var(--white) }
.p-isostd .std-close-out{ border:1px solid color-mix(in srgb, var(--paper) 45%, transparent); color:var(--paper) }
.p-isostd .std-close-out:hover{ background:var(--paper); color:var(--teal-deep) }

/* Service details now lead directly into their content, without a page index. */
.p-isostd .std-doc.std-doc--direct{display:block;max-width:1200px;margin-inline:auto}
