/* Self-hosted fonts (GDPR: no CDN). woff2 live in site/fonts/, next to this file at the site root. Single shared stylesheet for programme/, preview/ and root teaching pages (consolidated 13 Jul 2026, ALI-144). */
@font-face{
  font-family:'Fraunces';
  src:url('fonts/Fraunces.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Satoshi';
  src:url('fonts/Satoshi-Variable.woff2') format('woff2');
  font-weight:300 900;
  font-style:normal;
  font-display:swap;
}

/* Two Threads / divorce-ally - shared programme styles
   Cream paper, teal accent, Fraunces display, Satoshi body, light/dark.
   Fonts loaded via <link> in each page head (Fontshare Satoshi + Google Fraunces).
   Preview parity uses CDNs; swap to self-hosted fonts for production. */

:root {
  --paper:#F5EEDF;
  --panel:#FBF6EC;
  --ink:#24211B;
  --muted:#6E685B;
  --line:#E5DCC9;
  --teal:#01696F;
  --teal-ink:#014A4F;
  --teal-tint:#E7EFEC;
  --teal-line:#C3D9D5;
  --radius:14px;
  --maxw:660px;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Satoshi','Helvetica Neue',Arial,sans-serif;
}
[data-theme="dark"] {
  --paper:#191813;
  --panel:#211F18;
  --ink:#ECE5D6;
  --muted:#A69F8D;
  --line:#332F26;
  --teal:#5FB9B4;
  --teal-ink:#CDE8E4;
  --teal-tint:#18302E;
  --teal-line:#2C4A47;
}

* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:18px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  transition:background .25s ease, color .25s ease;
}

/* top bar */
.bar {
  max-width:var(--maxw);
  margin:0 auto;
  padding:20px 22px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.wordmark {
  font-family:var(--serif);
  font-weight:600;
  font-size:21px;
  letter-spacing:-.01em;
  color:var(--teal);
  text-decoration:none;
}
.wordmark span { color:var(--muted); font-style:italic; font-weight:400; font-size:15px; }
.toggle {
  font-family:var(--sans);
  font-size:13px;
  font-weight:500;
  color:var(--muted);
  background:transparent;
  border:1px solid var(--line);
  border-radius:999px;
  padding:6px 13px;
  cursor:pointer;
  transition:border-color .2s ease, color .2s ease;
}
.toggle:hover { border-color:var(--teal-line); color:var(--ink); }
.toggle:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }

.wrap { max-width:var(--maxw); margin:0 auto; padding:34px 22px 96px; }

.eyebrow {
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:11.5px;
  font-weight:700;
  color:var(--teal);
}
h1 {
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(29px,6vw,36px);
  line-height:1.16;
  letter-spacing:-.01em;
  margin:12px 0 14px;
}
.standfirst {
  font-family:var(--serif);
  font-weight:400;
  font-size:20px;
  line-height:1.5;
  color:var(--muted);
  margin:0;
}

/* two-thread signature rule */
.threads { margin:26px 0 6px; width:60px; }
.threads .t1 { height:3px; background:var(--teal); border-radius:2px; }
.threads .t2 {
  height:0; margin-top:5px;
  border-top:2px dashed var(--teal-line);
}

section { margin-top:40px; }
.eyebrow + h2 { margin-top:6px; }
h2 {
  font-family:var(--serif);
  font-weight:500;
  font-size:24px;
  line-height:1.24;
  margin:6px 0 14px;
}
p { margin:0 0 19px; }
p:last-child { margin-bottom:0; }
strong { font-weight:700; }
em { font-style:italic; }
a { color:var(--teal); text-decoration:underline; text-underline-offset:2px; }

/* soft-teal callout card (settle first) */
.card {
  background:var(--teal-tint);
  border:1px solid var(--teal-line);
  border-radius:var(--radius);
  padding:22px 24px;
  margin:26px 0;
}
.card .label {
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
  font-weight:700;
  color:var(--teal-ink);
  margin-bottom:8px;
}
.card h3 {
  font-family:var(--serif);
  font-weight:500;
  font-size:20px;
  line-height:1.3;
  margin:0 0 12px;
}
.card p:last-child { margin-bottom:0; }

