/* Product identity: indigo Laboratory, azure Proshivka. Shared B2B controls stay blue. */
:root {
  --lab-ink:#4f44b2; --lab-tint:#e5e0fc;
  --intensive-ink:#1468b2; --intensive-tint:#d9edff;
  --lab-light:radial-gradient(ellipse at 7% 16%,#fff 0%,#ffffff00 63%),radial-gradient(ellipse at 95% 87%,#c9bef2 0%,#c9bef200 67%),linear-gradient(135deg,#f7f5ff,#e8e2fc);
  --intensive-light:radial-gradient(ellipse at 10% 13%,#fff 0%,#ffffff00 63%),radial-gradient(ellipse at 95% 89%,#a7d8f3 0%,#a7d8f300 65%),linear-gradient(135deg,#f6fcff,#deeffc);
}
.theme-lab { --product-ink:var(--lab-ink); --product-tint:var(--lab-tint); --product-light:var(--lab-light); }
.theme-intensive { --product-ink:var(--intensive-ink); --product-tint:var(--intensive-tint); --product-light:var(--intensive-light); }
.has-viewer main[data-product="lab"] { background:var(--lab-light); }
.has-viewer main[data-product="intensive"] { background:var(--intensive-light); }
.slide[data-product] .accent { color:var(--product-ink); }
body:not(.has-viewer) .slide[data-product] { background:var(--product-light); }

/* Two independent product sections, each with its own full illustration. */
.product-overview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); flex:1; min-height:0; gap:24px; margin-top:24px; }
.product-section { display:flex; flex-direction:column; min-height:0; padding:28px 32px; border:1px solid #ffffffed; border-radius:28px; background:var(--product-light); }
.product-section h3 { margin:0; font-size:36px; line-height:1.15; color:var(--product-ink); }
.product-section p { margin:14px 0 0; color:var(--body); font-size:19px; line-height:1.4; max-width:43ch; }
.product-section-art { flex:1; min-height:0; margin-top:12px; }
.product-section-art img { display:block; width:100%; height:100%; max-height:440px; object-fit:contain; }

/* The illustrated nodes and their connecting rails form one responsive process. */
.has-viewer .program-steps { grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; margin-top:32px; }
.has-viewer .program-steps li { position:relative; display:flex; flex-direction:column; align-items:center; gap:16px; padding:0; background:none; border:0; border-radius:0; min-width:0; }
.has-viewer .step-number { position:relative; z-index:1; display:grid; place-items:center; flex:none; width:64px; height:64px; border:0; background:none; color:#fff; font-size:24px; }
.step-number { position:relative; isolation:isolate; }
.step-number img { position:absolute; inset:0; width:100%; height:100%; z-index:-1; }
.has-viewer .program-steps li:not(:last-child)::before,.has-viewer .intensive-stages li:not(:last-child)::before { content:''; position:absolute; z-index:0; top:30px; left:50%; width:calc(100% + 14px); height:3px; border-radius:10px; background:var(--product-ink); opacity:.35; }
.has-viewer .program-steps p { position:relative; width:100%; margin:0; padding:14px 12px; border-radius:18px; border:1px solid #ffffffb8; background:#ffffffa6; color:var(--body); font-size:clamp(12px,min(1.2vw,2.8cqh),17px); line-height:1.4; overflow-wrap:anywhere; }
.has-viewer .intensive-stages { position:relative; gap:24px; margin-top:30px; }
.has-viewer .training-card { position:relative; display:flex; flex-direction:column; align-items:center; gap:18px; padding:0; border:0; background:none; }
.has-viewer .intensive-stages li:not(:last-child)::before { width:calc(100% + 24px); }
.training-body { position:relative; width:100%; flex:1; border:1px solid #ffffffd9; border-radius:22px; background:#ffffffb8; padding:24px; }
.has-viewer .training-body h3 { margin:0; color:var(--product-ink); font-size:26px; line-height:1.2; }
.has-viewer .training-body p { margin:14px 0 0; font-size:18px; line-height:1.4; }

/* A clear results heading and a separate illustrated bullet for every outcome. */
.has-viewer .result-heading { align-self:flex-start; margin-top:20px; padding:9px 16px; border-radius:100px; background:var(--product-ink); color:#fff; font-size:16px; font-weight:600; line-height:1.25; }
.has-viewer .result-card { display:grid; grid-template-columns:52px minmax(0,1fr); align-items:center; gap:18px; }
.result-bullet { display:grid; place-items:center; width:52px; height:52px; flex:none; background:var(--product-tint); border:1px solid #ffffffd9; border-radius:16px; }
.result-bullet img { display:block; width:36px; height:36px; }
.result-body { min-width:0; }
.has-viewer .result-pilots .result-body { display:flex; gap:18px; align-items:center; }
.has-viewer .result-pilots strong { color:var(--product-ink); }
.has-viewer .result-card h3 { color:var(--product-ink); }
.has-viewer .slide-intensive-results .results-grid { flex:none; display:block; margin-top:26px; }
.has-viewer .slide-intensive-results .result-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.has-viewer .slide-intensive-results .result-card { align-items:start; padding:28px; gap:18px; background:#ffffffb8; }
.has-viewer .slide-intensive-results .result-card h3 { font-size:28px; line-height:1.2; }
.has-viewer .slide-intensive-results .result-card p { margin-top:16px; font-size:19px; line-height:1.4; }

/* Six flat icons share a consistent visual language, each tied to its project. */
.project-heading { display:flex; align-items:center; gap:12px; }
.project-icon { display:block; flex:none; width:36px; height:36px; }

@media screen and (min-width:761px) and (max-width:1100px) {
  .product-section { padding:24px; }
  .product-section h3 { font-size:30px; }
  .product-section p { font-size:17px; }
  .has-viewer .step-number { width:52px; height:52px; font-size:21px; }
  .has-viewer .program-steps li:not(:last-child)::before,.has-viewer .intensive-stages li:not(:last-child)::before { top:25px; }
  .has-viewer .program-steps p { padding:12px 8px; }
  .has-viewer .training-body { padding:20px; }
  .has-viewer .training-body h3 { font-size:22px; }
  .has-viewer .training-body p { font-size:16px; }
  .has-viewer .slide-intensive-results .result-card { padding:20px; gap:14px; grid-template-columns:40px minmax(0,1fr); }
  .has-viewer .slide-intensive-results .result-card h3 { font-size:24px; }
  .has-viewer .slide-intensive-results .result-card p { font-size:17px; }
  .has-viewer .slide-intensive-results .result-bullet { width:40px; height:40px; }
  .has-viewer .slide-intensive-results .result-bullet img { width:28px; height:28px; }
}
@media screen and (min-width:761px) and (max-width:900px) and (min-height:501px) {
  .has-viewer .program-steps { grid-template-columns:1fr; gap:10px; margin-top:24px; }
  .has-viewer .program-steps li { display:grid; grid-template-columns:40px minmax(0,1fr); gap:14px; align-items:start; }
  .has-viewer .program-steps .step-number { width:40px; height:40px; font-size:18px; }
  .has-viewer .program-steps li:not(:last-child)::before { top:19px; left:19px; width:3px; height:calc(100% + 10px); }
  .has-viewer .program-steps p { padding:12px 16px; font-size:16px; }
}
@media screen and (max-width:760px) {
  .has-viewer .product-overview { grid-template-columns:1fr; grid-template-rows:repeat(2,minmax(0,1fr)); gap:clamp(10px,2cqh,16px); margin-top:clamp(12px,2.8cqh,20px); }
  .has-viewer .product-section { display:grid; grid-template-columns:minmax(0,1fr) 34%; align-items:center; gap:8px; padding:clamp(12px,2.8cqh,20px); border-radius:22px; }
  .has-viewer .product-section h3 { font-size:clamp(22px,4.5cqh,30px); }
  .has-viewer .product-section p { margin-top:8px; font-size:clamp(11px,min(2.7cqh,3.2vw),16px); line-height:1.35; }
  .has-viewer .product-section-art { height:100%; margin:0; }
  .has-viewer .product-section-art img { max-height:none; }
  .has-viewer .program-steps { grid-template-columns:1fr; gap:clamp(4px,1cqh,8px); margin-top:clamp(10px,2cqh,18px); }
  .has-viewer .program-steps li { display:grid; grid-template-columns:32px minmax(0,1fr); align-items:start; gap:10px; }
  .has-viewer .step-number { width:32px; height:32px; font-size:15px; }
  .has-viewer .program-steps li:not(:last-child)::before { top:15px; left:15px; width:3px; height:calc(100% + 8px); }
  .has-viewer .program-steps p { padding:clamp(5px,1.2cqh,9px) 10px; font-size:clamp(11px,min(2.3cqh,3.1vw),15px); line-height:1.3; border-radius:14px; }
  .has-viewer .intensive-stages { grid-template-columns:1fr; gap:clamp(6px,1.5cqh,12px); margin-top:clamp(10px,2cqh,18px); }
  .has-viewer .training-card { display:grid; grid-template-columns:32px minmax(0,1fr); align-items:start; gap:10px; padding:0; }
  .has-viewer .training-card .step-number { width:32px; height:32px; font-size:15px; }
  .has-viewer .intensive-stages li:not(:last-child)::before { top:15px; left:15px; width:3px; height:calc(100% + 12px); }
  .has-viewer .training-body { padding:clamp(8px,1.8cqh,14px) 12px; border-radius:18px; }
  .has-viewer .training-body h3 { font-size:clamp(16px,3.5cqh,22px); }
  .has-viewer .training-body p { font-size:clamp(11px,min(2.6cqh,3.1vw),16px); margin-top:4px; line-height:1.3; }
  .has-viewer .result-heading { font-size:clamp(11px,2.5cqh,15px); padding:7px 12px; margin-top:clamp(8px,2cqh,14px); }
  .has-viewer .result-card { grid-template-columns:34px minmax(0,1fr); gap:10px; }
  .has-viewer .result-bullet { width:34px; height:34px; border-radius:11px; }
  .has-viewer .result-bullet img { width:24px; height:24px; }
  .has-viewer .result-pilots .result-body { gap:12px; }
  .has-viewer .slide-intensive-results .results-grid { margin-top:clamp(10px,2.5cqh,20px); }
  .has-viewer .slide-intensive-results .result-list { grid-template-columns:1fr; gap:clamp(10px,2cqh,16px); }
  .has-viewer .slide-intensive-results .result-card { grid-template-columns:34px minmax(0,1fr); padding:clamp(14px,3cqh,22px) 14px; gap:10px; }
  .has-viewer .slide-intensive-results .result-card h3 { font-size:clamp(16px,3.5cqh,23px); }
  .has-viewer .slide-intensive-results .result-card p { font-size:clamp(11px,2.6cqh,16px); line-height:1.35; margin-top:8px; }
  .has-viewer .slide-intensive-results .result-bullet { width:34px; height:34px; }
  .has-viewer .slide-intensive-results .result-bullet img { width:24px; height:24px; }
  .has-viewer .project-card { padding-block:clamp(6px,1.3cqh,12px); }
  .project-heading { gap:6px; }
  .project-icon { width:24px; height:24px; }
}
@container (max-width:760px) and (max-height:500px) {
  .has-viewer .intensive-stages { gap:6px; margin-top:8px; }
  .has-viewer .training-body { padding:6px 10px; }
  .has-viewer .training-body h3 { font-size:16px; }
  .has-viewer .training-body p { font-size:11px; }
}
@container (max-width:360px) and (max-height:520px) {
  .has-viewer .product-section { padding:12px; }
  .has-viewer .program-steps { gap:4px; margin-top:8px; }
  .has-viewer .program-steps li { grid-template-columns:26px minmax(0,1fr); gap:8px; }
  .has-viewer .program-steps .step-number { width:26px; height:26px; font-size:13px; }
  .has-viewer .program-steps li:not(:last-child)::before { top:12px; left:12px; height:calc(100% + 4px); }
  .has-viewer .program-steps p { padding:4px 8px; font-size:11px; }
  .has-viewer .intensive-stages { gap:4px; margin-top:8px; }
  .has-viewer .training-card { grid-template-columns:26px minmax(0,1fr); gap:8px; }
  .has-viewer .training-card .step-number { width:26px; height:26px; font-size:13px; }
  .has-viewer .intensive-stages li:not(:last-child)::before { top:12px; left:12px; height:calc(100% + 4px); }
  .has-viewer .training-body { padding:6px 10px; }
  .has-viewer .training-body p { font-size:11px; }
  .has-viewer .result-card { grid-template-columns:28px minmax(0,1fr); gap:8px; }
  .has-viewer .result-bullet { width:28px; height:28px; }
  .has-viewer .result-bullet img { width:20px; height:20px; }
  .has-viewer .slide-intensive-results .result-card { padding:12px; gap:8px; }
  .has-viewer .slide-intensive-results .result-card h3 { font-size:16px; }
  .has-viewer .slide-intensive-results .result-card p { font-size:11px; }
  .has-viewer .project-card { padding-block:4px; }
  .project-heading { display:grid; grid-template-columns:20px minmax(0,1fr); gap:4px; }
  .project-icon { width:20px; height:20px; }
}
@media screen and (min-width:761px) and (max-height:500px) {
  .product-overview { gap:16px; margin-top:12px; }
  .product-section { display:grid; grid-template-columns:minmax(0,1fr) 32%; align-items:center; padding:16px; gap:10px; border-radius:22px; }
  .product-section h3 { font-size:24px; }
  .product-section p { font-size:13px; line-height:1.35; margin-top:8px; }
  .product-section-art { height:100%; margin:0; }
  .has-viewer .program-steps { gap:10px; margin-top:12px; }
  .has-viewer .program-steps li { gap:6px; }
  .has-viewer .step-number,.has-viewer .training-card .step-number { width:30px; height:30px; font-size:14px; }
  .has-viewer .program-steps li:not(:last-child)::before,.has-viewer .intensive-stages li:not(:last-child)::before { top:14px; }
  .has-viewer .program-steps p { padding:6px; font-size:11px; line-height:1.25; }
  .has-viewer .intensive-stages { margin-top:12px; gap:16px; }
  .has-viewer .training-card { gap:8px; }
  .has-viewer .training-body { padding:12px; }
  .has-viewer .training-body h3 { font-size:17px; }
  .has-viewer .training-body p { font-size:12px; line-height:1.3; margin-top:6px; }
  .has-viewer .result-heading { font-size:12px; padding:5px 12px; margin-top:8px; }
  .has-viewer .result-card { grid-template-columns:30px minmax(0,1fr); gap:10px; }
  .has-viewer .result-bullet { width:30px; height:30px; border-radius:10px; }
  .has-viewer .result-bullet img { width:22px; height:22px; }
  .has-viewer .slide-intensive-results .results-grid { margin-top:12px; }
  .has-viewer .slide-intensive-results .result-list { gap:16px; }
  .has-viewer .slide-intensive-results .result-card { grid-template-columns:30px minmax(0,1fr); padding:12px; gap:10px; }
  .has-viewer .slide-intensive-results .result-card h3 { font-size:17px; }
  .has-viewer .slide-intensive-results .result-card p { font-size:12px; line-height:1.3; margin-top:6px; }
  .has-viewer .slide-intensive-results .result-bullet { width:30px; height:30px; }
  .has-viewer .slide-intensive-results .result-bullet img { width:22px; height:22px; }
  .project-icon { width:24px; height:24px; }
  .project-heading { gap:6px; }
}
@media print {
  .slide[data-product] { background:var(--product-light); print-color-adjust:exact; }
  .product-overview { display:grid; grid-template-columns:1fr 1fr; }
  .product-section-art img { max-height:220px; }
}
