/* ==========================================================================================
   Trust pages: about, contact, faq, refunds, verify, privacy, terms, consultation, samples index.
   public/css/site/trust.css. Loads after site/tokens.css and site/components.css (never the old Oasis css).
   Logical properties only (RTL safe). Nothing under 13px; body copy 18px, labels 16px.
   ========================================================================================== */

/* ---------- reading column: every page keeps ONE left edge (start), text at a readable measure ---------- */
.wrap.prose{max-width:var(--maxw)}
.wrap.prose>*{max-width:44rem}
.section.tight+.section:not(.paper-band){padding-block-start:24px}
.prose p,.prose li{font-size:1.125rem}
.stack>*+*{margin-block-start:18px}
.cluster{display:flex;flex-wrap:wrap;gap:12px}
.gap-top{margin-block-start:22px}
.cluster+p{margin-block-start:18px}
.big{font-family:var(--serif);font-size:1.5rem;line-height:1.35;color:var(--heading);overflow-wrap:anywhere;margin:0}
@media (max-width:420px){.big{font-size:1.3rem}}

/* ---------- fact lists: address, phone, email, hours (long values must never widen the page) ---------- */
.factlist{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 22px;margin:0}
.factlist dt{font-weight:600;color:var(--text-2)}
.factlist dd{margin:0;min-width:0;overflow-wrap:anywhere}
@media (max-width:560px){.factlist{grid-template-columns:minmax(0,1fr);gap:2px}.factlist dd{margin-block-end:12px}}

