/* Hero: title left, image right, supporting copy anchored below. */
.pipeline-editorial-hero { padding-top:clamp(40px,4.5vw,80px); padding-bottom:48px; }
.pipeline-hero-spread { align-items:stretch; }
.pipeline-hero-copy { display:flex; flex-direction:column; justify-content:space-between; gap:64px; padding:0; }
.pipeline-hero-support { max-width:460px; }
.pipeline-hero-support>p { font-size:15px; line-height:1.5; }
.pipeline-hero-support .hero-promise { margin-top:16px; }
.pipeline-hero-support .button { margin-top:24px; }
.pipeline-hero-support .pipeline-hero-microcopy { margin-top:18px; font-size:11px; color:var(--muted); line-height:1.5; }
.pipeline-hero-spread img { object-position:50% 69%; }

/* Equal halves: a contained statement opposite an interactive company map. */
.pipeline-problem { padding-top:var(--editorial-space); }
.pipeline-statement { grid-column:span 6; display:flex; flex-direction:column; justify-content:space-between; min-height:clamp(420px,40vw,620px); gap:64px; }
.pipeline-statement h2 { max-width:17ch; }
.pipeline-statement .prose { max-width:480px; margin-top:auto; gap:18px; }
.pipeline-statement .prose p { font-size:15px; }

