/* Solutions-only layouts; shared navigation and CTA remain unchanged. */
body[data-page="solutions"] { --solution-violet:#6736ba; --solution-violet-soft:#f5f1ff; --solution-teal:#08796e; --solution-teal-soft:#edf9f6; }
body[data-page="solutions"] main { overflow-wrap:anywhere; }
.solutions-hero { background:linear-gradient(110deg,var(--white),var(--section-soft));border-bottom:1px solid var(--line); }
.solutions-hero__frame { width:min(calc(100% - 64px),1480px);margin-inline:auto; }
.solutions-hero__layout { display:grid;grid-template-columns:minmax(0,44fr) minmax(0,56fr);gap:28px;align-items:center;padding-block:20px 30px; }
.solutions-hero__copy h1 { font-size:clamp(2.2rem,3.4vw,3.5rem);max-width:600px; }
.solutions-hero__copy > p:not(.kicker) { max-width:580px;line-height:1.65; }
.solutions-actions { display:flex;flex-wrap:wrap;gap:12px;margin-top:24px; }
.solutions-hero__visual { position:relative;min-width:0; }
.solutions-hero__visual > img { display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:12px; }
.solutions-hero__overlay { position:absolute;bottom:20px;right:18px;display:flex;gap:12px;width:min(310px,75%);padding:18px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);font-size:.9rem; }
.solutions-hero__overlay > .icon { color:var(--kizoshi-primary-dark);flex-shrink:0;width:26px;height:26px; }
.solutions-hero__overlay p { margin:8px 0 0;line-height:1.5; }
section.solutions-roles.container { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-block:32px;scroll-margin-top:100px; }
.solution-role { --role-color:var(--kizoshi-primary-dark);--role-soft:var(--kizoshi-primary-soft);display:grid;grid-template-rows:subgrid;grid-row:span 3;gap:18px;min-width:0;padding:20px 16px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(var(--role-soft),var(--white)); }
.solution-role--sales { --role-color:var(--solution-violet);--role-soft:var(--solution-violet-soft); }
.solution-role--service { --role-color:var(--solution-teal);--role-soft:var(--solution-teal-soft); }
.solution-role__label { display:flex;align-items:center;gap:12px;color:var(--role-color);font-size:.75rem;font-weight:700;text-transform:uppercase; }
.solution-role__label .icon { width:42px;height:42px;padding:8px;border-radius:50%;background:var(--white);flex-shrink:0; }
.solution-role h2 { font-size:1.6rem;line-height:1.2;margin-bottom:14px; }
.solution-role__copy > p:not(.solution-role__label) { font-size:.9rem;line-height:1.65; }
.solution-role__copy ul { list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px; }
.solution-role__copy li { display:flex;align-items:flex-start;gap:8px;font-size:.85rem;line-height:1.55;color:var(--muted); }
.solution-role__copy li .icon { width:19px;height:19px;flex-shrink:0;color:var(--role-color); }
.solution-dashboard { background:var(--white);border:1px solid var(--line);border-radius:10px;padding:14px 10px;min-width:0; }
.solution-dashboard h3 { display:flex;gap:8px;align-items:center;font-size:.9rem;line-height:1.4;letter-spacing:0;margin:0 0 8px; }
.solution-dashboard h3 .icon { width:20px;height:20px;color:var(--role-color);flex-shrink:0; }
.solution-dashboard__example,.solution-dashboard__period { font-size:.75rem;line-height:1.5;margin:0 0 7px; }
.solution-dashboard__period { color:var(--ink); }
.solution-kpis { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,7rem),1fr));gap:7px;margin:14px 0 22px; }
.solution-kpis > div { display:flex;flex-direction:column-reverse;justify-content:flex-end;padding:10px 8px;border:1px solid var(--line);border-radius:7px;background:var(--section-soft); }
.solution-kpis dt { font-size:.75rem;line-height:1.45;color:var(--muted); }
.solution-kpis dd { margin:0 0 5px;font-size:1rem;font-weight:800;line-height:1.4;color:var(--ink); }
.solution-chart h4 { font-size:.82rem;line-height:1.5;margin:0 0 14px; }
.solution-chart-data { margin-top:16px;font-size:.75rem; }
.solution-chart-data summary { cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--kizoshi-primary-dark);text-decoration:underline; }
.solution-chart-data summary::before { content:'+';margin-right:8px; }
.solution-chart-data[open] summary::before { content:'−'; }
.solution-chart-data table { width:100%;border-collapse:collapse;table-layout:fixed; }
.solution-chart-data th,.solution-chart-data td { padding:7px 4px;border-bottom:1px solid var(--line);overflow-wrap:anywhere;text-align:left; }
.solution-dashboard__note { margin:12px 0 0;font-size:.75rem;line-height:1.55; }
.solution-line { display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:190px auto;gap:8px 4px; }
.solution-line__axis { display:flex;flex-direction:column;justify-content:space-between;font-size:.75rem;padding:0 0 10px; }
.solution-line svg { width:100%;height:190px;overflow:visible; }
.solution-line polyline { fill:none;stroke-width:2.5;vector-effect:non-scaling-stroke; }
.solution-line .line-invoiced { stroke:var(--kizoshi-primary-dark); }
.solution-line .line-pipeline { stroke:var(--solution-violet);stroke-dasharray:5 4; }
.solution-line .chart-grid { fill:none;stroke:var(--line);stroke-width:1; }
.solution-months { grid-column:2;display:flex;justify-content:space-between;font-size:.75rem; }
.solution-legend { display:flex;gap:12px;flex-wrap:wrap;font-size:.75rem;line-height:1.5;margin-top:10px; }
.solution-legend .line-invoiced { color:var(--kizoshi-primary-dark); }
.solution-legend .line-pipeline { color:var(--solution-violet); }
.solution-bars { list-style:none;padding:0;margin:0;display:grid;gap:14px; }
.solution-bars li { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 18px;gap:8px;align-items:center;font-size:.75rem;line-height:1.4; }
.solution-bar-track { background:var(--section-soft);height:14px;border-radius:3px; }
.solution-bar-track > span { display:block;height:100%;background:var(--role-color);border-radius:3px; }
.solution-donut { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:center;min-height:200px; }
.solution-donut__graphic { position:relative; }
.solution-donut svg { width:100%;display:block;transform:rotate(-90deg); }
.solution-donut circle { fill:none;stroke-width:17; }
.solution-donut__graphic > strong { position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:1.5rem; }
.solution-donut small { font-weight:400;font-size:.75rem; }
.solution-donut ul { list-style:none;padding:0;margin:0;display:grid;gap:18px; }
.solution-donut li { display:flex;gap:7px;align-items:center;font-size:.8rem; }
.solution-donut li strong { margin-left:auto; }
.priority-0 { stroke:var(--solution-violet);background:var(--solution-violet); }
.priority-1 { stroke:var(--kizoshi-primary-dark);background:var(--kizoshi-primary-dark); }
.priority-2 { stroke:var(--solution-teal);background:var(--solution-teal); }
.priority-dot { width:9px;height:9px;border-radius:50%;flex-shrink:0; }
.solution-outcome { background:var(--role-soft);border:1px solid var(--line);border-radius:9px;padding:16px;font-size:.85rem;line-height:1.55; }
.solution-outcome strong { color:var(--role-color); }
.solution-outcome p { margin:8px 0 0; }
.solutions-workspace { background:var(--section-soft);border-block:1px solid var(--line); }
.solutions-workspace__layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:32px;padding-block:40px;align-items:center; }
.solutions-workspace h2 { font-size:2rem; }
.solutions-workspace .text-link { display:inline-flex;min-height:44px;align-items:center; }
.solutions-map { min-width:0;container:solutions-map / inline-size; }
.solutions-modules { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;position:relative; }
.solutions-module { text-align:center;position:relative;min-width:0; }
.solutions-module > span { display:inline-grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:var(--white);color:var(--kizoshi-primary-dark); }
.solutions-module h3 { font-size:.75rem;line-height:1.5;margin:10px 0 5px;letter-spacing:-.02em; }
.solutions-module p { font-size:.75rem;line-height:1.5;margin:0; }
.solutions-module::after { content:'';position:absolute;top:100%;height:24px;left:50%;border-left:1px solid var(--kizoshi-primary); }
.solutions-modules::after { content:'';position:absolute;left:7%;right:7%;bottom:-24px;border-top:1px solid var(--kizoshi-primary); }
.solutions-composer { display:flex;gap:12px;align-items:center;position:relative;border:1px solid var(--line);background:var(--white);border-radius:30px;padding:16px;margin-top:48px;font-size:.85rem; }
.solutions-composer::before { content:'';height:24px;position:absolute;bottom:100%;left:50%;border-left:1px solid var(--kizoshi-primary); }
.solutions-composer img { flex-shrink:0; }
.solutions-composer strong { flex-shrink:0; }
.solutions-map__caption { text-align:center;font-size:.85rem;margin:14px 0 0; }
@media(max-width:1150px) {
 section.solutions-roles.container { grid-template-columns:minmax(0,1fr); }
 .solution-role { grid-row:auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto;padding:24px;gap:22px; }
 .solution-dashboard { grid-column:2;grid-row:1/3; }
 .solution-outcome { align-self:end; }
 .solutions-workspace__layout { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:1024px) {
 .solutions-hero__frame { width:min(calc(100% - 48px),800px); }
 .solutions-hero__layout { grid-template-columns:minmax(0,1fr);gap:24px; }
 .solutions-hero__copy h1 { max-width:650px; }
 .solutions-hero__visual { max-width:700px;justify-self:center; }
}
@media(max-width:700px) {
 .solution-role { grid-template-columns:minmax(0,1fr);grid-template-rows:auto;padding:18px; }
 .solution-dashboard { grid-column:auto;grid-row:auto; }
 .solution-role__copy > p:not(.solution-role__label),.solution-role__copy li { font-size:1rem; }
 .solution-outcome { font-size:.95rem; }
 .solutions-hero__overlay { position:static;width:100%;margin-top:12px;box-shadow:none; }
 .solutions-composer { flex-wrap:wrap;border-radius:14px; }
 .solutions-composer > span { flex-basis:100%; }
}
@media(max-width:600px) {
 .solutions-hero__frame { width:calc(100% - 40px); }
 .solutions-actions { flex-direction:column; }
 .solutions-actions .btn { width:100%; }
 .solutions-hero__copy h1 { font-size:2.25rem; }
}
@media(max-width:350px) { .solutions-hero__frame { width:calc(100% - 32px); } }
@container solutions-map (max-width:38rem) {
 .solutions-modules { grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));gap:14px; }
 .solutions-module { border:1px solid var(--line);border-radius:10px;padding:14px 10px;background:var(--white); }
 .solutions-module h3,.solutions-module p { font-size:.85rem; }
 .solutions-module::after,.solutions-modules::after { display:none; }
 .solutions-composer { margin-top:24px;flex-wrap:wrap;border-radius:14px; }
 .solutions-composer > span { flex-basis:100%; }
}

.solution-months { display:block;position:relative;height:1.5em; }
.solution-months span { position:absolute;transform:translateX(-50%); }
.solution-months span:first-child { transform:none; }
.solution-months span:last-child { transform:translateX(-100%); }
.solutions-hero__copy h1 span { display:inline; }
.solution-months span { white-space:nowrap; }
.solutions-hero__visual { width:100%;container:solution-photo / inline-size; }
@container solution-photo (max-width:26rem) {
 .solutions-hero__overlay { position:static;width:100%;margin-top:12px;box-shadow:none; }
}

/* Static chart dimensions: external CSS preserves the strict CSP. */
span.chart-left-0-0{left:0.0%}
span.chart-left-45-45454545454545{left:45.45454545454545%}
span.chart-left-100-0{left:100.0%}
span.chart-width-100-0{width:100.0%}
span.chart-width-75-0{width:75.0%}
span.chart-width-62-5{width:62.5%}
span.chart-width-50-0{width:50.0%}
span.chart-width-37-5{width:37.5%}
span.chart-width-25-0{width:25.0%}