/* ---------- about ---------- */
.promises{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.promises .card h3{margin-block-end:8px}
.promises .card p{margin:0}
.promises .card p+p{margin-block-start:10px}
@media (max-width:1000px){.promises{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.promises{grid-template-columns:minmax(0,1fr)}}
.find-us{align-items:start}
.find-us .card h2{font-size:1.6rem}
.about-steps .steps p+p{margin-block-start:10px}

/* ---------- contact and verify: fact cards ---------- */
.fact-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
@media (max-width:860px){.fact-cards{grid-template-columns:minmax(0,1fr)}}
.fact-cards .card h3,.fact-cards .card h2{margin-block-end:8px}
.fact-cards .card p{margin:0}
.fact-cards .card p+p,.fact-cards .card p+.cluster{margin-block-start:10px}
.fact-cards .card .cluster{margin-block-start:6px}
.card.stack>*+*{margin-block-start:14px}

/* verify: the lists of "never" get a warm cross, the payment ticks keep the brass ring */
.tick.no li:before{border-color:var(--warn);background:
  linear-gradient(45deg,transparent 40%,var(--warn) 40% 60%,transparent 60%),
  linear-gradient(-45deg,transparent 40%,var(--warn) 40% 60%,transparent 60%)}
.verify-note{max-width:44rem}
.stack-top{margin-block-start:22px}
.gap-h{margin-block-start:28px}

/* ---------- FAQ ---------- */
.faq-group h2{margin-block-start:34px}
.faq-group:first-child h2{margin-block-start:0}
.faq details>div p:last-child{margin-block-end:0}
.faq details>div p+p{margin-block-start:8px}

/* ---------- refunds: price tables, one block per door ---------- */
.rules{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;font-size:1rem}
.rules th,.rules td{text-align:start;padding:12px 16px;border-block-end:1px solid var(--border);vertical-align:top}
.rules tbody tr:last-child td{border-block-end:0}
.rules th{background:var(--surface-2);font-weight:600}
.rules th:first-child,.rules td:first-child{width:58%}
.rules td b{font-weight:700;white-space:nowrap}
.tbl-wrap{overflow-x:auto;max-width:100%}
.doorblock{margin-block-end:38px}
.doorblock h3{display:flex;align-items:center;gap:12px;margin-block-end:12px}
.doorblock h3:before{content:"";flex:none;width:6px;height:1.1em;border-radius:3px;background:var(--door,var(--brass))}
.doorblock h3 a,.sample-head h2 a{text-decoration:none;color:inherit}
.doorblock h3 a:after,.sample-head h2 a:after{content:" \2192";font-weight:400;color:var(--text-2)}
[dir=rtl] .doorblock h3 a:after,[dir=rtl] .sample-head h2 a:after{content:" \2190"}
.doorblock h3 a:hover,.sample-head h2 a:hover{text-decoration:underline}
.doorblock .nr{margin:12px 0 0;color:var(--text-2);font-size:1rem}
.doorblock .nr b{color:var(--text)}
@media (max-width:600px){
  .rules thead{display:none}
  .rules,.rules tbody,.rules tr,.rules td{display:block;width:100%}
  .rules th:first-child,.rules td:first-child{width:100%}
  .rules td{border:0;padding:4px 16px}
  .rules tr{padding:10px 0;border-block-end:1px solid var(--border)}
  .rules tbody tr:last-child{border-block-end:0}
  .rules td:first-child{font-weight:700;font-size:1.05rem}
}

/* ---------- legal pages (privacy, terms): the real text in a readable measure ---------- */
.legal-page{max-width:46rem}
.legal-page h1{margin-block-end:.2em}
main h2.consult-done{font-size:var(--fs-h1);margin-block-end:.4em} /* the thank-you heading is an h2 (the page keeps one h1) drawn at the h1 size */
.legal-page h2{font-size:1.5rem;margin-block:1.8em .5em;scroll-margin-block-start:96px}
.legal-page h3{font-size:1.2rem;margin-block:1.3em .4em}
.legal-page p,.legal-page li{font-size:1.0625rem}
.legal-page ul,.legal-page ol{padding-inline-start:1.3em}
.legal-page li{margin-block-end:.45em}
.legal-page code{font:600 .95em ui-monospace,Consolas,monospace;background:var(--surface-2);padding:1px 6px;border-radius:6px}
.legal-updated{color:var(--text-2);margin-block-end:1.2em}
.legal-summary,.legal-toc{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);padding:20px 24px;margin-block:22px}
.legal-summary{border-inline-start:4px solid var(--brass)}
.legal-summary p,.legal-toc p{margin:0 0 8px}
.legal-summary ul{margin:0;padding-inline-start:1.2em}
.legal-toc ol{margin:0;padding-inline-start:1.5em;columns:2;column-gap:32px}
.legal-toc li{break-inside:avoid;margin-block-end:.3em}
@media (max-width:640px){.legal-toc ol{columns:1}}
.legal-safe{margin-block-start:1.6em;padding:14px 18px;border-radius:14px;background:var(--info-bg);border:1px solid var(--info)}
.legal-safe p{margin:0}

/* ---------- consultation form (ids and classes are read by /js/consultation.js) ---------- */
.consult{max-width:44rem}
.consult .alert{margin-block:22px 0}
.consult .alert span{min-width:0}
.consult .portal-message{border:1px solid var(--warn);background:var(--warn-bg);color:var(--text);border-radius:14px;padding:14px 18px;font-weight:600;margin:20px 0 0}
.consult form{margin-block-start:28px}
.consult .field{margin-block-end:20px}
.consult .field>label,.consult .checkbox-field{font-size:1rem}
.consult .field-hint{font-size:1rem;color:var(--text-2);font-weight:400;margin:6px 0 0}
.consult label .field-hint{display:inline;margin:0}
.consult #goal-count{text-align:right}
[dir=rtl] .consult #goal-count{text-align:left}
.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
@media (max-width:640px){.field-row{grid-template-columns:minmax(0,1fr)}}
.consult .field-error{color:var(--warn);font-size:1rem;font-weight:600;margin:6px 0 0}
.consult .field.has-error input,.consult .field.has-error select,.consult .field.has-error textarea{border-color:var(--warn);border-width:2px}
.consult .checkbox-field-block{margin-block-end:26px}
.consult .checkbox-field{display:flex;align-items:flex-start;gap:12px;font-weight:400;min-height:var(--tap)}
.consult .checkbox-field input{flex:none;margin-block-start:2px}
/* honeypot: clipped, not off-screen, so it never adds scroll width in either direction */
.hp-field,[dir=rtl] .consult .hp-field{position:absolute;left:auto;right:auto;inset-inline-start:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#success-panel{outline:0}
#success-panel .btn{margin-block-start:24px}
.consult-alt{margin-block-start:22px;color:var(--text-2)}
.consult-alt a{font-weight:600}

/* ---------- samples index ---------- */
.sample-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin-block-end:14px}
.sample-head h2{margin:0}
.sample-group+.sample-group{margin-block-start:14px}
.sample-card .chip{align-self:flex-start}
.sample-grid>li{display:flex}
.sample-grid>li>.sample-card{flex:1;min-width:0}