/* Process: headline and fine rules on the left; a large site photo on the right. */
.pipeline-method { background:var(--concrete); }
.pipeline-method-copy { display:flex; flex-direction:column; gap:64px; }
.pipeline-method-copy h2 { max-width:17ch; }
.pipeline-method-spread .pipeline-photo { align-self:stretch; max-height:1080px; }
.pipeline-method-spread .pipeline-photo-frame { min-height:clamp(560px,46vw,800px); }
.pipeline-method-spread img { object-position:50% 62%; }
.pipeline-flow { margin-top:auto; background:none; border:0; padding:0; }
.pipeline-flow-steps { list-style:none; padding:0; margin:0; }
.pipeline-flow-step:first-child { border-top:1px solid var(--editorial-line); }
.pipeline-flow-step { border-bottom:1px solid var(--editorial-line); }
.pipeline-flow-step summary { display:grid; grid-template-columns:28px minmax(0,1fr) 20px; align-items:start; gap:16px; list-style:none; cursor:pointer; padding:22px 0; }
.pipeline-flow-step summary::-webkit-details-marker { display:none; }
.pipeline-flow-step summary::marker { content:''; }
.pipeline-flow-marker { padding-top:3px; }
.pipeline-flow-marker .funnel-number { font-size:11px; color:var(--muted); }
.pipeline-flow-label { display:grid; gap:7px; }
.pipeline-flow-title { font-size:clamp(18px,1.55vw,24px); line-height:1.2; letter-spacing:-.025em; }
.pipeline-flow-short { font-size:13px; color:var(--muted); line-height:1.5; }
.pipeline-flow-toggle { position:relative; width:20px; height:20px; flex:none; margin-top:3px; }
.pipeline-flow-toggle::before,.pipeline-flow-toggle::after { content:''; position:absolute; left:3px; top:9px; width:14px; height:1px; background:currentColor; }
.pipeline-flow-toggle::after { transform:rotate(90deg); }
details[open]>summary .pipeline-flow-toggle::after { transform:none; }
.pipeline-flow-step summary:hover .pipeline-flow-title { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.pipeline-flow-step details[open]>summary { padding-bottom:5px; }
.pipeline-flow-body { padding:0 36px 24px 44px; color:var(--muted); }
.pipeline-flow-body>p { font-size:13px; line-height:1.5; }

/* Four open objectives: a fine square grid, with a permanent orange reveal. */
.pipeline-objectives-section { background:var(--ink); color:var(--paper); --muted:#c5c7bf; --editorial-line:rgba(242,241,235,.27); }
.pipeline-objectives-spread { min-height:clamp(500px,45vw,680px); align-items:stretch; padding-top:24px; }
.pipeline-objectives-copy { display:flex; flex-direction:column; gap:24px; }
.pipeline-objectives-copy h2 { max-width:17ch; }
.pipeline-objectives-copy>p { max-width:400px; font-size:14px; color:var(--muted); }
.pipeline-objectives { align-self:stretch; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,1fr); border-top:1px solid var(--editorial-line); border-left:1px solid var(--editorial-line); }
.pipeline-objective { padding:28px 24px; border-right:1px solid var(--editorial-line); border-bottom:1px solid var(--editorial-line); display:flex; flex-direction:column; gap:22px; min-width:0; transition:background-color .6s,color .6s; }
.pipeline-objective .pipeline-icon { width:38px; height:38px; color:var(--orange); transition:color .6s; }
.pipeline-objective h3 { font-size:clamp(20px,1.55vw,25px); line-height:1.2; letter-spacing:-.025em; }
.pipeline-objective p { margin-top:auto; font-size:13px; line-height:1.5; }
.pipeline-objective.is-revealed { background-color:var(--orange); color:var(--ink); }
.pipeline-objective.is-revealed .pipeline-icon { color:var(--ink); }
.pipeline-objective:nth-child(2),.pipeline-objective:nth-child(2) .pipeline-icon { transition-delay:.18s; }
.pipeline-objective:nth-child(3),.pipeline-objective:nth-child(3) .pipeline-icon { transition-delay:.36s; }
.pipeline-objective:nth-child(4),.pipeline-objective:nth-child(4) .pipeline-icon { transition-delay:.54s; }

/* Reverse spread: the technical image is a visual proof, copy stays secondary. */
.pipeline-proof-spread { align-items:stretch; }
.pipeline-proof-copy { display:flex; flex-direction:column; justify-content:space-between; gap:64px; }
.pipeline-proof-copy h2 { max-width:15ch; }
.pipeline-proof-support { max-width:560px; }
.pipeline-proof-support .prose { gap:16px; }
.pipeline-proof-support .check-list { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; margin-top:22px; }
.pipeline-proof-support .check-list li { font-size:14px; padding-block:12px; border-bottom:1px solid var(--editorial-line); }
.pipeline-proof-support .check-list li::before { display:none; }
.pipeline-proof-note { margin-top:24px; color:var(--muted); font-size:14px; }
.pipeline-proof-support .button { margin-top:24px; }

/* Intake remains the existing five-field form, without a floating card. */
.pipeline-lead { background:var(--concrete); }
.pipeline-lead-spread { align-items:stretch; padding-top:16px; }
.pipeline-lead-copy { display:flex; flex-direction:column; justify-content:space-between; gap:64px; min-height:680px; }
.pipeline-lead-copy h2 { max-width:18ch; }
.pipeline-lead-support { margin-top:auto; max-width:520px; }
.pipeline-lead-support .prospect-list-title { font-size:22px; line-height:1.2; letter-spacing:-.025em; margin-bottom:20px; }
.pipeline-lead-support>p { color:var(--muted); }
.pipeline-lead-support .deliverables { margin-block:32px; }
.pipeline-lead-support .deliverables h3 { font-size:18px; }
.pipeline-lead-support .deliverables p { font-size:14px; }
.pipeline-lead-support .lead-note { font-size:14px; }
.pipeline-lead .lead-form { align-self:end; background:none; border:0; border-radius:var(--radius); padding:0; box-shadow:none; }
.pipeline-lead .form-heading { border-color:var(--editorial-line); padding-bottom:24px; margin-bottom:36px; }
.pipeline-lead .field label { font-size:13px; }
.pipeline-lead .field input,.pipeline-lead .field textarea { font-size:16px; }
.pipeline-page .form-microcopy,.pipeline-page .form-privacy { font-size:12px; }
.pipeline-page .faq-list details p { font-size:15px; }
.pipeline-lead .form-grid { gap:28px 24px; }
.pipeline-lead .field input,.pipeline-lead .field textarea { border:0; border-bottom:1px solid var(--ink); border-radius:var(--radius); background:var(--paper); }
.pipeline-lead .field input:focus,.pipeline-lead .field textarea:focus { outline:2px solid var(--ink); outline-offset:3px; }
.pipeline-lead .lead-form>.button { margin-top:24px; }
.pipeline-page .faq-section { min-height:clamp(460px,46vw,680px); display:grid; grid-template-columns:var(--editorial-grid); gap:var(--editorial-gap); padding-block:var(--editorial-space); }
.pipeline-page .faq-section>* { grid-column:span 6; min-width:0; }
.pipeline-page .faq-section h2 { font-size:clamp(38px,3.6vw,58px); max-width:12ch; }
.pipeline-page .faq-section .eyebrow { font-size:11px; }
.pipeline-page .faq-section .eyebrow::before { display:none; }
.pipeline-page .faq-list { align-self:end; }
.pipeline-page .faq-list summary { font-size:19px; padding-block:28px; }
.pipeline-final { background:var(--orange); min-height:75svh; display:flex; align-items:stretch; }
.pipeline-final>.wrap { display:flex; flex-direction:column; justify-content:space-between; gap:72px; }
.pipeline-final h2 { grid-column:span 6; max-width:100%; }
.pipeline-final-bottom { margin-top:auto; padding-top:24px; border-top:1px solid var(--editorial-line); align-items:start; }
.pipeline-final-bottom>p { max-width:420px; font-size:15px; }
.pipeline-final-bottom>.button { justify-self:end; grid-column:7/-1; }

@media(min-width:1800px) {
  .pipeline-hero-support { max-width:520px; }
  .pipeline-hero-support>p { font-size:16px; }
}
@media(max-width:1000px) and (min-width:801px) {
  .pipeline-page h1 { font-size:48px; }
  .pipeline-page h2 { font-size:40px; }
  .pipeline-hero-copy { gap:48px; }
  .pipeline-flow-step summary { grid-template-columns:22px minmax(0,1fr) 18px; gap:10px; }
  .pipeline-flow-body { padding-left:32px; }
  .pipeline-objective h3 { font-size:22px; }
}
@media(max-width:800px) {
  .pipeline-page { --editorial-grid:repeat(4,minmax(0,1fr)); --editorial-gap:28px; --editorial-space:72px; }
  .pipeline-grid>*,.pipeline-page .faq-section>*,.pipeline-final h2,.pipeline-final-bottom>.button { grid-column:1/-1; }
  .pipeline-page h1 { font-size:clamp(44px,7.2vw,58px); max-width:10ch; }
  .pipeline-page h2 { font-size:clamp(36px,6vw,48px); }
  .pipeline-editorial-hero { padding-top:36px; padding-bottom:0; }
  .pipeline-hero-copy { display:contents; }
  .pipeline-hero-copy h1 { grid-row:1; grid-column:1/-1; }
  .pipeline-hero-spread>.pipeline-photo { grid-row:2; }
  .pipeline-hero-support { grid-row:3; grid-column:1/-1; max-width:600px; padding-bottom:32px; }
  .pipeline-photo-frame { min-height:0; aspect-ratio:1; }
  .pipeline-statement { min-height:0; gap:40px; }
  .pipeline-statement .prose { margin-top:0; }
  .pipeline-method-copy { gap:40px; }
  .pipeline-method-copy h2 { max-width:15ch; }
  .pipeline-method-spread .pipeline-photo { max-height:none; }
  .pipeline-method-spread .pipeline-photo-frame { min-height:0; aspect-ratio:1; }
  .pipeline-flow-title { font-size:21px; }
  .pipeline-objectives-spread { min-height:0; padding-top:8px; gap:48px; }
  .pipeline-objectives-copy h2 { max-width:16ch; }
  .pipeline-objective h3 { font-size:22px; }
  .pipeline-proof-copy { gap:36px; }
  .pipeline-proof-spread>.pipeline-photo { grid-row:2; }
  .pipeline-proof-copy h2 { max-width:13ch; }
  .pipeline-proof-support { max-width:600px; }
  .pipeline-lead-copy h2 { max-width:16ch; }
  .pipeline-lead-copy { min-height:0; gap:40px; }
  .pipeline-lead-support { margin-top:0; max-width:600px; }
  .pipeline-lead-spread { gap:56px; }
  .pipeline-page .faq-section { min-height:0; gap:40px; }
  .pipeline-final { min-height:0; }
  .pipeline-final h2 { font-size:clamp(36px,6vw,48px); }
  .pipeline-final>.wrap { gap:48px; }
  .pipeline-final-bottom { margin-top:0; }
  .pipeline-final-bottom>.button { justify-self:start; }
}
@media(max-width:480px) {
  .pipeline-page { --editorial-gap:24px; --editorial-space:64px; }
  .pipeline-page h1 { font-size:clamp(40px,10.8vw,48px); }
  .pipeline-page h2 { font-size:clamp(32px,8.5vw,40px); }
  .pipeline-page .button { font-size:12px; gap:16px; max-width:100%; }
  .pipeline-photo figcaption { font-size:10px; }
  .pipeline-statement .prose p { font-size:15px; }
  .pipeline-flow-step summary { grid-template-columns:22px minmax(0,1fr) 18px; gap:10px; }
  .pipeline-flow-title { font-size:19px; }
  .pipeline-flow-body { padding:0 0 24px 32px; }
  .pipeline-objectives { grid-template-columns:1fr; grid-template-rows:none; grid-auto-rows:1fr; }
  .pipeline-objective { padding:26px 22px; }
  .pipeline-objective h3 { font-size:22px; }
  .pipeline-proof-support .check-list { column-gap:20px; }
  .pipeline-proof-support .check-list li { font-size:14px; }
  .pipeline-page .faq-section h2 { font-size:36px; }
  .pipeline-page .faq-list summary { font-size:18px; }
  .pipeline-final h2 { font-size:clamp(32px,8.5vw,40px); }
}
/* Grid and orthogonal routes use the same SVG coordinate system. */
.prospect-map { --map-line:rgba(242,241,235,.13); background:var(--ink); color:var(--paper); display:flex; flex-direction:column; min-width:0; }
.prospect-map-switch { border:0; padding:20px 28px; margin:0; min-width:0; }
.prospect-map-switch>div { display:flex; flex-wrap:wrap; gap:12px 24px; }
.prospect-map-switch input { position:absolute; width:1px; height:1px; padding:0; border:0; overflow:hidden; clip-path:inset(50%); }
.prospect-map-switch label { display:flex; align-items:center; gap:10px; min-height:44px; font-size:12px; cursor:pointer; transition:color .7s; }
.prospect-map-switch label::before { content:''; width:10px; height:10px; border:1px solid #a9aca3; transition:background-color .7s,border-color .7s; }
.prospect-map-switch input:checked+label::before { background:var(--orange); border-color:var(--orange); }
.prospect-map-switch input:checked+label { color:var(--orange); }
.prospect-map-switch input:focus-visible+label { outline:2px solid var(--paper); outline-offset:5px; }
.prospect-map-canvas { position:relative; aspect-ratio:1.3; flex:1; min-height:0; }
.prospect-map-links { position:absolute; inset:0; width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.3; }
.map-grid path { vector-effect:non-scaling-stroke; }
.map-grid { color:var(--map-line); stroke-width:1; }
.map-links-known { color:#a9aca3; }
.map-links-new { color:var(--orange); }
.map-links-known path,.map-links-new path { stroke-dasharray:1; stroke-dashoffset:0; }
.map-links-new path { transition:stroke-dashoffset 1.4s cubic-bezier(.22,.61,.36,1); }
.map-links-new path:nth-child(2) { transition-delay:.18s; }
.map-links-new path:nth-child(3) { transition-delay:.36s; }
.map-links-new path:nth-child(4) { transition-delay:.54s; }
.prospect-map.is-entering .map-links-known path { animation:network-draw 1.7s cubic-bezier(.22,.61,.36,1) both; }
@keyframes network-draw { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
.prospect-map-center,.prospect-map-node { position:absolute; transform:translate(-50%,-50%); display:grid; place-items:center; text-align:center; }
.prospect-map-center { left:50%; top:50%; width:72px; height:72px; background:var(--ink); }
.prospect-map-center>svg { width:56px; height:56px; color:var(--orange); }
.prospect-map-center>span,.prospect-map-node>span:last-child { position:absolute; top:calc(100% + 9px); left:50%; transform:translateX(-50%); width:max-content; max-width:130px; background:var(--ink); font-size:11px; line-height:1.35; padding:3px 5px; }
.prospect-map-node { left:var(--map-x); top:var(--map-y); width:34px; height:34px; color:var(--paper); transition:opacity 1s,color 1s; }
.map-position-1,.map-position-2,.map-position-3 { --map-x:calc(100% / 6); }
.map-position-4,.map-position-5,.map-position-6 { --map-x:calc(500% / 6); }
.map-position-1,.map-position-4 { --map-y:calc(100% / 6); }
.map-position-2,.map-position-5 { --map-y:50%; }
.map-position-3,.map-position-6 { --map-y:calc(500% / 6); }
.prospect-site-mark { display:grid; grid-template-columns:1fr 1fr; gap:4px; width:34px; height:34px; padding:7px; border:1px solid currentColor; background:var(--ink); }
.prospect-site-mark i { background:currentColor; }
.map-node-new { color:var(--orange); transition-delay:.6s; }
.map-position-4 { transition-delay:.78s; }
.map-position-5 { transition-delay:.96s; }
.map-position-6 { transition-delay:1.14s; }
.prospect-map:has(#map-network:checked) .map-node-new { opacity:.16; transition-delay:0s; }
.prospect-map:has(#map-network:checked) .map-links-new path { stroke-dashoffset:1; transition-delay:0s; }
@media(max-width:800px) {
  .pipeline-problem-spread { gap:40px; }
  .pipeline-statement { grid-column:1/-1; }
  .prospect-map-canvas { flex:auto; }
}
@media(max-width:480px) {
  .prospect-map-switch { padding:16px 18px; }
  .prospect-map-canvas { aspect-ratio:1; }
  .prospect-map-center { width:48px; height:48px; }
  .prospect-map-center>svg { width:36px; height:36px; }
  .prospect-map-center>span,.prospect-map-node>span:last-child { font-size:10px; max-width:94px; top:calc(100% + 6px); }
  .prospect-map-node,.prospect-site-mark { width:26px; height:26px; }
  .prospect-site-mark { padding:5px; gap:3px; }
}
@media(prefers-reduced-motion:reduce) {
  .pipeline-objective,.pipeline-objective .pipeline-icon,.prospect-map * { animation:none !important; transition:none !important; }
}

/* Mirror the editorial spreads on desktop; mobile keeps the explanatory copy first. */
@media(min-width:801px) {
  :is(.pipeline-problem-spread,.pipeline-objectives-spread,.pipeline-proof-spread,.pipeline-lead-spread)>:first-child { grid-column:7/-1; grid-row:1; }
  :is(.pipeline-problem-spread,.pipeline-objectives-spread,.pipeline-proof-spread,.pipeline-lead-spread)>:last-child { grid-column:1/7; grid-row:1; }
}
