/* Solution master: scoped, content-driven editorial blocks. */
.solution-page .ip-kicker{font-size:12px}.solution-page .ip-section{padding-block:68px}.solution-page .ip-section:first-child{padding-top:32px}.solution-page .ip-heading{margin-bottom:32px}.solution-page .ip-split .ip-heading{margin-bottom:0}.solution-page .ip-button{border:0;font-family:inherit;cursor:pointer}.solution-page .ip-button:focus-visible,.solution-page .ip-link:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}.solution-page .sp-media{margin:0;min-width:0;background:#edf1f1}.solution-page .sp-media-placeholder{aspect-ratio:16/9;display:grid;place-items:center;border-block:1px solid #d4dfe1}.sp-media-placeholder span{font:12px var(--mono);color:#6b8087;letter-spacing:.08em}.sp-media figcaption{padding:12px 0;font-size:12px;color:var(--muted);background:#f7f8f7}.ip-tone .sp-media figcaption{background:#eef2f2}.sp-media img,.sp-media video{display:block;width:100%;aspect-ratio:16/9;object-fit:contain}.sp-problems{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin:0}.sp-problems>div{border-top:1px solid var(--line);padding-top:20px}.sp-problems dt{font-size:20px;line-height:1.3}.sp-problems dd{margin:12px 0 0;color:var(--muted);font-size:16px;line-height:1.6}.sp-modes{display:grid;grid-template-columns:1fr 1fr;gap:48px}.sp-modes article{border-top:1px solid #afc2c8;padding-top:22px}.sp-modes article p{font-size:16px;line-height:1.65;color:var(--muted);max-width:570px;margin:16px 0 22px}.sp-modes article h3{font-size:19px}.sp-steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0 0 30px;padding:0}.sp-steps li{border-top:1px solid #afc2c8;padding-top:16px}.sp-steps li>span{font:12px var(--mono);color:var(--cyan);display:block;margin-bottom:12px}.sp-steps h3{font-size:20px;margin-bottom:10px}.sp-steps p{font-size:16px;line-height:1.55;color:var(--muted);margin:0}.sp-process .sp-media-placeholder,.sp-process .sp-media img,.sp-process .sp-media video{aspect-ratio:4/1}.sp-benefits{list-style:none;margin:0;padding:0}.sp-benefits li{display:flex;gap:22px;align-items:baseline;border-bottom:1px solid var(--line);padding:18px 0;font-size:20px;line-height:1.35}.sp-benefits span{font:12px var(--mono);color:var(--cyan);flex:none}.sp-sector-links{display:flex;flex-wrap:wrap;gap:16px 38px}.sp-sector-links .ip-link{font-size:18px}.sp-case .ip-link{margin-top:20px}.sp-case-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:32px 0 0;border-top:1px solid var(--line);padding-top:22px}.sp-case-metrics>div{padding:0 24px;border-left:1px solid var(--line)}.sp-case-metrics>div:first-child{padding-left:0;border-left:0}.sp-case-metrics dt{font-size:14px;color:var(--muted)}.sp-case-metrics dd{margin:8px 0 0;font-size:32px;font-weight:300}.sp-case-metrics small{font:12px var(--mono);color:var(--muted);display:block;margin-top:8px}.solution-page .sp-trust{padding-block:32px}.sp-trust .ip-heading h2{font-size:28px}.sp-trust-slot{border-block:1px solid var(--line);min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted);font:12px var(--mono)}.solution-page .sp-final .ip-button{margin-top:0}.solution-page .sp-outputs article>.sp-media{margin-top:auto}.sp-hero .ip-breadcrumb{flex-wrap:wrap}
@media(max-width:1000px){.sp-steps{grid-template-columns:1fr 1fr}.solution-page .ip-section{padding-block:52px}.sp-modes{gap:30px}}
@media(max-width:700px){.solution-page .ip-section{padding-block:44px}.solution-page .ip-section:first-child{padding-top:24px}.sp-problems,.sp-modes{grid-template-columns:1fr;gap:26px}.sp-process .sp-media-placeholder,.sp-process .sp-media img,.sp-process .sp-media video{aspect-ratio:16/9}.sp-case-metrics{gap:18px}.sp-case-metrics>div{padding:0 10px}.sp-case-metrics dt{font-size:13px}.sp-case-metrics small{font-size:12px;line-height:1.5}.sp-sector-links{gap:10px 24px}.sp-trust-slot{flex-wrap:wrap;padding:18px 0}.solution-page .sp-trust{padding-block:28px}}
@media(max-width:400px){.sp-steps{grid-template-columns:1fr}.sp-case-metrics{grid-template-columns:1fr}.sp-case-metrics>div{padding:0 0 14px;border-left:0;border-bottom:1px solid var(--line)}}

/* The approved Platform stack, without its companion selector. */
.solution-page .sp-hero-stack{width:100%;min-width:0}
.solution-page .sp-hero-stack .ip-ai-stage{width:100%}
.solution-page .sp-hero-stack canvas{pointer-events:none}

/* Full-width case previews; section and inner grid use distinct classes. */
.solution-page .sp-use-case-grid{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.2vw,32px);align-items:stretch}
.solution-page .sp-use-case{min-width:0;display:flex;flex-direction:column;background:#fff;border:1px solid #d0dadd;transition:border-color .22s ease}
.solution-page .sp-use-case-media{aspect-ratio:16/9;overflow:hidden;background:#e8eeee;border-bottom:1px solid #d0dadd}
.solution-page .sp-use-case-media img,.solution-page .sp-use-case-media video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.solution-page .sp-use-case-placeholder{height:100%;padding:24px;display:flex;flex-direction:column;justify-content:space-between;color:#7b9198}
.solution-page .sp-use-case-placeholder>span{font:300 clamp(32px,3vw,46px)/1.1 var(--sans,Arial,sans-serif);letter-spacing:-.04em;color:#6b848d}
.solution-page .sp-use-case-placeholder>small{font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.solution-page .sp-use-case-body{padding:clamp(22px,2.2vw,32px);display:flex;flex-direction:column;flex:1}
.solution-page .sp-use-case-body>.ip-kicker{font-size:10px;letter-spacing:.11em;color:#607780;margin:0 0 16px}
.solution-page .sp-use-case h3{font-size:clamp(26px,2.4vw,34px);font-weight:500;line-height:1.15;letter-spacing:-.03em;margin:0 0 22px}
.solution-page .sp-use-case-proof{margin:0 0 28px;font-size:16px;line-height:1.55;color:#50636b}
.solution-page .sp-use-case-proof strong{display:block;color:#077a8d;font-weight:500;font-size:19px;margin-bottom:4px}
.solution-page .sp-use-case-description,.solution-page .sp-use-case-client{font-size:15px;line-height:1.6;color:#627177;margin:0 0 20px}
.solution-page .sp-use-case-footer{margin-top:auto;padding-top:18px;border-top:1px solid #e0e6e7}
.solution-page .sp-use-case-footer .ip-link{padding:4px 0;border:0;transition:color .22s ease,opacity .22s ease}
.solution-page .sp-use-case-pending{opacity:.55;cursor:default}
.solution-page .sp-content-required{display:block;color:#607780;font:600 10px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.solution-page .sp-use-case--pending{transition:none}
.solution-page .sp-use-case--pending:focus-within{border-color:#d0dadd}
@media(hover:hover){.solution-page .sp-use-case:hover{border-color:#789ca7}.solution-page .sp-use-case:hover img{transform:scale(1.018)}.solution-page .sp-use-case:hover .ip-link{color:#077a8d;opacity:.85}}
@media(hover:hover){.solution-page .sp-use-case--pending:hover{border-color:#d0dadd}.solution-page .sp-use-case--pending:hover img{transform:none}}
.solution-page .sp-use-case:focus-within{border-color:#077a8d}
@media(max-width:1000px){.solution-page .sp-use-case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.solution-page .sp-use-case-grid{grid-template-columns:1fr;gap:24px}}
@media(prefers-reduced-motion:reduce){.solution-page .sp-use-case,.solution-page .sp-use-case-media img,.solution-page .sp-use-case-media video,.solution-page .sp-use-case-footer .ip-link{transition:none}.solution-page .sp-use-case:hover img{transform:none}}

.solution-page .sp-operating{padding-block:88px}
.solution-page .sp-operating .ip-heading{margin-bottom:42px}
@media(max-width:1000px){.solution-page .sp-operating{padding-block:64px}}
@media(max-width:700px){.solution-page .sp-operating{padding-block:48px}.solution-page .sp-operating .ip-heading{margin-bottom:30px}}

/* Compact operational value: editorial rows, not cards. */
.solution-page .sp-operational-value{padding-block:60px}
.solution-page .sp-operational-value .ip-heading{max-width:980px;margin-bottom:28px}
.solution-page .sp-operational-values{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}
.solution-page .sp-operational-values li{display:grid;grid-template-columns:72px minmax(240px,.9fr) minmax(0,1.35fr);gap:24px;align-items:start;padding:20px 0;border-top:1px solid var(--line)}
.solution-page .sp-operational-values li>span{font:12px/1.5 var(--mono);letter-spacing:.08em;color:var(--cyan)}
.solution-page .sp-operational-values h3{font-size:18px;line-height:1.35;letter-spacing:-.01em;margin:0}
.solution-page .sp-operational-values p{font-size:16px;line-height:1.6;color:var(--muted);margin:0;max-width:720px}
@media(max-width:1000px){.solution-page .sp-operational-values li{grid-template-columns:64px minmax(0,1fr);gap:8px 22px}.solution-page .sp-operational-values p{grid-column:2}}
@media(max-width:700px){.solution-page .sp-operational-value{padding-block:44px}.solution-page .sp-operational-values li{grid-template-columns:1fr;gap:8px;padding:18px 0}.solution-page .sp-operational-values p{grid-column:auto}.solution-page .sp-operational-values h3{font-size:17px}}

/* Reusable methodology comparison: neutral baseline, restrained Xplora emphasis. */
.solution-page .sp-comparison .ip-heading{max-width:980px}
.solution-page .sp-comparison .ip-lead{max-width:850px}
.solution-page .sp-method-table{width:100%;table-layout:fixed;border-collapse:collapse;text-align:left;border-top:1px solid #bcced1}
.solution-page .sp-method-aspect{width:24%}
.solution-page .sp-method-table th,.solution-page .sp-method-table td{padding:24px clamp(18px,2.2vw,32px);vertical-align:top;border-bottom:1px solid #cedadc}
.solution-page .sp-method-table thead th{font:11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#51656e;padding-top:18px;padding-bottom:18px}
.solution-page .sp-method-table tbody th{font-size:17px;font-weight:500;line-height:1.4;color:var(--ink);padding-left:0}
.solution-page .sp-method-table thead th:first-child{padding-left:0}
.solution-page .sp-method-number{display:block;font:11px/1.5 var(--mono);color:#71878d;margin-bottom:8px}
.solution-page .sp-method-table td{font-size:15px;line-height:1.65;color:#53656c}
.solution-page .sp-method-table .sp-method-xplora{background:#edf4f5;color:#294c57;border-left:1px solid #c6dbdf}
.solution-page .sp-method-table thead .sp-method-xplora{color:#077a8d;font-weight:600}
.solution-page .sp-method-xplora strong{font-weight:600;color:#077a8d}
@media(max-width:700px){
.solution-page .sp-method-table,.solution-page .sp-method-table tbody,.solution-page .sp-method-table tr{display:block;width:100%}
.solution-page .sp-method-table colgroup{display:none}
.solution-page .sp-method-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.solution-page .sp-method-table tr{padding:22px 0;border-bottom:1px solid #cedadc}
.solution-page .sp-method-table tbody th,.solution-page .sp-method-table td{display:block;padding:14px 18px;border:0;width:auto}
.solution-page .sp-method-table tbody th{padding:0 0 16px;font-size:19px}
.solution-page .sp-method-number{display:inline;margin-right:10px}
.solution-page .sp-method-table td::before{content:attr(data-column-label);display:block;font:10px/1.5 var(--mono);letter-spacing:.07em;text-transform:uppercase;margin-bottom:8px;color:#617780}
.solution-page .sp-method-table .sp-method-xplora{border-left:2px solid #8eb7c0;margin-top:4px}
.solution-page .sp-method-table .sp-method-xplora::before{color:#077a8d}
}

/* Single-state survey media: shared, data-driven editorial tabs. */
[data-component="survey-workflow"] .sp-steps li{padding:0;border:0}
[data-component="survey-workflow"] [role="tab"]{appearance:none;border:0;border-top:1px solid #afc2c8;background:transparent;text-align:left;width:100%;height:100%;padding:16px 0 0;color:inherit;font:inherit;cursor:pointer;transition:border-color .2s,color .2s}
[data-component="survey-workflow"] [role="tab"]>span{font:12px var(--mono);color:var(--muted);display:block;margin-bottom:12px}
[data-component="survey-workflow"] [role="tab"][aria-selected="true"]{border-color:var(--cyan)}
[data-component="survey-workflow"] [aria-selected="true"]>span,[data-component="survey-workflow"] [aria-selected="true"] h3{color:var(--cyan)}
[data-component="survey-workflow"] [role="tab"]:focus-visible{outline:2px solid var(--cyan);outline-offset:6px}
.sp-workflow-panel{width:100%;aspect-ratio:2.25;overflow:hidden;background:#eef1f1;animation:survey-enter .3s ease-out both}
.sp-workflow-panel[hidden]{display:none!important}
.solution-page .sp-process .sp-workflow-panel img,.sp-workflow-panel canvas{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:contain}
.sp-workflow-panel:has(canvas),.sp-workflow-panel:has(img[src*="reconstruction"]){background:#24262a}
.sp-workflow-panel:first-child img{object-fit:cover;object-position:65% 50%}
@keyframes survey-enter{from{opacity:0;transform:scale(.993)}to{opacity:1;transform:scale(1)}}
@media(max-width:700px){.sp-workflow-panel{aspect-ratio:1.6}.sp-workflow-panel:first-child img{object-fit:contain;background:#ecefec}}
@media(prefers-reduced-motion:reduce){.sp-workflow-panel{animation:none}[data-component="survey-workflow"] [role="tab"]{transition:none}}
/* Continuous Utilities digital twin: preserve the existing Hero media footprint. */
.sp-utilities-city{width:100%;aspect-ratio:1.45;max-height:530px;position:relative;overflow:hidden;background:#f5f7f7}
.sp-utilities-city canvas{display:block;width:100%;height:100%}
.sp-utilities-city [data-fallback]{position:absolute;inset:40% 10%;color:var(--muted)}
@media(max-width:700px){.sp-utilities-city{aspect-ratio:1;max-height:430px}}
/* Full-bleed survey stages, overlapping only for the 600ms refocus. */
.sp-workflow-media{display:grid;grid-template-columns:minmax(0,1fr);isolation:isolate;overflow:hidden}
.sp-workflow-media .sp-workflow-panel{grid-area:1/1;min-width:0;animation:none;z-index:1}
.sp-workflow-media figcaption{grid-area:2/1;z-index:4}
.solution-page .sp-process .sp-workflow-panel img{object-fit:cover}
.solution-page .sp-process .sp-workflow-panel:nth-child(1) img{object-position:69% 50%}
.solution-page .sp-process .sp-workflow-panel:nth-child(3) img{object-position:50% 54%}
.solution-page .sp-process .sp-workflow-panel:nth-child(4) img{object-position:50% 56%}
.sp-workflow-media .sp-workflow-panel.is-entering{z-index:2;animation:survey-refocus-in .6s cubic-bezier(.4,0,.2,1) both}
.sp-workflow-media .sp-workflow-panel.is-leaving{z-index:3;pointer-events:none;animation:survey-refocus-out .6s cubic-bezier(.4,0,.2,1) both}
@keyframes survey-refocus-in{from{opacity:1;filter:blur(5px);transform:scale(1.01)}to{opacity:1;filter:blur(0);transform:scale(1)}}
@keyframes survey-refocus-out{0%{opacity:1;filter:blur(0);transform:scale(1)}30%{opacity:.85;filter:blur(3px)}100%{opacity:0;filter:blur(5px);transform:scale(1.01)}}
@media(max-width:700px){.solution-page .sp-process .sp-workflow-panel:first-child img{object-fit:cover;object-position:72% 50%}}
@media(prefers-reduced-motion:reduce){.sp-workflow-media .sp-workflow-panel.is-entering,.sp-workflow-media .sp-workflow-panel.is-leaving{animation:none;filter:none;transform:none}}
/* Real Platform outputs retain their complete geometry and annotations. */
.sp-outputs .sp-media{background:#222a30}
.sp-outputs .sp-media>img{aspect-ratio:16/9;object-fit:contain}
.sp-material-frame{aspect-ratio:16/9;position:relative;overflow:hidden;background:#222a30}
.sp-material-source{position:absolute;width:100%;aspect-ratio:2048/990;top:50%;transform:translateY(-50%)}
.sp-outputs .sp-material-source img{width:100%;height:100%;aspect-ratio:2048/990;object-fit:contain}
.sp-material-leader{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.sp-material-leader polyline{fill:none;stroke:#6bb8c2;stroke-width:1;vector-effect:non-scaling-stroke}
.sp-material-leader circle{fill:#6bb8c2}
.sp-material-label{position:absolute;transform:translate(-50%,-50%);font:500 12px/1.2 var(--mono);letter-spacing:.045em;white-space:nowrap;color:#edf6f6;background:rgba(32,44,51,.94);border:1px solid #609ba5;padding:6px 8px;pointer-events:none}
@media(max-width:450px){.sp-material-label{font-size:10px;padding:5px 6px;letter-spacing:.01em}}

/* Final solution-page rhythm and media consistency. */
.solution-page .sp-operating{padding-block:var(--ip-section-space,68px)}
.solution-page :is(.sp-media,.sp-use-case,.sp-workflow-panel,.sp-material-frame){border-radius:var(--ip-media-radius,10px);overflow:hidden}
.solution-page .sp-media figcaption{padding-inline:14px}
.solution-page .sp-use-case{transition:border-color var(--x-motion-ui,320ms) var(--x-ease,ease)}
.solution-page .sp-use-case-media img,.solution-page .sp-use-case-media video{transition:transform 400ms var(--x-ease,ease)}
.solution-page .sp-sector-links .ip-link{align-items:center}
[data-component="survey-workflow"] [role="tab"]{min-height:44px;transition:border-color var(--x-motion-ui,320ms) var(--x-ease,ease),color var(--x-motion-ui,320ms) var(--x-ease,ease)}

@media(max-width:1000px){.solution-page .sp-operating{padding-block:var(--ip-section-space-tablet,52px)}}
@media(max-width:700px){
 .solution-page .sp-operating{padding-block:var(--ip-section-space-mobile,44px)}
 .solution-page :is(.sp-media,.sp-use-case,.sp-workflow-panel,.sp-material-frame){border-radius:var(--ip-media-radius,8px)}
 .solution-page .sp-use-case-body{padding:22px}
}
