/* One family of products, individual colour accents and focused entry points. */
.theme-blue { --pine:#244a64; --pine-strong:#193b53; --sage:#e4edf3; --sage-strong:#c8d9e5; }
.theme-clay { --pine:#6b4034; --pine-strong:#573025; --sage:#f1e9e3; --sage-strong:#ddcbbf; }
.theme-olive { --pine:#435439; --pine-strong:#32432c; --sage:#eaf0e4; --sage-strong:#cfdcc4; }
.theme-plum { --pine:#61435d; --pine-strong:#4b3047; --sage:#f0e9ee; --sage-strong:#ddccda; }
.theme-sand { --pine:#655139; --pine-strong:#503f2b; --sage:#f2eee4; --sage-strong:#dfd5c0; }
.theme-teal { --pine:#20575c; --pine-strong:#164449; --sage:#e2eff0; --sage-strong:#bfd9db; }
.theme-copper { --pine:#72462f; --pine-strong:#593421; --sage:#f3e9e1; --sage-strong:#e0cdbd; }
.product-site { background:#f7f8f5; }
.product-header,.product-footer { max-width:960px; margin:auto; padding:24px 28px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.product-header { border-bottom:1px solid var(--line); }
.product-header > span { font-size:.75rem; color:var(--muted); }
.product-brand { font:600 1.5rem var(--serif); color:var(--pine); text-decoration:none; }
.product-site main, .product-site[data-mode="overview"] main { max-width:860px; padding-top:42px; }
.product-footer { border-top:1px solid var(--line); font-size:.73rem; color:var(--muted); flex-wrap:wrap; margin-top:40px; }
.product-landing,.product-question,.product-result { display:grid; gap:24px; }
.product-landing h1 { max-width:19ch; font-size:clamp(2.5rem,5vw,3.75rem); text-wrap:balance; }
.product-landing .lead,.product-result .lead { max-width:60ch; font-size:1.05rem; }
.product-landing .btn { justify-self:start; min-width:240px; }
.landing-scope { max-width:56ch; margin-top:-12px; color:var(--muted); font-size:.9rem; }
.landing-steps { display:grid; grid-template-columns:repeat(3,1fr); max-width:680px; margin:4px 0; padding:0; list-style:none; border:1px solid var(--sage-strong); border-radius:10px; overflow:hidden; background:var(--sage); }
.landing-steps li { display:flex; align-items:center; gap:10px; padding:15px 16px; color:var(--pine); font-size:.78rem; font-weight:600; }
.landing-steps li + li { border-left:1px solid var(--sage-strong); }
.landing-steps span { display:grid; place-items:center; width:24px; height:24px; flex:0 0 auto; border:1px solid var(--sage-strong); border-radius:50%; background:white; font-size:.7rem; }
.product-example { max-width:680px; border-top:1px solid var(--line); }
.landing-context { max-width:680px; border-top:1px solid var(--line); }
.landing-context p { padding:0 0 18px; color:var(--muted); font-size:.86rem; }
.example-card { display:grid; gap:12px; padding:4px 0 22px; }
.example-card > strong { color:var(--pine); font-size:.8rem; }
.example-card > small { margin-top:-8px; color:var(--muted); }
.example-map { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--sage-strong); border-radius:8px; overflow:hidden; }
.example-map > * { display:flex; align-items:center; min-height:64px; padding:12px; font-size:.78rem; line-height:1.35; }
.example-map > * + * { border-left:1px solid var(--sage-strong); }
.example-map b { color:white; background:var(--pine); }
.example-card > p { display:grid; gap:4px; padding-left:14px; border-left:2px solid var(--pine); font-size:.85rem; }
.example-card > p span { color:var(--pine); font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.product-benefits { list-style:none; padding:0; display:flex; gap:12px 24px; flex-wrap:wrap; color:var(--pine); font-size:.85rem; }
.product-benefits li::before { content:'✓'; margin-right:8px; }
.product-faq { border-top:1px solid var(--line); margin-top:12px; }
.product-faq p { padding:12px 0; font-size:.9rem; }
.product-site summary { cursor:pointer; padding:16px 0; min-height:48px; font-weight:600; color:var(--pine); }
.product-question h1 { font-size:clamp(1.9rem,4vw,2.8rem); max-width:24ch; }
.product-question .options { display:grid; gap:12px; }
.product-question .option { display:flex; justify-content:space-between; align-items:center; padding:20px; gap:18px; min-height:68px; }
.question-help { margin-top:-16px; border-bottom:1px solid var(--line); }
.question-help summary { font-size:.8rem; }
.question-help p { max-width:68ch; padding:0 0 16px; color:var(--muted); font-size:.85rem; }
.product-question progress { width:100%; height:5px; accent-color:var(--pine); border:0; }
.product-question progress::-webkit-progress-bar { background:var(--sage); border-radius:5px; }
.product-question progress::-webkit-progress-value { background:var(--pine); border-radius:5px; }
.product-result header { display:grid; gap:12px; }
.product-result h1 { font-size:clamp(2rem,4vw,2.75rem); }
.result-map { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--sage-strong); background:var(--sage); border-radius:10px; overflow:hidden; }
.map-step { display:grid; gap:8px; padding:22px; }
.map-step + .map-step { border-left:1px solid var(--sage-strong); }
.map-step > span { font-size:.75rem; color:var(--pine); }
.map-step b { font-size:.95rem; }
.map-step small { font-size:.72rem; color:var(--muted); }
.map-step.urgent { background:var(--amber-soft); }
.product-insights { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.product-insights article { border-left:2px solid var(--sage-strong); padding-left:18px; }
.product-insights h2 { font-size:1.35rem; margin-bottom:10px; }
.product-insights p { font-size:.95rem; }
.product-next { display:grid; gap:12px; background:var(--pine); color:white; padding:28px; border-radius:10px; }
.product-next h2 { font-size:1.8rem; }
.product-next .section-label,.product-next .small-note { color:#e8eeea; }
.product-next p { font-size:.93rem; }
.product-next .small-note { font-size:.73rem; }
.product-next .btn { justify-self:start; background:white; color:var(--pine); border-color:white; }
.scan-details { border-bottom:1px solid var(--line); }
.scan-detail-body { padding:8px 0 24px; display:grid; gap:18px; font-size:.9rem; }
.scan-detail-body h2 { font-size:1.2rem; }
.recap-item { display:grid; gap:8px; border-top:1px solid var(--line); padding-top:18px; }
.recap-item button { justify-self:start; }
.answer-label { color:var(--pine); font-weight:600; }
.reuse-choice { display:flex; align-items:start; gap:12px; font-size:.82rem; }
.reuse-choice input { width:20px; height:20px; flex-shrink:0; }
.product-directory { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.product-link { display:grid; gap:12px; padding:24px; border:1px solid var(--line); border-radius:10px; text-decoration:none; background:white; }
.product-link:hover { border-color:var(--pine); }
.product-link h2 { font-size:1.5rem; }
.product-link > span,.product-link > b { color:var(--pine); font-size:.78rem; }
.product-link p { font-size:.9rem; color:var(--muted); }
.analysis-slot { padding:12px 0 24px; font-size:.9rem; }
.analysis-slot button { min-height:44px; }
@media(max-width:600px){
 .product-header,.product-footer { padding:20px; }
 .product-header > span { display:none; }
 .product-site main,.product-site[data-mode="overview"] main { padding:28px 20px 40px; }
 .product-landing h1 { font-size:2.55rem; }
 .product-insights,.product-directory { grid-template-columns:1fr; }
 .map-step { padding:14px 10px; }
 .map-step b { font-size:.8rem; overflow-wrap:anywhere; }
 .map-step small { font-size:.66rem; }
 .product-next { padding:22px; }
 .product-next .btn { width:100%; }
 .product-benefits { display:grid; }
}
@media print { .product-header,.product-footer,.product-next a,.result-utilities,.analysis-slot { display:none!important; } .product-next{background:white;color:#111;border:1px solid #bbb;} }
@media(max-width:480px){
 .result-map { grid-template-columns:1fr; }
 .map-step { grid-template-columns:28px 1fr; gap:4px 10px; padding:12px 16px; }
 .map-step + .map-step { border-left:0; border-top:1px solid var(--sage-strong); }
 .map-step > span { grid-row:1 / 3; align-self:center; }
 .map-step b { font-size:.9rem; overflow-wrap:normal; }
 .map-step small { grid-column:2; font-size:.72rem; }
}

/* Results explain the submitted situation before asking for a conversation. */
.product-result { gap:34px; }
.report-section-heading { display:grid; gap:9px; }
.report-section-heading h2 { font-size:clamp(1.65rem,3vw,2rem); }
.situation,.scenario-section { display:grid; gap:20px; }
.situation-diagram { padding:24px; border:1px solid var(--sage-strong); border-radius:14px; background:var(--sage); }
.situation-center { position:relative; display:grid; gap:4px; max-width:340px; margin:0 auto 30px; padding:16px 20px; text-align:center; color:white; background:var(--pine); border-radius:8px; }
.situation-center span { font-size:.72rem; opacity:.9; }
.situation-center strong { font:500 1.45rem/1.2 var(--serif); }
.situation-center::after { content:''; position:absolute; top:100%; left:50%; height:30px; border-left:1px solid var(--pine); opacity:.4; }
.situation-nodes { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; padding:0; list-style:none; }
.situation-nodes::before { content:''; position:absolute; top:-12px; left:16.66%; right:16.66%; border-top:1px solid var(--pine); opacity:.4; }
.situation-node { position:relative; display:flex; flex-direction:column; gap:8px; padding:14px; background:var(--surface); border:1px solid var(--sage-strong); border-radius:8px; min-width:0; }
.situation-node:nth-child(-n+3)::before { content:''; position:absolute; bottom:100%; left:50%; height:12px; border-left:1px solid var(--pine); opacity:.4; }
.node-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0 5px; }
.node-status { font-size:.62rem; font-weight:600; color:var(--muted); }
.node-status::before { content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--pine); margin-right:5px; }
.status-unknown .node-status::before { background:transparent; border:1px solid var(--muted); }
.status-open .node-status::before,.status-attention .node-status::before { background:var(--amber); }
.node-edit { border:0; background:none; color:var(--pine); text-decoration:underline; text-underline-offset:3px; font-size:.65rem; cursor:pointer; min-height:44px; padding:4px; }
.situation-node h3 { font:600 .79rem/1.4 var(--sans); color:var(--muted); }
.situation-node p { font-size:.91rem; line-height:1.4; }
.situation-node small { font-size:.71rem; color:var(--muted); line-height:1.45; }
.diagram-caption { font-size:.71rem; color:var(--muted); max-width:76ch; }
.scenario-choices { display:flex; gap:8px; flex-wrap:wrap; }
.scenario-choices button { flex:1; border:1px solid var(--line); border-radius:7px; padding:12px 16px; min-height:48px; font-size:.8rem; line-height:1.4; background:white; cursor:pointer; }
.scenario-choices button[aria-pressed="true"] { background:var(--pine); color:white; border-color:var(--pine); }
.scenario-choices button:hover { border-color:var(--pine); }
.scenario-panel { padding:26px; border:1px solid var(--line); background:white; border-radius:10px; display:grid; gap:18px; }
.scenario-panel h3 { font-size:1.5rem; }
.scenario-summary { font-size:.95rem; }
.scenario-observations { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:0; }
.scenario-observations > div { border-left:2px solid var(--sage-strong); padding-left:14px; }
.scenario-observations dt { font-weight:600; font-size:.8rem; margin-bottom:6px; }
.scenario-observations dd { margin:0; font-size:.85rem; color:var(--muted); }
.scenario-action { display:grid; gap:6px; padding-top:18px; border-top:1px solid var(--line); font-size:.85rem; }
.scenario-action strong { color:var(--pine); font-size:.75rem; }
.product-result .preparation-list { padding:0 0 20px 26px; display:grid; gap:18px; }
.product-result .preparation-list li { padding-left:8px; }
.preparation-list li::marker { color:var(--pine); }
.preparation-list h3 { font:600 .9rem var(--sans); margin-bottom:6px; }
.preparation-list p { font-size:.87rem; color:var(--muted); }
.result-attention { display:grid; gap:6px; background:var(--amber-soft); border-left:3px solid var(--amber); padding:18px; font-size:.9rem; }
.result-first-step { display:grid; gap:10px; padding:24px; border:1px solid var(--sage-strong); border-left:4px solid var(--pine); border-radius:10px; background:white; }
.result-first-step h2 { font-size:clamp(1.45rem,3vw,1.8rem); }
.result-first-step > p:not(.section-label) { max-width:70ch; font-size:.92rem; }
.result-first-step.urgent { border-color:var(--amber); background:var(--amber-soft); }
.result-first-step details { border-top:1px solid var(--line); }
.result-first-step details summary { padding-bottom:8px; font-size:.82rem; }
.result-first-step ul { display:grid; gap:7px; padding:0 0 8px 22px; color:var(--muted); font-size:.84rem; }
@media(max-width:700px) {
 .situation-diagram { padding:18px; }
 .situation-nodes { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .situation-nodes::before { left:25%;right:25%; }
 .situation-node:nth-child(3)::before { display:none; }
}
@media(max-width:480px) {
 .product-result { gap:28px; }
 .situation-diagram { padding:16px; }
 .situation-nodes { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .situation-node { padding:10px; gap:6px; }
 .situation-node p { font-size:.82rem; }
 .situation-node h3 { font-size:.7rem; }
 .node-heading { min-height:26px; }
 .node-status { font-size:.58rem; }
 .node-edit { margin:-6px 0; }
 .scenario-choices { flex-direction:column; }
 .scenario-choices button { text-align:left; }
 .scenario-panel { padding:20px; }
 .scenario-observations { grid-template-columns:1fr; gap:16px; }
 .landing-steps li { flex-direction:column; align-items:flex-start; gap:7px; padding:10px; font-size:.7rem; }
 .example-map { grid-template-columns:1fr; }
 .example-map > * + * { border-left:0; border-top:1px solid var(--sage-strong); }
}
@media print {
 .node-edit,.scenario-choices { display:none; }
 .situation-center { background:white;color:#111;border:1px solid #aaa; }
 .situation-diagram,.scenario-panel { break-inside:avoid; }
}

@media(max-width:359px) {
 .situation-nodes { grid-template-columns:1fr; }
 .situation-nodes::before,.situation-node::before { display:none!important; }
}

.product-result .preparation-list li::before { display:none; }

.center-edit { background:none;border:0;color:white;text-decoration:underline;text-underline-offset:3px;font-size:.7rem;min-height:44px;cursor:pointer;justify-self:center;margin-bottom:-10px; }
.center-edit:focus-visible { outline-color:white; }
@media print { .center-edit { display:none; } }

.product-brand { display:inline-flex;align-items:center;gap:10px; }
.product-brand .ui-icon, .product-brand .wijzer-mark { width:30px;height:30px; }
.product-link h2 { display:flex;align-items:center;gap:12px; }
.product-link h2 .ui-icon { width:30px;height:30px;color:var(--pine); }
.scenario-choices button { display:flex;align-items:center;gap:10px;text-align:left; }
.scenario-choices .ui-icon { width:21px;height:21px; }
.result-utilities #download { display:inline-flex;align-items:center;gap:8px; }
.result-utilities .ui-icon { width:19px;height:19px; }

.product-next .consultation-secondary { display:inline-flex; align-items:center; gap:8px; color:inherit; text-decoration:underline; text-underline-offset:3px; font-size:.9rem; }
.product-next .btn { gap:8px; }
.product-next .ui-icon { flex-shrink:0; width:20px; height:20px; }

/* Evidence and preparation: one readable work sequence, detail on demand. */
.action-plan-list { list-style:none; padding:0; margin:18px 0 12px; border:1px solid var(--line); border-radius:12px; background:white; }
.action-plan-list > li + li { border-top:1px solid var(--line); }
.action-plan-list > li > details > summary { display:flex; align-items:center; gap:14px; padding:20px; font-weight:600; line-height:1.45; }
.plan-number { display:grid; place-items:center; border:1px solid var(--sage-strong); border-radius:50%; width:28px; height:28px; flex:0 0 28px; font-size:.75rem; color:var(--pine); }
.plan-detail { padding:0 22px 22px; display:grid; gap:16px; font-size:.9rem; }
.plan-evidence { border-block:1px solid var(--line); }
.plan-evidence summary { font-size:.8rem; }
.plan-evidence ul { list-style:none; display:grid; gap:12px; padding:0 0 16px; }
.plan-evidence li { display:grid; gap:4px; font-size:.8rem; }
.plan-evidence strong { font-weight:500; color:var(--muted); }
.plan-action { display:grid; gap:6px; border-left:2px solid var(--pine); padding-left:14px; }
.plan-action strong { color:var(--pine); font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; }
.plan-check,.contract-consent { display:flex; gap:10px; align-items:flex-start; line-height:1.6; min-height:44px; padding-block:10px; cursor:pointer; font-size:.82rem; }
.plan-check input,.contract-consent input { width:18px;height:18px;flex:0 0 18px; accent-color:var(--pine); margin-top:3px; }
.contract-review { border:1px solid var(--sage-strong);border-radius:12px; background:white; }
.document-workspace-link {margin:28px 0;padding:24px;border:1px solid var(--sage-strong);border-radius:12px;background:white;}
.document-workspace-link h2 {margin-top:0;}
.document-export-consent {display:flex;gap:10px;align-items:flex-start;margin:18px 0;line-height:1.5;cursor:pointer;}
.document-export-consent input {width:18px;height:18px;flex:0 0 18px;margin-top:3px;accent-color:var(--pine);}
.contract-review > summary { padding:24px; font-weight:600; }
.contract-review-body { display:grid;gap:18px;padding:0 24px 24px; }
.contract-review h2 {font-size:1.6rem;}
.contract-review form {display:grid;gap:12px;font-size:.9rem;}
.contract-review textarea,.contract-review select {font:inherit;width:100%;max-width:100%;border:1px solid var(--sage-strong);border-radius:7px;padding:12px;background:var(--paper,#fafaf7);color:var(--ink);}
.contract-review textarea {resize:vertical;line-height:1.6;}
.contract-review input[type=file] {max-width:100%;font-size:.8rem;}
.contract-actions {display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.contract-privacy {border-block:1px solid var(--line);font-size:.82rem;}
.contract-privacy p {padding-bottom:12px;}
.contract-findings {display:grid;gap:20px;border-top:1px solid var(--line);padding-top:24px;}
.contract-finding {display:grid;gap:12px;border-top:1px solid var(--line);padding-top:20px;font-size:.9rem;}
.contract-finding h3 {font-size:1.15rem;}
.contract-finding blockquote {margin:0;padding:16px;border-left:3px solid var(--sage-strong);background:var(--sage);font-size:.85rem;white-space:pre-wrap;overflow-wrap:anywhere;}
@media(max-width:480px) {.plan-detail {padding:0 16px 16px;}.action-plan-list > li > details > summary {padding:16px;}.contract-review-body {padding:0 16px 16px;}.contract-review > summary {padding:20px 16px;}}
@media print {.plan-check,.contract-review form,.contract-review > summary {display:none;}.plan-detail,.contract-review-body {display:block;}.contract-finding {break-inside:avoid;}}
.contract-finding > summary {display:grid;gap:8px;padding:8px 0 16px;}
.finding-title {font-size:1.08rem;font-weight:600;line-height:1.4;}
.finding-body {display:grid;gap:14px;padding-bottom:10px;}
.contract-ai-summary {border-block:1px solid var(--line);font-size:.88rem;}
.contract-ai-summary p {padding-bottom:16px;}

.work-product ul { padding-left:1.2rem; line-height:1.7; margin:20px 0; }
.work-sheet { white-space:pre-wrap; font:inherit; font-size:.9rem; padding:18px; background:var(--paper); line-height:1.65; }
.work-products { margin-top:64px; }
