/* ============================================================
   DOLIVO PARTNERS — site identity layer.
   Loaded after tokens.css and base.css; overrides only what makes
   this site distinct from its siblings in the shared system:

     Vague Ventures -> teal accent,   grotesque headings
     Sahand Hagi    -> gold accent,   serif headings
     Dolivo Partners-> copper accent, grotesque headings at 700,
                       heavier mono annotation (an engineering register,
                       not an editorial one)

   Copper because the subject is transmission: Dolivo-Dobrovolsky's
   1891 Lauffen-Frankfurt line is the firm's namesake, and copper is
   the conductor. It also clears both siblings' hues.
   ============================================================ */

:root {
  --copper:      #8a4423;   /* darkened to clear AA 4.5:1 on --paper */
  --copper-lift: #b8632f;

  --accent:      var(--copper);
  --accent-ink:  #fff6f1;
  --accent-on-black: #e0975c;

  /* grotesque display, distinct from the personal site's serif */
  --font-display: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

@media (prefers-color-scheme: dark) {
  :root { --copper:#e0975c; --copper-lift:#f0ae76; --accent-ink:#1a0d06; }
}
:root[data-theme="dark"]  { --copper:#e0975c; --copper-lift:#f0ae76; --accent-ink:#1a0d06; }
:root[data-theme="light"] { --copper:#8a4423; --copper-lift:#b8632f; --accent-ink:#fff6f1; }

/* headings sit tighter and heavier than the serif sites */
h1,h2,h3 { font-weight:700; letter-spacing:-.025em; }
.hero h1 { letter-spacing:-.03em; max-width:15ch; }

/* ---------- evidence marks: how a claim's status shows on the page ---------- */
.ev{ font-family:var(--font-mono); font-size:.62rem; letter-spacing:.1em;
  text-transform:uppercase; font-weight:500; padding:.16rem .42rem;
  border:1px solid var(--border-2); color:var(--fg-mute); white-space:nowrap;
  vertical-align:.12em; margin-left:.4rem; }
.ev-verified{ color:var(--accent); border-color:var(--accent); }
.ev-inferred{ color:var(--fg-mute); border-style:dashed; }
@media (max-width:520px){ .ev{ white-space:normal; box-decoration-break:clone; -webkit-box-decoration-break:clone; } }
@media (max-width:520px){ .spec .cell{ white-space:normal; } }  /* base.css sets nowrap; on a phone the long cell pushed the page to 441 px */

/* ---------- the gate list: numbered, hairline, no cards ---------- */
.gates{ border-top:1px solid var(--border-2); margin-top:.5rem; }
.gate{ display:grid; grid-template-columns:3.4rem 1fr; gap:1.4rem;
  padding:1.5rem 0; border-bottom:1px solid var(--border); }
.gate .n{ font-family:var(--font-mono); font-size:1.05rem; color:var(--accent);
  padding-top:.15rem; }
.gate h3{ font-size:var(--step-1); margin:0 0 .35rem; }
.gate p{ margin:0; color:var(--fg-soft); max-width:64ch; }

/* ---------- resources: published pieces, dated, hairline ---------- */
.pieces{ border-top:1px solid var(--border-2); margin-top:.5rem; }
.piece{ display:grid; grid-template-columns:9rem 1fr; gap:1.4rem;
  padding:1.5rem 0; border-bottom:1px solid var(--border); text-decoration:none; color:inherit; }
.piece:hover h3{ color:var(--accent); }
.piece .d{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em;
  color:var(--fg-mute); padding-top:.3rem; }
.piece h3{ font-size:var(--step-1); margin:0 0 .35rem; }
.piece p{ margin:0 0 .8rem; color:var(--fg-soft); max-width:64ch; }
.piece .go{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; color:var(--accent); }
@media (max-width:640px){ .piece{ grid-template-columns:1fr; gap:.4rem; } }

/* ---------- the stage table (resource pages) ---------- */
table.stages{ width:100%; border-collapse:collapse; font-size:var(--step--1); line-height:1.45;
  border-top:1px solid var(--border-2); font-variant-numeric:tabular-nums; }
table.stages th{ text-align:left; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--fg-mute); font-weight:500; padding:.8rem .7rem .6rem 0; border-bottom:1px solid var(--border-2); }
table.stages td{ vertical-align:top; padding:.8rem .7rem .8rem 0; border-bottom:1px solid var(--border); color:var(--fg-soft); }
table.stages td:first-child{ white-space:nowrap; color:var(--fg); }
table.stages td b{ font-family:var(--font-mono); color:var(--accent); margin-right:.3rem; }
@media print{ table.stages tr{ break-inside:avoid; page-break-inside:avoid; } }

/* ---------- map frame ---------- */
.mapwrap{ border:1px solid var(--border-2); background:var(--surface); }
.mapwrap iframe{ display:block; width:100%; height:min(148vh, 1900px);
  border:0; background:var(--surface); }
.mapbar{ display:flex; gap:1rem; align-items:baseline; justify-content:space-between;
  flex-wrap:wrap; border-bottom:1px solid var(--border); padding:.85rem 1.1rem;
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--fg-mute); }
.mapbar a{ color:var(--accent); text-decoration:none; }
.mapbar a:hover{ text-decoration:underline; }
@media (max-width:700px){ .mapwrap iframe{ height:130vh; } }

/* ---------- two audience routes ---------- */
.routes{ display:grid; gap:1px; background:var(--border-2);
  border:1px solid var(--border-2); grid-template-columns:1fr; }
@media (min-width:760px){ .routes{ grid-template-columns:1fr 1fr; } }
.route{ background:var(--surface); padding:1.9rem 1.7rem 2rem;
  text-decoration:none; color:inherit; display:flex; flex-direction:column;
  transition:background .15s; }
.route:hover{ background:var(--card-2); }
.route h3{ font-size:var(--step-2); margin:.5rem 0 .5rem; }
.route p{ color:var(--fg-soft); margin:0 0 1.4rem; }
.route .go{ margin-top:auto; font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--accent); }

/* ---------- principals ---------- */
.people{ display:grid; gap:1px; background:var(--border-2);
  border:1px solid var(--border-2); grid-template-columns:1fr; }
@media (min-width:720px){ .people{ grid-template-columns:1fr 1fr; } }
@media (min-width:1040px){ .people{ grid-template-columns:1fr 1fr 1fr; } }
.grid--four{ grid-template-columns:1fr; }
@media (min-width:620px){ .grid--four{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:900px){ .grid--four{ grid-template-columns:repeat(4,1fr); } }
.person{ background:var(--surface); padding:1.7rem 1.6rem; }
.person h3{ margin:.45rem 0 .2rem; font-size:var(--step-1); }
.person .role{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--fg-mute); }
.person p{ color:var(--fg-soft); margin:.9rem 0 0; }

/* ---------- an open item the page must not hide ---------- */
.todo{ border:1px dashed var(--border-2); background:var(--card-2);
  padding:1.1rem 1.2rem; font-family:var(--font-mono); font-size:.74rem;
  line-height:1.7; color:var(--fg-mute); letter-spacing:.02em; }
.todo b{ color:var(--accent); font-weight:500; letter-spacing:.08em;
  text-transform:uppercase; font-size:.68rem; display:block; margin-bottom:.4rem; }

/* ---------- sources ---------- */
.sources{ font-size:var(--step--1); color:var(--fg-mute); line-height:1.75;
  max-width:74ch; }
.sources li{ margin-bottom:.5rem; }

/* ---------- print: keep every box whole (global rule §4) ---------- */
@media print{
  .mapwrap, .mapbar, .route, .routes, .person, .people, .gate, .todo, .sources,
  .ev, .gates, .piece, .pieces{ break-inside:avoid; page-break-inside:avoid; }
  .mapwrap iframe{ height:auto; min-height:60vh; }
  :root{ print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}

/* --- the stage ladder (front pages) --- */
figure.ladder{ position:relative; margin:2.2rem 0 0; padding:1.4rem 1.2rem 1rem; background:var(--card);
  border:1px solid var(--border-2); }
figure.ladder svg{ max-width:880px; margin:0 auto; }
figure.ladder .ladder-step{ cursor:default; outline:none; transition:opacity .15s; }
figure.ladder .ladder-step:focus-visible rect:first-child{ stroke:var(--fg); stroke-width:2; }
figure.ladder figcaption{ margin-top:.9rem; font-size:var(--step--1); color:var(--fg-mute); max-width:70ch; line-height:1.5; }
figure.ladder figcaption strong{ color:var(--fg); font-weight:600; }
.ladder-tip{ position:absolute; top:.6rem; z-index:2; pointer-events:none; background:var(--fg); color:var(--bg);
  padding:.55rem .75rem; max-width:22rem; font-size:.8rem; line-height:1.4; }
.ladder-tip b{ display:block; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.2rem; }
@media print{ figure.ladder{ break-inside:avoid; page-break-inside:avoid; } .ladder-tip{ display:none; }
  figure.ladder .ladder-step rect{ transform:none !important; transition:none !important; } }

/* Plain bulleted list in body copy (front page, section "Was Gemeinden davon haben", 1 October 2026). */
ul.plain{ padding-left:1.2em; display:grid; gap:.5rem; max-width:68ch; }

/* Contact form (kontakt.html, en-contact.html), added 1 October 2026 */
.form{ display:grid; gap:1.1rem; margin-top:1.6rem; }
.form label{ display:grid; gap:.35rem; font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--fg-mute); }
.form input, .form textarea{ font:inherit; font-family:inherit; font-size:1rem; letter-spacing:normal;
  text-transform:none; color:var(--fg); background:var(--card); border:1px solid var(--border-2);
  border-radius:0; padding:.7rem .8rem; width:100%; box-sizing:border-box; }
.form textarea{ min-height:10rem; resize:vertical; }
.form input:focus-visible, .form textarea:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; }
.form .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form .consent{ font-size:var(--step--1); color:var(--fg-soft); }
.form-msg{ border:1px solid var(--border-2); background:var(--card-2); padding:1rem 1.2rem; margin-top:1.4rem; }
.form-msg[hidden]{ display:none; }
@media print{ .form, .form-msg{ break-inside:avoid; page-break-inside:avoid; } }