/* mid-module recall prompt / pause */
.recall {
  border:1px solid var(--teal);
  border-radius:var(--radius);
  padding:22px 24px;
  margin:30px 0;
  background:var(--panel);
}
.recall .label {
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
  font-weight:700;
  color:var(--teal);
  margin-bottom:10px;
}
.recall .q {
  font-family:var(--serif);
  font-weight:500;
  font-size:22px;
  line-height:1.34;
  margin:0 0 14px;
}
.recall p { font-size:16.5px; color:var(--muted); }
.btnlink {
  display:inline-block;
  font-family:var(--sans);
  font-size:15px;
  font-weight:500;
  text-decoration:none;
  color:#fff;
  background:var(--teal);
  border-radius:999px;
  padding:9px 18px;
  margin-top:6px;
}
[data-theme="dark"] .btnlink { color:#10201f; }
.btnlink:hover { opacity:.9; }

/* do-it-now activity */
.activity {
  border:1px solid var(--teal-line);
  border-radius:var(--radius);
  padding:22px 24px;
  margin:30px 0;
  background:var(--teal-tint);
}
.activity .label {
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
  font-weight:700;
  color:var(--teal-ink);
  margin-bottom:10px;
  display:flex;
  gap:10px;
  align-items:baseline;
}
.activity .time {
  letter-spacing:.04em;
  color:var(--teal);
  border:1px solid var(--teal-line);
  border-radius:999px;
  padding:2px 8px;
  font-size:10px;
}
.activity h3 {
  font-family:var(--serif);
  font-weight:500;
  font-size:21px;
  line-height:1.3;
  margin:0 0 12px;
}
.cols { display:flex; gap:16px; margin:16px 0 6px; }
.col { flex:1; min-width:0; }
.col .h {
  font-family:var(--sans);
  font-weight:700;
  font-size:13px;
  color:var(--teal-ink);
  margin-bottom:8px;
}
.write {
  min-height:120px;
  background:var(--panel);
  border:1px solid var(--teal-line);
  border-radius:10px;
  padding:10px 12px;
  font-family:var(--sans);
  font-size:15px;
  line-height:28px;
  color:var(--ink);
  background-image:repeating-linear-gradient(var(--panel),var(--panel) 27px,var(--line) 27px,var(--line) 28px);
  background-position:0 10px;
}
.write:focus-visible { outline:2px solid var(--teal); outline-offset:1px; }
.write:empty:before { content:attr(data-ph); color:var(--muted); }
@media (max-width:520px){ .cols{ flex-direction:column; } }

/* numbered steps */
.steps { margin:22px 0 8px; padding:0; list-style:none; counter-reset:s; }
.steps > li {
  position:relative;
  padding-left:52px;
  margin:0 0 20px;
}
.steps > li:before {
  counter-increment:s;
  content:counter(s);
  position:absolute; left:0; top:1px;
  width:34px; height:34px;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-weight:500; font-size:16px;
  color:var(--teal-ink);
  background:var(--teal-tint);
  border:1px solid var(--teal-line);
  border-radius:50%;
}
.steps .s-title { font-weight:700; display:block; margin-bottom:3px; }

/* worksheet */
.worksheet {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px 26px 22px;
  margin:34px 0 0;
}
.worksheet .label {
  font-family:var(--sans);
  text-transform:uppercase; letter-spacing:.14em;
  font-size:11px; font-weight:700; color:var(--teal);
  margin-bottom:6px;
}
.worksheet h3 {
  font-family:var(--serif); font-weight:500; font-size:22px;
  margin:0 0 16px;
}
.worksheet ol { margin:0; padding-left:20px; }
.worksheet ol li { margin:0 0 16px; padding-left:4px; }
.worksheet .hint { color:var(--muted); font-size:16px; }
.fill { display:block; margin-top:6px; color:var(--muted); font-size:15px; }

.closing { margin-top:34px; font-family:var(--serif); font-size:19px; line-height:1.55; }
.cta {
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 24px; margin:34px 0 0; text-align:center;
}
.cta p { font-size:16px; }
.cta p:last-child { margin-bottom:0; }
.cta-btn {
  display:inline-block; background:var(--teal); color:#fff; text-decoration:none;
  padding:13px 26px; border-radius:999px; font-family:var(--sans);
  font-size:15px; font-weight:600;
}
.cta-btn:hover { background:var(--teal-ink); }
[data-theme="dark"] .cta-btn { color:var(--paper); }
.next {
  margin-top:34px; padding-top:20px; border-top:1px solid var(--line);
  font-size:16px; color:var(--muted);
}
.next a { font-weight:500; }
.disclaimer {
  margin-top:26px; font-size:14px; line-height:1.6; color:var(--muted);
}

@media (prefers-reduced-motion:reduce){ * { transition:none !important; } }

/* ---------------------------------------------------------------
   ADDED for the module set (not in the original shared sheet).
   Two components every stage module needs that were missing:
   1) .recognise  - the "You are here" opener, front-loaded in the
      first viewport per the length spec. Panel bg with a teal left
      rule, so it reads as distinct from the filled teal-tint cards
      (.card / .activity) without competing with them.
   2) .pull       - the single pull-quote each module lands (e.g.
      "You have been knocking on the wrong door"). Fraunces italic,
      teal left rule, palette-consistent.
   --------------------------------------------------------------- */

.recognise {
  background:var(--panel);
  border:1px solid var(--line);
  border-left:3px solid var(--teal);
  border-radius:var(--radius);
  padding:20px 24px;
  margin:24px 0;
}
.recognise p { font-size:17.5px; }
.recognise p:last-child { margin-bottom:0; }

.pull {
  font-family:var(--serif);
  font-weight:500;
  font-style:italic;
  font-size:clamp(21px,4.4vw,24px);
  line-height:1.36;
  color:var(--ink);
  border-left:3px solid var(--teal);
  padding:2px 0 2px 20px;
  margin:30px 0;
}

/* ---------------------------------------------------------------
   ADDED for stage-to-stage footer navigation (ALI-125).
   Previous / Map of stages / Next, sitting under the .next line
   on every programme page.
--------------------------------------------------------------- */

.stagenav {
  margin-top:26px;
  padding-top:18px;
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  font-family:var(--sans);
  font-size:15px;
}
.stagenav a { text-decoration:none; font-weight:500; }
.stagenav a:hover { text-decoration:underline; }
.stagenav a.map { color:var(--muted); text-decoration:underline; }
@media (max-width:520px){
  .stagenav { flex-direction:column; align-items:flex-start; gap:10px; }
}

.wordmark { display:inline-flex; align-items:center; gap:10px; }
.wm-mark { height:30px; width:auto; display:block; }

.wordmark .wm-text { color: inherit; font-style: normal; font-weight: 600; font-size: 21px; }

/* Printable worksheets (pattern doc: initiatives/divorce-ally/WORKSHEETS.md) */
.printbtn {
  display:inline-block; margin-top:16px; padding:10px 22px;
  font:600 15px/1 var(--sans); color:var(--teal); background:none;
  border:1.5px solid var(--teal); border-radius:999px; cursor:pointer;
}
.printbtn:hover { background:var(--teal-tint); }
#printsheet { display:none; }
@media print {
  @page { margin:14mm; }
  html, body { height:auto; margin:0; }
  .bar, .wrap { display:none; }
  #printsheet .pcard { background:#E7EFEC; border:1px solid #C3D9D5; border-radius:14px; padding:16px 18px; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  #printsheet .pcard .plabel { font-family:var(--sans); font-weight:700; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:#01696F; margin-bottom:8px; }
  #printsheet .pcard p { margin:0; }
  #printsheet { display:block; font-family:var(--sans); color:#000; }
  #printsheet .phead { display:flex; align-items:center; gap:10px; margin:0 0 10mm; }
  #printsheet .phead img { width:34px; height:auto; }
  #printsheet .phead .pname { font-family:var(--serif); font-weight:700; font-size:22px; color:#01696F; }
  #printsheet .phead .ptag { font-family:var(--serif); font-style:italic; font-size:16px; color:#6E685B; }
  #printsheet .phead .pstage { margin-left:auto; font-family:var(--sans); font-weight:700; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:#01696F; }
  #printsheet h2 { font-family:var(--serif); font-size:22px; margin:0 0 8px; }
  #printsheet h3 { font-family:var(--sans); font-size:14px; margin:18px 0 4px; }
  #printsheet p { font-size:14px; margin:0 0 14px; }
  #printsheet table { width:100%; border-collapse:collapse; }
  #printsheet th, #printsheet td { border:1px solid #999; padding:6px 8px; font-size:13px; text-align:left; vertical-align:top; }
  #printsheet .newpage { page-break-before:always; }
  #printsheet ol, #printsheet ul { padding-left:20px; font-size:14px; margin:0; }
  #printsheet li { margin-bottom:12px; }
  #printsheet .ruled { margin-top:8px; }
  #printsheet .rl { display:block; height:27px; border-bottom:1px solid #999; }
  #printsheet li, #printsheet .ruled, #printsheet .pcard { break-inside:avoid; page-break-inside:avoid; }
}
