/* Responsive project lifecycle with room for the connector rails. */
.core-intro { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: center; gap: clamp(32px, 6vw, 88px); max-width: 1440px; margin: 0 auto 54px; padding: 10px 0 32px; border-bottom: 1px solid #e9eff5; }
.core-intro h1 { margin: 0 0 16px; color: #081c34; font-size: clamp(28px, 2.9vw, 42px); font-weight: 800; line-height: 1.14; letter-spacing: -.045em; }
.core-intro h1 span { color: #0756a5; }
.core-intro-copy > p:last-child { max-width: 660px; margin: 0; color: #637b96; font-size: 15px; line-height: 1.7; }
.core-intro-quote { display: flex; flex-direction: column; gap: 14px; padding: 24px 28px; border-radius: 20px; background: #f3f6f9; color: #082c52; }
.core-intro-quote > strong { font-size: clamp(19px, 1.7vw, 25px); font-weight: 700; line-height: 1.35; letter-spacing: -.025em; }
.core-intro-quote:focus-visible { outline: 3px solid #005bbf; outline-offset: 4px; }
@media (max-width: 800px) {
  .core-intro { grid-template-columns: 1fr; gap: 24px; padding: 14px 8px 28px; margin-bottom: 30px; }
  .core-intro .core-eyebrow { font-size: 10px; margin-bottom: 12px; }
  .core-intro h1 { font-size: clamp(28px, 6vw, 38px); }
  .core-intro-copy > p:last-child { font-size: 14px; }
  .core-intro-quote { padding: 22px; }
  .core-intro-quote .core-approach-label { font-size: 10px; gap: 10px; }
  .core-intro-quote .core-quote-icon { display: grid; width: 34px; height: 34px; font-size: 28px; }
  .core-intro-quote .core-quote-rule { display: block; }
  .core-intro-quote .core-approach-detail { display: block; font-size: 13px; }
}
.core-viewport-page{min-height:100dvh;display:flex;flex-direction:column;overflow-x:clip;background:#fff;color:#082c52}
.core-viewport-page .site-header{flex:0 0 auto}
.core-page{flex:1;min-height:auto;padding:clamp(16px,3vh,32px) clamp(18px,5vw,88px) 18px;background:radial-gradient(ellipse at 0% 65%,#eaf5ff,transparent 46%),radial-gradient(ellipse at 100% 70%,#eaf5ff,transparent 45%),#fff}
.core-diagram{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:1.25fr 1fr 1fr .9fr;column-gap:clamp(16px,3vw,48px);row-gap:clamp(48px,5.5vh,60px);height:max(640px,calc(100dvh - var(--header-height) - 8px));max-width:1440px;margin:auto;isolation:isolate}
.core-hero-copy{grid-area:1/1/2/5;align-self:center}
.core-eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 12px;color:#af7c18;font-size:11px;font-weight:700;letter-spacing:.17em;line-height:1.4}
.core-eyebrow:after{content:'';width:42px;height:1px;background:#b88726}
.core-hero-copy h2{margin:0 0 14px;color:#082c52;font-size:clamp(24px,3.1vw,48px);line-height:1.05;font-weight:800;letter-spacing:-.045em}
.core-hero-lead{max-width:365px;margin:0;color:#627891;font-size:clamp(12px,1.2vw,17px);line-height:1.5}
.core-mobile-hint{display:none}
.core-banner{grid-area:1/9/2/13;align-self:center;display:flex;flex-direction:column;gap:clamp(8px,1.3vh,16px);padding:clamp(14px,1.7vw,26px);border-radius:22px;background:#eff6fc;color:#082c52}
.core-approach-label{display:flex;align-items:center;gap:12px;color:#aa7816;font-size:10px;letter-spacing:.1em}
.core-quote-icon{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;background:#f5eddb;color:#ae7b17;border-radius:50%;font-size:30px}
.core-banner>strong{font-size:clamp(15px,1.65vw,25px);line-height:1.3;letter-spacing:-.025em}
.core-quote-rule{width:48px;height:2px;background:#c39839}
.core-approach-detail{color:#627891;font-size:clamp(11px,1vw,15px);line-height:1.45}
.core-step-list{display:contents;list-style:none}
.core-step{position:relative;min-width:0;min-height:0}
.core-stage-1{grid-area:1/5/2/9;margin-inline:18px}
.core-stage-2{grid-area:2/3/3/6}
.core-stage-3{grid-area:2/8/3/11}
.core-stage-4{grid-area:3/1/4/5}
.core-stage-5{grid-area:3/5/4/9}
.core-stage-6{grid-area:3/9/4/13}
.core-stage-7{grid-area:4/1/5/5}
.core-stage-8{grid-area:4/5/5/9}
.core-stage-9{grid-area:4/9/5/13}
.core-step-number{position:absolute;z-index:2;top:-15px;left:50%;transform:translateX(-50%);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#005bbf;box-shadow:0 0 0 4px #f7fbff;color:#fff;font-size:13px;font-weight:700}
.core-step-card{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:20px 16px 10px;border:1px solid #d4e5f4;border-radius:17px;background:#fff;box-shadow:0 6px 20px #174b7b0c;text-align:center}
.core-step-icon{display:grid;place-items:center;flex-shrink:0;width:clamp(32px,5.5vh,65px);height:clamp(32px,5.5vh,65px);border-radius:50%;background:#e7f4ff;color:#005bbf}
.core-step-icon svg{width:56%;height:56%}
.core-step-card h3{margin:0 0 4px;color:#082c52;font-size:clamp(12px,1.15vw,18px);line-height:1.15;font-weight:700;letter-spacing:-.025em}
.core-step-card p{margin:0;color:#637b96;font-size:clamp(10px,.96vw,14px);line-height:1.28}
.core-stage-7 .core-step-card,.core-stage-8 .core-step-card,.core-stage-9 .core-step-card{flex-direction:row;text-align:left;gap:14px;padding-top:18px}
.core-connectors{position:absolute;z-index:-1;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.core-connectors path{stroke:#6d9dcb;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;fill:none;vector-effect:non-scaling-stroke}
.core-stage-open{position:absolute;inset:0;border:0;border-radius:inherit;background:transparent;cursor:pointer}
.core-stage-open:hover{box-shadow:0 0 0 2px #9dc6ed}
.core-stage-open:focus-visible,.core-banner:focus-visible{outline:3px solid #005bbf;outline-offset:3px}
.core-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.core-stage-dialog{width:min(460px,calc(100% - 36px));max-height:calc(100dvh - 36px);margin:auto;padding:38px 28px 28px;border:1px solid #d4e5f4;border-radius:20px;background:#fff;color:#082c52;box-shadow:0 20px 80px #082c5233}
.core-stage-dialog::backdrop{background:#082c5266;backdrop-filter:blur(5px)}
.core-stage-dialog h2{font-size:24px;line-height:1.2}
.core-stage-dialog>p:last-child{color:#637b96;font-size:16px;line-height:1.6}
.core-dialog-close{position:absolute;top:8px;right:8px;width:36px;height:36px;background:#eff6fc;border:0;border-radius:50%;color:#082c52;font-size:26px;cursor:pointer}
.core-viewport-page .vestano-assistant:not(.is-open){top:calc(var(--header-height) + 10px);right:8px;bottom:auto}
.core-viewport-page .assistant-toggle{width:38px;height:38px;min-height:0;padding:3px}
.core-viewport-page .assistant-toggle .assistant-orb{width:32px;height:32px;flex-basis:32px}
.core-viewport-page .assistant-label{display:none}
@media(max-height:800px) and (min-width:801px){
.core-diagram{row-gap:48px}.core-step-card{padding:17px 10px 8px}.core-step-card p{font-size:10px}.core-step-icon{width:30px;height:30px}.core-hero-copy h2{font-size:clamp(25px,2.7vw,38px)}.core-hero-lead{font-size:12px}.core-banner{gap:8px;padding:14px}.core-banner>strong{font-size:17px}.core-approach-detail{font-size:11px}
}
@media(max-width:800px){
.core-page{padding:14px 16px 12px}.core-diagram{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:1.1fr 1fr 1fr 1fr 1fr;gap:48px 12px;height:max(580px,calc(100dvh - var(--header-height) + 38px))}.core-hero-copy{grid-area:1/1/2/4}.core-hero-copy h2{font-size:clamp(17px,4vw,25px);margin-bottom:5px}.core-eyebrow{font-size:8px;gap:8px;margin-bottom:5px;letter-spacing:.12em}.core-eyebrow:after{width:20px}.core-hero-lead{display:none}.core-mobile-hint{display:block;margin:0;color:#637b96;font-size:10px}.core-banner{grid-area:1/4/2/7;padding:10px;gap:5px;border-radius:12px}.core-approach-label{font-size:7px;gap:5px;letter-spacing:.05em}.core-quote-icon{width:22px;height:22px;font-size:21px}.core-banner>strong{font-size:clamp(11px,2.6vw,15px);line-height:1.2}.core-quote-rule,.core-approach-detail{display:none}
.core-stage-1{grid-area:2/3/3/5;margin-inline:0}.core-stage-2{grid-area:3/2/4/4}.core-stage-3{grid-area:3/4/4/6}.core-stage-4{grid-area:4/1/5/3}.core-stage-5{grid-area:4/3/5/5}.core-stage-6{grid-area:4/5/5/7}.core-stage-7{grid-area:5/1/6/3}.core-stage-8{grid-area:5/3/6/5}.core-stage-9{grid-area:5/5/6/7}
.core-step-card,.core-stage-7 .core-step-card,.core-stage-8 .core-step-card,.core-stage-9 .core-step-card{flex-direction:column;padding:14px 7px 5px;gap:4px;text-align:center;border-radius:11px}.core-step-number{width:26px;height:26px;top:-13px;font-size:10px;box-shadow:0 0 0 3px #f7fbff}.core-step-icon{width:clamp(23px,4vh,34px);height:clamp(23px,4vh,34px)}.core-step-card h3{font-size:clamp(9px,2.25vw,12px);line-height:1.18;margin:0}.core-step-card p{display:none}
.core-viewport-page .vestano-assistant:not(.is-open){top:20px;right:80px;bottom:auto}
}
@media(max-height:540px){.core-page{padding-top:10px;padding-bottom:8px}.core-diagram{row-gap:40px}.core-step-icon,.core-step-card p,.core-approach-detail,.core-quote-rule{display:none}.core-step-number{width:22px;height:22px;top:-11px;font-size:9px}.core-step-card h3{font-size:10px}.core-banner{padding:7px;gap:4px}.core-quote-icon,.core-hero-lead{display:none}}

/* Keep the original page hierarchy; only the lifecycle uses a branching tree. */
.core-intro { max-width: 1200px; margin-bottom: 28px; }
.core-process { max-width: 1200px; margin: 0 auto; padding-bottom: 20px; }
.core-process > .core-hero-copy { margin-bottom: 38px; }
.core-process .core-hero-copy h2 { font-size: clamp(25px, 2.8vw, 36px); margin-bottom: 10px; line-height: 1.15; }
.core-process .core-hero-lead { display: block; max-width: none; font-size: 14px; }
.core-process .core-diagram { height: auto; grid-template-rows: repeat(4, minmax(132px, auto)); gap: 48px 28px; }
.core-process .core-stage-1 { margin-inline: 0; }
.core-process .core-stage-2 { grid-column: 3 / 7; }
.core-process .core-stage-3 { grid-column: 7 / 11; }
.core-process .core-step-card { flex-direction: row; justify-content: flex-start; gap: 14px; padding: 24px 18px 18px; text-align: left; }
.core-process .core-step-icon { display: grid; width: 48px; height: 48px; }
.core-process .core-step-card h3 { font-size: 14px; line-height: 1.25; margin-bottom: 6px; }
.core-process .core-step-card p { display: block; font-size: 12px; line-height: 1.4; }
@media (max-width: 800px) {
  .core-process > .core-hero-copy { margin-bottom: 36px; }
  .core-process .core-eyebrow { font-size: 10px; margin-bottom: 10px; }
  .core-process .core-mobile-hint { margin-top: 6px; }
  .core-process .core-diagram { grid-template-rows: repeat(4, minmax(104px, auto)); gap: 48px 12px; }
  .core-process .core-stage-1 { grid-area: 1 / 3 / 2 / 5; }
  .core-process .core-stage-2 { grid-area: 2 / 2 / 3 / 4; }
  .core-process .core-stage-3 { grid-area: 2 / 4 / 3 / 6; }
  .core-process .core-stage-4 { grid-area: 3 / 1 / 4 / 3; }
  .core-process .core-stage-5 { grid-area: 3 / 3 / 4 / 5; }
  .core-process .core-stage-6 { grid-area: 3 / 5 / 4 / 7; }
  .core-process .core-stage-7 { grid-area: 4 / 1 / 5 / 3; }
  .core-process .core-stage-8 { grid-area: 4 / 3 / 5 / 5; }
  .core-process .core-stage-9 { grid-area: 4 / 5 / 5 / 7; }
  .core-process .core-step-card { flex-direction: column; justify-content: center; text-align: center; padding: 18px 7px 10px; gap: 6px; }
  .core-process .core-step-icon { width: 32px; height: 32px; }
  .core-process .core-step-card h3 { font-size: clamp(10px, 2.25vw, 12px); margin: 0; }
  .core-process .core-step-card p { display: none; }
}
